Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.39 KB | None | 0 0
  1. /*
  2.  
  3. Pasaje del cbuffer -> UBO (Faltan los 2 boleanos por uqe no sabia como era)
  4.  
  5. cbuffer Parameters
  6. {
  7.   bool hasPosMtxIdx;
  8.   bool lightingEnabled;
  9.   int g_aTexGenSourceRow[8];
  10.   int g_aTexGenSourceRowInRow[8];
  11.   int g_aTexGenType[8];
  12.   int g_TexGenDualTexTrans[8];
  13.   int g_aTexGenEmbossSourceShifts[8];
  14.   int g_aTexGenEmbossLightShifts[8];
  15.   int g_aTexGenPostIdx0[8];
  16.   int g_aTexGenPostIdx1[8];
  17.   int g_aTexGenPostIdx2[8];
  18.   int g_aColorChan0[3];
  19.   int g_aColorChan1[3];
  20.   int g_aColorChansLightxyz0[8];
  21.   int g_aColorChansLightxyz1[8];
  22.   int g_aColorChansLightw0[8];
  23.   int g_aColorChansLightw1[8];
  24.   int g_aColorChansLightDiffusexyz0[8];
  25.   int g_aColorChansLightDiffusexyz1[8];
  26.   int g_aColorChansLightDiffusew0[8];
  27.   int g_aColorChansLightDiffusew1[8];
  28. };
  29.  
  30.  
  31. */
  32.  
  33. // SHADERGEN.H
  34.  
  35. // shader variables
  36. #define I_POSNORMALMATRIX       "cpnmtx"
  37. #define I_PROJECTION            "cproj"
  38. #define I_MATERIALS             "cmtrl"
  39. #define I_LIGHTS                "clights"
  40. #define I_TEXMATRICES           "ctexmtx"
  41. #define I_TRANSFORMMATRICES     "ctrmtx"
  42. #define I_NORMALMATRICES        "cnmtx"
  43. #define I_POSTTRANSFORMMATRICES "cpostmtx"
  44. #define I_DEPTHPARAMS           "cDepth" // farZ, zRange, scaled viewport width, scaled viewport height
  45. #define I_PLOFFSETPARAMS        "cPLOffset" // line/point offset for correct emulation
  46. // New Constants
  47. #define I_TEXGENSOURCEROW               "g_aTexGenSourceRow"
  48. #define I_TEXGENSOURCEROWINROW          "g_aTexGenSourceRowInRow"  
  49. #define I_TEXGENTYPE                    "g_aTexGenType"    
  50. #define I_TEXGENDUALTEXTRANS            "g_TexGenDualTexTrans" 
  51. #define I_TEXGENEMBOSSSOURCESHIFTS      "g_aTexGenEmbossSourceShifts"
  52. #define I_TEXGENEMBOSSLIGHTSHIFTS       "g_aTexGenEmbossLightShifts"   
  53. #define I_TEXGENPOSTIDX0                "g_aTexGenPostIdx0"
  54. #define I_TEXGENPOSTIDX1                "g_aTexGenPostIdx1"
  55. #define I_TEXGENPOSTIDX2                "g_aTexGenPostIdx2"
  56. #define I_COLORCHAN0                    "g_aColorChan0"
  57. #define I_COLORCHAN1                    "g_aColorChan1"
  58. #define I_COLORCHANSLIGHTXYZ0           "g_aColorChansLightxyz0"
  59. #define I_COLORCHANSLIGHTXYZ1           "g_aColorChansLightxyz1"
  60. #define I_COLORCHANSLIGHTW0             "g_aColorChansLightw0"
  61. #define I_COLORCHANSLIGHTW1             "g_aColorChansLightw1"
  62. #define I_COLORCHANSLIGHTDIFFUSEXYZ0    "g_aColorChansLightDiffusexyz0"
  63. #define I_COLORCHANSLIGHTDIFFUSEXYZ1    "g_aColorChansLightDiffusexyz1"
  64. #define I_COLORCHANSLIGHTDIFFUSEW0      "g_aColorChansLightDiffusew0"      
  65. #define I_COLORCHANSLIGHTDIFFUSEW1      "g_aColorChansLightDiffusew1"
  66.  
  67. #define C_POSNORMALMATRIX        0
  68. #define C_PROJECTION            (C_POSNORMALMATRIX + 6)
  69. #define C_MATERIALS             (C_PROJECTION + 4)
  70. #define C_LIGHTS                (C_MATERIALS + 4)
  71. #define C_TEXMATRICES           (C_LIGHTS + 40)
  72. #define C_TRANSFORMMATRICES     (C_TEXMATRICES + 24)
  73. #define C_NORMALMATRICES        (C_TRANSFORMMATRICES + 64)
  74. #define C_POSTTRANSFORMMATRICES (C_NORMALMATRICES + 32)
  75. #define C_DEPTHPARAMS           (C_POSTTRANSFORMMATRICES + 64)
  76. #define C_PLOFFSETPARAMS    (C_DEPTHPARAMS + 1)
  77. // New Constants
  78. #define C_TEXGENSOURCEROW               (C_PLOFFSETPARAMS + 13)
  79. #define C_TEXGENSOURCEROWINROW          (C_TEXGENSOURCEROW + 8)
  80. #define C_TEXGENTYPE                    (C_TEXGENSOURCEROWINROW + 8)
  81. #define C_TEXGENDUALTEXTRANS            (C_TEXGENTYPE + 8)
  82. #define C_TEXGENEMBOSSSOURCESHIFTS      (C_TEXGENDUALTEXTRANS + 8)
  83. #define C_TEXGENEMBOSSLIGHTSHIFTS       (C_TEXGENEMBOSSSOURCESHIFTS + 8)
  84. #define C_TEXGENPOSTIDX0                (C_TEXGENEMBOSSLIGHTSHIFTS + 8)
  85. #define C_TEXGENPOSTIDX1                (C_TEXGENPOSTIDX0 + 8)
  86. #define C_TEXGENPOSTIDX2                (C_TEXGENPOSTIDX1 + 8)
  87. #define C_COLORCHAN0                    (C_TEXGENPOSTIDX2 + 8)
  88. #define C_COLORCHAN1                    (C_COLORCHAN0 + 3)
  89. #define C_COLORCHANSLIGHTXYZ0           (C_COLORCHAN1 + 3)
  90. #define C_COLORCHANSLIGHTXYZ1           (C_COLORCHANSLIGHTXYZ0 + 8)
  91. #define C_COLORCHANSLIGHTW0             (C_COLORCHANSLIGHTXYZ1 + 8)
  92. #define C_COLORCHANSLIGHTW1             (C_COLORCHANSLIGHTW0 + 8)
  93. #define C_COLORCHANSLIGHTDIFFUSEXYZ0    (C_COLORCHANSLIGHTW1 + 8)
  94. #define C_COLORCHANSLIGHTDIFFUSEXYZ1    (C_COLORCHANSLIGHTDIFFUSEXYZ0 + 8)
  95. #define C_COLORCHANSLIGHTDIFFUSEW0      (C_COLORCHANSLIGHTDIFFUSEXYZ1 + 8)
  96. #define C_COLORCHANSLIGHTDIFFUSEW1      (C_COLORCHANSLIGHTDIFFUSEW0 + 8)
  97. #define C_VENVCONST_END                 (C_COLORCHANSLIGHTDIFFUSEW1 + 8)
  98.  
  99.  
  100. const s_svar VSVar_Loc[] = { { I_POSNORMALMATRIX, C_POSNORMALMATRIX, 6 },
  101. { I_PROJECTION, C_PROJECTION, 4 },
  102. { I_MATERIALS, C_MATERIALS, 4 },
  103. { I_LIGHTS, C_LIGHTS, 40 },
  104. { I_TEXMATRICES, C_TEXMATRICES, 24 },
  105. { I_TRANSFORMMATRICES, C_TRANSFORMMATRICES, 64 },
  106. { I_NORMALMATRICES, C_NORMALMATRICES, 32 },
  107. { I_POSTTRANSFORMMATRICES, C_POSTTRANSFORMMATRICES, 64 },
  108. { I_DEPTHPARAMS, C_DEPTHPARAMS, 1 },
  109. { I_PLOFFSETPARAMS, C_PLOFFSETPARAMS, 13 },
  110. // New Constants
  111. { I_TEXGENSOURCEROW, C_TEXGENSOURCEROW, 8 },
  112. { I_TEXGENSOURCEROWINROW, C_TEXGENSOURCEROWINROW, 8 },
  113. { I_TEXGENTYPE, C_TEXGENTYPE, 8 },
  114. { I_TEXGENEMBOSSSOURCESHIFTS, C_TEXGENEMBOSSSOURCESHIFTS, 8 },
  115. { I_TEXGENEMBOSSLIGHTSHIFTS, C_TEXGENEMBOSSLIGHTSHIFTS, 8 },
  116. { I_TEXGENPOSTIDX0, C_TEXGENPOSTIDX0, 8 },
  117. { I_TEXGENPOSTIDX1, C_TEXGENPOSTIDX1, 8 },
  118. { I_TEXGENPOSTIDX2, C_TEXGENPOSTIDX2, 8 },
  119. { I_COLORCHAN0, C_COLORCHAN0, 3 },
  120. { I_COLORCHAN1, C_COLORCHAN1, 3 },
  121. { I_COLORCHANSLIGHTXYZ0, C_COLORCHANSLIGHTXYZ0, 8 },
  122. { I_COLORCHANSLIGHTXYZ1, C_COLORCHANSLIGHTXYZ1, 8 },
  123. { I_COLORCHANSLIGHTW0, C_COLORCHANSLIGHTW0, 8 },
  124. { I_COLORCHANSLIGHTW1, C_COLORCHANSLIGHTW1, 8 },
  125. { I_COLORCHANSLIGHTDIFFUSEXYZ0, C_COLORCHANSLIGHTDIFFUSEXYZ0, 8 },
  126. { I_COLORCHANSLIGHTDIFFUSEXYZ1, C_COLORCHANSLIGHTDIFFUSEXYZ1, 8 },
  127. { I_COLORCHANSLIGHTDIFFUSEW0, C_COLORCHANSLIGHTDIFFUSEW0, 8 },
  128. { I_COLORCHANSLIGHTDIFFUSEW1, C_COLORCHANSLIGHTDIFFUSEW1, 8 },
  129.  
  130. };
  131.  
  132. #pragma pack(1)
  133.  
  134. // SHADERGEN.CPP
  135.  
  136.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_POSNORMALMATRIX, "float4", I_POSNORMALMATRIX"[6]");
  137.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_PROJECTION, "float4", I_PROJECTION"[4]");
  138.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_MATERIALS, "float4", I_MATERIALS"[4]");
  139.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_LIGHTS, "float4", I_LIGHTS"[40]");
  140.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXMATRICES, "float4", I_TEXMATRICES"[24]");
  141.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TRANSFORMMATRICES, "float4", I_TRANSFORMMATRICES"[64]");
  142.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_NORMALMATRICES, "float4", I_NORMALMATRICES"[32]");
  143.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_POSTTRANSFORMMATRICES, "float4", I_POSTTRANSFORMMATRICES"[64]");
  144.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_DEPTHPARAMS, "float4", I_DEPTHPARAMS);
  145.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_PLOFFSETPARAMS, "float4", I_PLOFFSETPARAMS"[13]");
  146.  
  147.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENSOURCEROW, "int", I_TEXGENSOURCEROW"[8]");
  148.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENSOURCEROWINROW, "int", I_TEXGENSOURCEROWINROW"[8]");
  149.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENTYPE, "int", I_TEXGENTYPE"[8]");
  150.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENDUALTEXTRANS, "int", I_TEXGENDUALTEXTRANS"[8]");
  151.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENEMBOSSSOURCESHIFTS, "int", I_TEXGENEMBOSSSOURCESHIFTS"[8]");
  152.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENEMBOSSLIGHTSHIFTS, "int", I_TEXGENEMBOSSLIGHTSHIFTS"[8]");
  153.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENPOSTIDX0, "int", I_TEXGENPOSTIDX0"[8]");
  154.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENPOSTIDX1, "int", I_TEXGENPOSTIDX1"[8]");
  155.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_TEXGENPOSTIDX2, "int", I_TEXGENPOSTIDX2"[8]");
  156.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHAN0, "int", I_COLORCHAN0"[3]");
  157.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHAN1, "int", I_COLORCHAN1"[3]");
  158.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTXYZ0, "int", I_COLORCHANSLIGHTXYZ0"[8]");
  159.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTXYZ1, "int", I_COLORCHANSLIGHTXYZ1"[8]");
  160.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTW0, "int", I_COLORCHANSLIGHTW0"[8]");
  161.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTW1, "int", I_COLORCHANSLIGHTW1"[8]");
  162.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTDIFFUSEXYZ0, "int", I_COLORCHANSLIGHTDIFFUSEXYZ0"[8]");
  163.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTDIFFUSEXYZ1, "int", I_COLORCHANSLIGHTDIFFUSEXYZ1"[8]");
  164.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTDIFFUSEW0, "int", I_COLORCHANSLIGHTDIFFUSEW0"[8]");
  165.         DeclareUniform<T, api_type>(out, g_ActiveConfig.backend_info.bSupportsGLSLUBO, C_COLORCHANSLIGHTDIFFUSEW1, "int", I_COLORCHANSLIGHTDIFFUSEW1"[8]");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement