Commit 450420b2 by Jamie Madill Committed by Commit Bot

Order packed enums according to JSON.

This simplifies the code for the ordered enum cases. Also sort the existing non-ordered enums alphabetically. Bug: angleproject:2574 Bug: angleproject:2169 Change-Id: I444092a94ee46f76b2fc05a557458f273c5a50bc Reviewed-on: https://chromium-review.googlesource.com/1067111 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent d4703d50
......@@ -7,6 +7,7 @@
import datetime, json, os, sys
from collections import namedtuple
from collections import OrderedDict
Enum = namedtuple('Enum', ['name', 'values', 'max_value'])
EnumValue = namedtuple('EnumValue', ['name', 'gl_name', 'value'])
......@@ -28,28 +29,20 @@ Generators = [
def load_enums(path):
with open(path) as map_file:
enums_dict = json.loads(map_file.read())
enums_dict = json.loads(map_file.read(), object_pairs_hook=OrderedDict)
enums = []
for (enum_name, value_list) in enums_dict.iteritems():
if isinstance(value_list, dict):
values = []
i = 0
for (value_name, value_gl_name) in sorted(value_list.iteritems()):
values.append(EnumValue(value_name, value_gl_name, i))
i += 1
values = []
i = 0
assert(i < 255) # This makes sure enums fit in the uint8_t
enums.append(Enum(enum_name, values, i))
for (value_name, value_gl_name) in value_list.iteritems():
values.append(EnumValue(value_name, value_gl_name, i))
i += 1
else:
assert(isinstance(value_list, list))
values = [EnumValue(v['name'], v['gl_name'], v['value']) for v in value_list]
max_value = max([value.value for value in values]) + 1
enums.append(Enum(enum_name, values, max_value))
assert(i < 255) # This makes sure enums fit in the uint8_t
enums.append(Enum(enum_name, values, i))
enums.sort(key=lambda enum: enum.name)
return enums
......
{
"AlphaTestFunc":
{
"Never": "GL_NEVER",
"AlwaysPass": "GL_ALWAYS",
"Less": "GL_LESS",
"Lequal": "GL_LEQUAL",
"Equal": "GL_EQUAL",
"Gequal": "GL_GEQUAL",
"Greater": "GL_GREATER",
"Lequal": "GL_LEQUAL",
"Less": "GL_LESS",
"Never": "GL_NEVER",
"NotEqual": "GL_NOTEQUAL"
},
"BufferBinding":
......@@ -39,11 +39,11 @@
},
"ClientVertexArrayType":
{
"Vertex": "GL_VERTEX_ARRAY",
"Normal": "GL_NORMAL_ARRAY",
"Color": "GL_COLOR_ARRAY",
"Normal": "GL_NORMAL_ARRAY",
"PointSize": "GL_POINT_SIZE_ARRAY_OES",
"TextureCoord": "GL_TEXTURE_COORD_ARRAY"
"TextureCoord": "GL_TEXTURE_COORD_ARRAY",
"Vertex": "GL_VERTEX_ARRAY"
},
"CullFaceMode":
{
......@@ -60,27 +60,27 @@
"HintSetting":
{
"DontCare" : "GL_DONT_CARE",
"Nicest" : "GL_NICEST",
"Fastest" : "GL_FASTEST"
"Fastest" : "GL_FASTEST",
"Nicest" : "GL_NICEST"
},
"LogicalOperation":
{
"Clear" : "GL_CLEAR",
"And" : "GL_AND",
"AndInverted" : "GL_AND_INVERTED",
"AndReverse" : "GL_AND_REVERSE",
"Clear" : "GL_CLEAR",
"Copy" : "GL_COPY",
"AndInverted" : "GL_AND_INVERTED",
"Noop" : "GL_NOOP",
"Xor" : "GL_XOR",
"Or" : "GL_OR",
"Nor" : "GL_NOR",
"CopyInverted" : "GL_COPY_INVERTED",
"Equiv" : "GL_EQUIV",
"Invert" : "GL_INVERT",
"OrReverse" : "GL_OR_REVERSE",
"CopyInverted" : "GL_COPY_INVERTED",
"OrInverted" : "GL_OR_INVERTED",
"Nand" : "GL_NAND",
"Set" : "GL_SET"
"Noop" : "GL_NOOP",
"Nor" : "GL_NOR",
"Or" : "GL_OR",
"OrInverted" : "GL_OR_INVERTED",
"OrReverse" : "GL_OR_REVERSE",
"Set" : "GL_SET",
"Xor" : "GL_XOR"
},
"MatrixType":
{
......@@ -99,12 +99,12 @@
"TransformFeedbackPrimitivesWritten": "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"
},
"ShaderType":
[
{"name": "Vertex", "gl_name": "GL_VERTEX_SHADER", "value": 0},
{"name": "Fragment", "gl_name": "GL_FRAGMENT_SHADER", "value": 1},
{"name": "Geometry", "gl_name": "GL_GEOMETRY_SHADER_EXT", "value": 2},
{"name": "Compute", "gl_name": "GL_COMPUTE_SHADER", "value": 3}
],
{
"Vertex": "GL_VERTEX_SHADER",
"Fragment": "GL_FRAGMENT_SHADER",
"Geometry": "GL_GEOMETRY_SHADER_EXT",
"Compute": "GL_COMPUTE_SHADER"
},
"ShadingModel":
{
"Flat" : "GL_FLAT",
......@@ -112,92 +112,92 @@
},
"TextureCombine":
{
"Replace" : "GL_REPLACE",
"Modulate" : "GL_MODULATE",
"Add" : "GL_ADD",
"AddSigned" : "GL_ADD_SIGNED",
"Interpolate" : "GL_INTERPOLATE",
"Subtract" : "GL_SUBTRACT",
"Dot3Rgb" : "GL_DOT3_RGB",
"Dot3Rgba" : "GL_DOT3_RGBA"
"Dot3Rgba" : "GL_DOT3_RGBA",
"Interpolate" : "GL_INTERPOLATE",
"Modulate" : "GL_MODULATE",
"Replace" : "GL_REPLACE",
"Subtract" : "GL_SUBTRACT"
},
"TextureEnvMode":
{
"Replace" : "GL_REPLACE",
"Modulate" : "GL_MODULATE",
"Decal" : "GL_DECAL",
"Blend" : "GL_BLEND",
"Add" : "GL_ADD",
"Combine" : "GL_COMBINE"
"Blend" : "GL_BLEND",
"Combine" : "GL_COMBINE",
"Decal" : "GL_DECAL",
"Modulate" : "GL_MODULATE",
"Replace" : "GL_REPLACE"
},
"TextureOp":
{
"SrcColor" : "GL_SRC_COLOR",
"OneMinusSrcAlpha" : "GL_ONE_MINUS_SRC_ALPHA",
"OneMinusSrcColor" : "GL_ONE_MINUS_SRC_COLOR",
"SrcAlpha" : "GL_SRC_ALPHA",
"OneMinusSrcAlpha" : "GL_ONE_MINUS_SRC_ALPHA"
"SrcColor" : "GL_SRC_COLOR"
},
"TextureSrc":
{
"Texture" : "GL_TEXTURE",
"Constant" : "GL_CONSTANT",
"Previous" : "GL_PREVIOUS",
"PrimaryColor" : "GL_PRIMARY_COLOR",
"Previous" : "GL_PREVIOUS"
"Texture" : "GL_TEXTURE"
},
"TextureType":
[
{"name": "_2D", "gl_name": "GL_TEXTURE_2D", "value": 0},
{"name": "_2DArray", "gl_name": "GL_TEXTURE_2D_ARRAY","value": 1},
{"name": "_2DMultisample", "gl_name": "GL_TEXTURE_2D_MULTISAMPLE","value": 2},
{"name": "_3D", "gl_name": "GL_TEXTURE_3D","value": 3},
{"name": "External", "gl_name": "GL_TEXTURE_EXTERNAL_OES","value": 4},
{"name": "Rectangle", "gl_name": "GL_TEXTURE_RECTANGLE_ANGLE","value": 5},
{"name": "CubeMap", "gl_name": "GL_TEXTURE_CUBE_MAP", "value": 6}
],
{
"_2D": "GL_TEXTURE_2D",
"_2DArray": "GL_TEXTURE_2D_ARRAY",
"_2DMultisample": "GL_TEXTURE_2D_MULTISAMPLE",
"_3D": "GL_TEXTURE_3D",
"External": "GL_TEXTURE_EXTERNAL_OES",
"Rectangle": "GL_TEXTURE_RECTANGLE_ANGLE",
"CubeMap": "GL_TEXTURE_CUBE_MAP"
},
"TextureTarget":
[
{"name": "_2D", "gl_name": "GL_TEXTURE_2D", "value": 0},
{"name": "_2DArray", "gl_name": "GL_TEXTURE_2D_ARRAY", "value": 1},
{"name": "_2DMultisample", "gl_name": "GL_TEXTURE_2D_MULTISAMPLE", "value": 2},
{"name": "_3D", "gl_name": "GL_TEXTURE_3D", "value": 3},
{"name": "External", "gl_name": "GL_TEXTURE_EXTERNAL_OES", "value": 4},
{"name": "Rectangle", "gl_name": "GL_TEXTURE_RECTANGLE_ANGLE", "value": 5},
{"name": "CubeMapPositiveX", "gl_name": "GL_TEXTURE_CUBE_MAP_POSITIVE_X", "value": 6},
{"name": "CubeMapNegativeX", "gl_name": "GL_TEXTURE_CUBE_MAP_NEGATIVE_X", "value": 7},
{"name": "CubeMapPositiveY", "gl_name": "GL_TEXTURE_CUBE_MAP_POSITIVE_Y", "value": 8},
{"name": "CubeMapNegativeY", "gl_name": "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", "value": 9},
{"name": "CubeMapPositiveZ", "gl_name": "GL_TEXTURE_CUBE_MAP_POSITIVE_Z", "value": 10},
{"name": "CubeMapNegativeZ", "gl_name": "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", "value": 11}
],
{
"_2D": "GL_TEXTURE_2D",
"_2DArray": "GL_TEXTURE_2D_ARRAY",
"_2DMultisample": "GL_TEXTURE_2D_MULTISAMPLE",
"_3D": "GL_TEXTURE_3D",
"External": "GL_TEXTURE_EXTERNAL_OES",
"Rectangle": "GL_TEXTURE_RECTANGLE_ANGLE",
"CubeMapPositiveX": "GL_TEXTURE_CUBE_MAP_POSITIVE_X",
"CubeMapNegativeX": "GL_TEXTURE_CUBE_MAP_NEGATIVE_X",
"CubeMapPositiveY": "GL_TEXTURE_CUBE_MAP_POSITIVE_Y",
"CubeMapNegativeY": "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y",
"CubeMapPositiveZ": "GL_TEXTURE_CUBE_MAP_POSITIVE_Z",
"CubeMapNegativeZ": "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"
},
"VertexArrayType":
{
"Vertex" : "GL_VERTEX_ARRAY",
"Normal" : "GL_NORMAL_ARRAY",
"Color" : "GL_COLOR_ARRAY",
"Normal" : "GL_NORMAL_ARRAY",
"PointSize" : "GL_POINT_SIZE_ARRAY_OES",
"TextureCoord" : "GL_TEXTURE_COORD_ARRAY"
"TextureCoord" : "GL_TEXTURE_COORD_ARRAY",
"Vertex" : "GL_VERTEX_ARRAY"
},
"MaterialParameter":
{
"Ambient" : "GL_AMBIENT",
"Diffuse" : "GL_DIFFUSE",
"AmbientAndDiffuse" : "GL_AMBIENT_AND_DIFFUSE",
"Specular" : "GL_SPECULAR",
"Diffuse" : "GL_DIFFUSE",
"Emission" : "GL_EMISSION",
"Shininess" : "GL_SHININESS"
"Shininess" : "GL_SHININESS",
"Specular" : "GL_SPECULAR"
},
"LightParameter":
{
"Ambient" : "GL_AMBIENT",
"Diffuse" : "GL_DIFFUSE",
"AmbientAndDiffuse" : "GL_AMBIENT_AND_DIFFUSE",
"Specular" : "GL_SPECULAR",
"Position" : "GL_POSITION",
"SpotDirection" : "GL_SPOT_DIRECTION",
"SpotExponent" : "GL_SPOT_EXPONENT",
"SpotCutoff" : "GL_SPOT_CUTOFF",
"ConstantAttenuation" : "GL_CONSTANT_ATTENUATION",
"Diffuse" : "GL_DIFFUSE",
"LinearAttenuation" : "GL_LINEAR_ATTENUATION",
"QuadraticAttenuation" : "GL_QUADRATIC_ATTENUATION"
"Position" : "GL_POSITION",
"QuadraticAttenuation" : "GL_QUADRATIC_ATTENUATION",
"Specular" : "GL_SPECULAR",
"SpotCutoff" : "GL_SPOT_CUTOFF",
"SpotDirection" : "GL_SPOT_DIRECTION",
"SpotExponent" : "GL_SPOT_EXPONENT"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment