Commit 78b7f3a8 by Lingfeng Yang Committed by Commit Bot

GLES1: New packed enums for materials and lighting

BUG=angleproject:2306 Change-Id: Icd1f830b666d75b30455dd4cbc2183cd431b97cc Reviewed-on: https://chromium-review.googlesource.com/1065792 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
parent a9ab0f37
......@@ -328,6 +328,70 @@ GLenum ToGLenum(HintSetting from)
}
template <>
LightParameter FromGLenum<LightParameter>(GLenum from)
{
switch (from)
{
case GL_AMBIENT:
return LightParameter::Ambient;
case GL_AMBIENT_AND_DIFFUSE:
return LightParameter::AmbientAndDiffuse;
case GL_CONSTANT_ATTENUATION:
return LightParameter::ConstantAttenuation;
case GL_DIFFUSE:
return LightParameter::Diffuse;
case GL_LINEAR_ATTENUATION:
return LightParameter::LinearAttenuation;
case GL_POSITION:
return LightParameter::Position;
case GL_QUADRATIC_ATTENUATION:
return LightParameter::QuadraticAttenuation;
case GL_SPECULAR:
return LightParameter::Specular;
case GL_SPOT_CUTOFF:
return LightParameter::SpotCutoff;
case GL_SPOT_DIRECTION:
return LightParameter::SpotDirection;
case GL_SPOT_EXPONENT:
return LightParameter::SpotExponent;
default:
return LightParameter::InvalidEnum;
}
}
GLenum ToGLenum(LightParameter from)
{
switch (from)
{
case LightParameter::Ambient:
return GL_AMBIENT;
case LightParameter::AmbientAndDiffuse:
return GL_AMBIENT_AND_DIFFUSE;
case LightParameter::ConstantAttenuation:
return GL_CONSTANT_ATTENUATION;
case LightParameter::Diffuse:
return GL_DIFFUSE;
case LightParameter::LinearAttenuation:
return GL_LINEAR_ATTENUATION;
case LightParameter::Position:
return GL_POSITION;
case LightParameter::QuadraticAttenuation:
return GL_QUADRATIC_ATTENUATION;
case LightParameter::Specular:
return GL_SPECULAR;
case LightParameter::SpotCutoff:
return GL_SPOT_CUTOFF;
case LightParameter::SpotDirection:
return GL_SPOT_DIRECTION;
case LightParameter::SpotExponent:
return GL_SPOT_EXPONENT;
default:
UNREACHABLE();
return 0;
}
}
template <>
LogicalOperation FromGLenum<LogicalOperation>(GLenum from)
{
switch (from)
......@@ -412,6 +476,50 @@ GLenum ToGLenum(LogicalOperation from)
}
template <>
MaterialParameter FromGLenum<MaterialParameter>(GLenum from)
{
switch (from)
{
case GL_AMBIENT:
return MaterialParameter::Ambient;
case GL_AMBIENT_AND_DIFFUSE:
return MaterialParameter::AmbientAndDiffuse;
case GL_DIFFUSE:
return MaterialParameter::Diffuse;
case GL_EMISSION:
return MaterialParameter::Emission;
case GL_SHININESS:
return MaterialParameter::Shininess;
case GL_SPECULAR:
return MaterialParameter::Specular;
default:
return MaterialParameter::InvalidEnum;
}
}
GLenum ToGLenum(MaterialParameter from)
{
switch (from)
{
case MaterialParameter::Ambient:
return GL_AMBIENT;
case MaterialParameter::AmbientAndDiffuse:
return GL_AMBIENT_AND_DIFFUSE;
case MaterialParameter::Diffuse:
return GL_DIFFUSE;
case MaterialParameter::Emission:
return GL_EMISSION;
case MaterialParameter::Shininess:
return GL_SHININESS;
case MaterialParameter::Specular:
return GL_SPECULAR;
default:
UNREACHABLE();
return 0;
}
}
template <>
MatrixType FromGLenum<MatrixType>(GLenum from)
{
switch (from)
......
......@@ -144,6 +144,28 @@ template <>
HintSetting FromGLenum<HintSetting>(GLenum from);
GLenum ToGLenum(HintSetting from);
enum class LightParameter : uint8_t
{
Ambient = 0,
AmbientAndDiffuse = 1,
ConstantAttenuation = 2,
Diffuse = 3,
LinearAttenuation = 4,
Position = 5,
QuadraticAttenuation = 6,
Specular = 7,
SpotCutoff = 8,
SpotDirection = 9,
SpotExponent = 10,
InvalidEnum = 11,
EnumCount = 11,
};
template <>
LightParameter FromGLenum<LightParameter>(GLenum from);
GLenum ToGLenum(LightParameter from);
enum class LogicalOperation : uint8_t
{
And = 0,
......@@ -171,6 +193,23 @@ template <>
LogicalOperation FromGLenum<LogicalOperation>(GLenum from);
GLenum ToGLenum(LogicalOperation from);
enum class MaterialParameter : uint8_t
{
Ambient = 0,
AmbientAndDiffuse = 1,
Diffuse = 2,
Emission = 3,
Shininess = 4,
Specular = 5,
InvalidEnum = 6,
EnumCount = 6,
};
template <>
MaterialParameter FromGLenum<MaterialParameter>(GLenum from);
GLenum ToGLenum(MaterialParameter from);
enum class MatrixType : uint8_t
{
Modelview = 0,
......
......@@ -176,5 +176,28 @@
"Color" : "GL_COLOR_ARRAY",
"PointSize" : "GL_POINT_SIZE_ARRAY_OES",
"TextureCoord" : "GL_TEXTURE_COORD_ARRAY"
},
"MaterialParameter":
{
"Ambient" : "GL_AMBIENT",
"Diffuse" : "GL_DIFFUSE",
"AmbientAndDiffuse" : "GL_AMBIENT_AND_DIFFUSE",
"Specular" : "GL_SPECULAR",
"Emission" : "GL_EMISSION",
"Shininess" : "GL_SHININESS"
},
"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",
"LinearAttenuation" : "GL_LINEAR_ATTENUATION",
"QuadraticAttenuation" : "GL_QUADRATIC_ATTENUATION"
}
}
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