Blame view

ios/cocos2d/cocos/3d/CC3DProgramInfo.cpp 6.62 KB
520389e3   xiaoyu   接入cocos源码,编译未通过,继续修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  #include "CC3DProgramInfo.h"
  
  
  NS_CC_BEGIN
  
  namespace shaderinfos
  {
      /* TODO these consts should not be used */
      namespace shader {
          const char* SHADER_NAME_ETC1AS_POSITION_TEXTURE_COLOR = "#ShaderETC1ASPositionTextureColor";
          const char* SHADER_NAME_ETC1AS_POSITION_TEXTURE_COLOR_NO_MVP = "#ShaderETC1ASPositionTextureColor_noMVP";
  
          const char* SHADER_NAME_ETC1AS_POSITION_TEXTURE_GRAY = "#ShaderETC1ASPositionTextureGray";
          const char* SHADER_NAME_ETC1AS_POSITION_TEXTURE_GRAY_NO_MVP = "#ShaderETC1ASPositionTextureGray_noMVP";
  
          const char* SHADER_NAME_POSITION_TEXTURE_COLOR = "ShaderPositionTextureColor";
          const char* SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP = "ShaderPositionTextureColor_noMVP";
          const char* SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST = "ShaderPositionTextureColorAlphaTest";
          const char* SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV = "ShaderPositionTextureColorAlphaTest_NoMV";
          const char* SHADER_NAME_POSITION_COLOR = "ShaderPositionColor";
          const char* SHADER_NAME_POSITION_COLOR_TEXASPOINTSIZE = "ShaderPositionColorTexAsPointsize";
          const char* SHADER_NAME_POSITION_COLOR_NO_MVP = "ShaderPositionColor_noMVP";
  
          const char* SHADER_NAME_POSITION_TEXTURE = "ShaderPositionTexture";
          const char* SHADER_NAME_POSITION_TEXTURE_U_COLOR = "ShaderPositionTexture_uColor";
          const char* SHADER_NAME_POSITION_TEXTURE_A8_COLOR = "ShaderPositionTextureA8Color";
          const char* SHADER_NAME_POSITION_U_COLOR = "ShaderPosition_uColor";
          const char* SHADER_NAME_POSITION_LENGTH_TEXTURE_COLOR = "ShaderPositionLengthTextureColor";
          const char* SHADER_NAME_POSITION_GRAYSCALE = "ShaderUIGrayScale";
          const char* SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL = "ShaderLabelDFNormal";
          const char* SHADER_NAME_LABEL_DISTANCEFIELD_GLOW = "ShaderLabelDFGlow";
          const char* SHADER_NAME_LABEL_NORMAL = "ShaderLabelNormal";
          const char* SHADER_NAME_LABEL_OUTLINE = "ShaderLabelOutline";
  
          const char* SHADER_3D_POSITION = "Shader3DPosition";
          const char* SHADER_3D_POSITION_TEXTURE = "Shader3DPositionTexture";
          const char* SHADER_3D_SKINPOSITION_TEXTURE = "Shader3DSkinPositionTexture";
          const char* SHADER_3D_POSITION_NORMAL = "Shader3DPositionNormal";
          const char* SHADER_3D_POSITION_NORMAL_TEXTURE = "Shader3DPositionNormalTexture";
          const char* SHADER_3D_SKINPOSITION_NORMAL_TEXTURE = "Shader3DSkinPositionNormalTexture";
          const char* SHADER_3D_POSITION_BUMPEDNORMAL_TEXTURE = "Shader3DPositionBumpedNormalTexture";
          const char* SHADER_3D_SKINPOSITION_BUMPEDNORMAL_TEXTURE = "Shader3DSkinPositionBumpedNormalTexture";
          const char* SHADER_3D_PARTICLE_COLOR = "Shader3DParticleColor";
          const char* SHADER_3D_PARTICLE_TEXTURE = "Shader3DParticleTexture";
          const char* SHADER_3D_SKYBOX = "Shader3DSkybox";
          const char* SHADER_3D_TERRAIN = "Shader3DTerrain";
          const char* SHADER_CAMERA_CLEAR = "ShaderCameraClear";
          const char* SHADER_LAYER_RADIAL_GRADIENT = "ShaderLayerRadialGradient";
  
      }
  
      namespace uniform {
          // uniform names
          const char* UNIFORM_NAME_AMBIENT_COLOR = "CC_AmbientColor";
          const char* UNIFORM_NAME_P_MATRIX = "CC_PMatrix";
          const char* UNIFORM_NAME_MULTIVIEW_P_MATRIX = "CC_MultiViewPMatrix";
          const char* UNIFORM_NAME_MV_MATRIX = "CC_MVMatrix";
          const char* UNIFORM_NAME_MVP_MATRIX = "CC_MVPMatrix";
          const char* UNIFORM_NAME_MULTIVIEW_MVP_MATRIX = "CC_MultiViewMVPMatrix";
          const char* UNIFORM_NAME_NORMAL_MATRIX = "CC_NormalMatrix";
          const char* UNIFORM_NAME_TIME = "CC_Time";
          const char* UNIFORM_NAME_SIN_TIME = "CC_SinTime";
          const char* UNIFORM_NAME_COS_TIME = "CC_CosTime";
          const char* UNIFORM_NAME_RANDOM01 = "CC_Random01";
          const char* UNIFORM_NAME_SAMPLER0 = "CC_Texture0";
          const char* UNIFORM_NAME_SAMPLER1 = "CC_Texture1";
          const char* UNIFORM_NAME_SAMPLER2 = "CC_Texture2";
          const char* UNIFORM_NAME_SAMPLER3 = "CC_Texture3";
          const char* UNIFORM_NAME_ALPHA_TEST_VALUE = "CC_alpha_value";
      }
  
      namespace attribute {
          // Attribute names
          const char* ATTRIBUTE_NAME_COLOR = "a_color";
          const char* ATTRIBUTE_NAME_POSITION = "a_position";
          const char* ATTRIBUTE_NAME_TEX_COORD = "a_texCoord";
          const char* ATTRIBUTE_NAME_TEX_COORD1 = "a_texCoord1";
          const char* ATTRIBUTE_NAME_TEX_COORD2 = "a_texCoord2";
          const char* ATTRIBUTE_NAME_TEX_COORD3 = "a_texCoord3";
          const char* ATTRIBUTE_NAME_NORMAL = "a_normal";
          const char* ATTRIBUTE_NAME_BLEND_WEIGHT = "a_blendWeight";
          const char* ATTRIBUTE_NAME_BLEND_INDEX = "a_blendIndex";
          const char* ATTRIBUTE_NAME_TANGENT = "a_tangent";
          const char* ATTRIBUTE_NAME_BINORMAL = "a_binormal";
      }
  
      static std::vector<std::pair<const char *, VertexKey>> locations =
      {
          { attribute::ATTRIBUTE_NAME_POSITION, VertexKey::VERTEX_ATTRIB_POSITION },
          { attribute::ATTRIBUTE_NAME_COLOR, VertexKey::VERTEX_ATTRIB_COLOR },
          { attribute::ATTRIBUTE_NAME_TEX_COORD, VertexKey::VERTEX_ATTRIB_TEX_COORD },
          { attribute::ATTRIBUTE_NAME_TEX_COORD1, VertexKey::VERTEX_ATTRIB_TEX_COORD1 },
          { attribute::ATTRIBUTE_NAME_TEX_COORD2, VertexKey::VERTEX_ATTRIB_TEX_COORD2 },
          { attribute::ATTRIBUTE_NAME_TEX_COORD3, VertexKey::VERTEX_ATTRIB_TEX_COORD3 },
          { attribute::ATTRIBUTE_NAME_NORMAL, VertexKey::VERTEX_ATTRIB_NORMAL },
      };
  
      const std::vector<std::pair<const char *, VertexKey>> & getPredefinedAttributes()
      {
          return locations;
      }
  
      const std::string getAttributeName(const VertexKey &key)
      {
          static std::string s_attributeNames[] = {
              shaderinfos::attribute::ATTRIBUTE_NAME_POSITION,
              shaderinfos::attribute::ATTRIBUTE_NAME_COLOR,
              shaderinfos::attribute::ATTRIBUTE_NAME_TEX_COORD,
              shaderinfos::attribute::ATTRIBUTE_NAME_TEX_COORD1,
              shaderinfos::attribute::ATTRIBUTE_NAME_TEX_COORD2,
              shaderinfos::attribute::ATTRIBUTE_NAME_TEX_COORD3,
              shaderinfos::attribute::ATTRIBUTE_NAME_NORMAL,
              shaderinfos::attribute::ATTRIBUTE_NAME_BLEND_WEIGHT,
              shaderinfos::attribute::ATTRIBUTE_NAME_BLEND_INDEX,
              shaderinfos::attribute::ATTRIBUTE_NAME_TANGENT,
              shaderinfos::attribute::ATTRIBUTE_NAME_BINORMAL
          };
  
          static int max = sizeof(s_attributeNames) / sizeof(s_attributeNames[0]);
          auto idx = static_cast<int>(key);
          CCASSERT(idx >= 0 && idx < max, "invalid key ");    
          return s_attributeNames[idx];
      }
  };
  
  NS_CC_END