Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. --- a/src/gui/render_templates.h
  2. +++ b/src/gui/render_templates.h
  3. @@ -94,37 +94,67 @@
  4.  
  5. #if SBPP == 15
  6. #define SC scalerSourceCache.b16
  7. +#ifdef WORDS_BIGENDIAN
  8. +#if DBPP == 15 // GGGBBBBBxRRRRRGG -> xRRRRRGGGGGBBBBB
  9. +#define PMAKE(_VAL) (((_VAL>>8)&0x00FF)|((_VAL<<8)&0xFF00))
  10. +#elif DBPP == 16 // gggBBBBBxRRRRRGg -> RRRRRGggggGBBBBB
  11. +#define PMAKE(_VAL) (((_VAL>>8)&0x001F)|((_VAL>>7)&0x01C0)|((_VAL<<9)&0xFE00)|((_VAL<<4)&0x0020))
  12. +#elif DBPP == 32 // GggBBBbbxRRRrrGG -> 00000000RRRrrRRRGGGggGGGBBBbbBBB
  13. +#define PMAKE(_VAL) (((_VAL<<17)&0x00F80000)|((_VAL<<12)&0x00070000)|((_VAL<<14)&0x0000C000)|((_VAL>>2)&0x00003800)|((_VAL<<9)&0x00000600)|((_VAL>>7)&0x00000100)|((_VAL>>5)&0x000000F8)|((_VAL>>10)&0x00000007))
  14. +#endif
  15. +#else
  16. #if DBPP == 15
  17. #define PMAKE(_VAL) (_VAL)
  18. -#elif DBPP == 16
  19. -#define PMAKE(_VAL) (((_VAL) & 31) | ((_VAL) & ~31) << 1)
  20. -#elif DBPP == 32
  21. -#define PMAKE(_VAL) (((_VAL&(31<<10))<<9)|((_VAL&(31<<5))<<6)|((_VAL&31)<<3))
  22. +#elif DBPP == 16 // xRRRRRGggggBBBBB -> RRRRRGggggGBBBBB
  23. +#define PMAKE(_VAL) ((_VAL & 31)|((_VAL & ~31)<<1)|((_VAL&0x0200)>>4))
  24. +#elif DBPP == 32 // xRRRrrGGGggBBBbb -> RRRrrRRRGGGggGGGBBBbbBBB
  25. +#define PMAKE(_VAL) (((_VAL&(31<<10))<<9)|((_VAL&(31<<5))<<6)|((_VAL&31)<<3)|((_VAL&(7<<12))<<4)|((_VAL&(7<<7))<<1)|((_VAL&(7<<2))>>2))
  26. +#endif
  27. #endif
  28. #define SRCTYPE Bit16u
  29. #endif
  30.  
  31. #if SBPP == 16
  32. #define SC scalerSourceCache.b16
  33. -#if DBPP == 15
  34. -#define PMAKE(_VAL) (((_VAL&~31)>>1)|(_VAL&31))
  35. +#ifdef WORDS_BIGENDIAN
  36. +#if DBPP == 15 // GGgBBBBBRRRRRGGG -> 0RRRRRGGGGGBBBBB
  37. +#define PMAKE(_VAL) (((_VAL>>8)&0x001F)|((_VAL>>9)&0x0060)|((_VAL<<7)&0x7F80))
  38. +#elif DBPP == 16 // GGGBBBBBRRRRRGGG -> RRRRRGGGGGGBBBBB
  39. +#define PMAKE(_VAL) (((_VAL>>8)&0x00FF)|((_VAL<<8)&0xFF00))
  40. +#elif DBPP == 32 // gggBBBbbRRRrrGGg -> RRRrrRRRGGggggGGBBBbbBBB
  41. +#define PMAKE(_VAL) (((_VAL<<16)&0x00F80000)|((_VAL<<11)&0x00070000)|((_VAL<<13)&0x0000E000)|((_VAL>>3)&0x00001C00)|((_VAL<<7)&0x00000300)|((_VAL>>5)&0x000000F8)|((_VAL>>10)&0x00000007))
  42. +#endif
  43. +#else
  44. +#if DBPP == 15 // RRRRRGGGGGgBBBBB -> 0RRRRRGGGGGBBBBB
  45. +#define PMAKE(_VAL) (((_VAL&~63)>>1)|(_VAL&31))
  46. #elif DBPP == 16
  47. #define PMAKE(_VAL) (_VAL)
  48. -#elif DBPP == 32
  49. -#define PMAKE(_VAL) (((_VAL&(31<<11))<<8)|((_VAL&(63<<5))<<5)|((_VAL&31)<<3))
  50. +#elif DBPP == 32 // RRRrrGGggggBBBbb -> RRRrrRRRGGggggGGBBBbbBBB
  51. +#define PMAKE(_VAL) (((_VAL&(31<<11))<<8)|((_VAL&(63<<5))<<5)|((_VAL&0xE01F)<<3)|((_VAL&(3<<9))>>1)|((_VAL&(7<<2))>>2))
  52. +#endif
  53. #endif
  54. #define SRCTYPE Bit16u
  55. #endif
  56.  
  57. #if SBPP == 32
  58. #define SC scalerSourceCache.b32
  59. -#if DBPP == 15
  60. +#ifdef WORDS_BIGENDIAN
  61. +#if DBPP == 15 // BBBBBbbbGGGGGgggRRRRRrrrxxxxxxxx -> 0RRRRRGGGGGBBBBB
  62. +#define PMAKE(_VAL) (PTYPE)(((_VAL>>27)&0x001F)|((_VAL>>14)&0x03E0)|((_VAL>>1)&0x7C00))
  63. +#elif DBPP == 16 // BBBBBbbbGGGGGGggRRRRRrrrxxxxxxxx -> RRRRRGGGGGGBBBBB
  64. +#define PMAKE(_VAL) (PTYPE)(((_VAL>>27)&0x001F)|((_VAL>>13)&0x07E0)|(_VAL&0xF800))
  65. +#elif DBPP == 32 // BBBBBBBBGGGGGGGGRRRRRRRRxxxxxxxx -> RRRRRRRRGGGGGGGGBBBBBBBB
  66. +#define PMAKE(_VAL) (((_VAL>>24)&0x000000FF)|((_VAL>>8)&0x0000FF00)|((_VAL<<8)&0x00FF0000))
  67. +#endif
  68. +#else
  69. +#if DBPP == 15 // RRRRRrrrGGGGGgggBBBBBbbb -> 0RRRRRGGGGGBBBBB
  70. #define PMAKE(_VAL) (PTYPE)(((_VAL&(31<<19))>>9)|((_VAL&(31<<11))>>6)|((_VAL&(31<<3))>>3))
  71. -#elif DBPP == 16
  72. -#define PMAKE(_VAL) (PTYPE)(((_VAL&(31<<19))>>8)|((_VAL&(63<<10))>>4)|((_VAL&(31<<3))>>3))
  73. +#elif DBPP == 16 // RRRRRrrrGGGGGGggBBBBBbbb -> RRRRRGGGGGGBBBBB
  74. +#define PMAKE(_VAL) (PTYPE)(((_VAL&(31<<19))>>8)|((_VAL&(63<<10))>>5)|((_VAL&(31<<3))>>3))
  75. #elif DBPP == 32
  76. #define PMAKE(_VAL) (_VAL)
  77. #endif
  78. +#endif
  79. #define SRCTYPE Bit32u
  80. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement