mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0024310: TKOpenGl - GLSL compatibility issues
Lights defintion clean up: - remove duplicated enumeration TLightType (equals to Visual3d_TypeOfLightSource) - remove unused fields from Graphic3d_CLight - OpenGl_Light, reuse Graphic3d_CLight definition Phong GLSL program: - move out cumulative ambient light intencity from limited list of lights - compatibility issues, replace array of structures (light sources, materials, clipping planes) with arrays of primitive types New Draw Harness command vlight to alter light sources definition. OpenGl_ShaderProgram::Initialize() - add missing Linker log
This commit is contained in:
@@ -52,131 +52,21 @@ enum OpenGl_StateVariable
|
||||
OpenGl_OCC_PROJECTION_MATRIX_INVERSE_TRANSPOSE,
|
||||
|
||||
// OpenGL clip planes state
|
||||
OpenGl_OCC_CLIP_PLANE_0_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_1_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_2_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_3_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_4_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_5_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_6_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_7_EQUATION,
|
||||
OpenGl_OCC_CLIP_PLANE_0_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_1_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_2_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_3_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_4_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_5_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_6_SPACE,
|
||||
OpenGl_OCC_CLIP_PLANE_7_SPACE,
|
||||
|
||||
OpenGl_OCC_LIGHT_SOURCE_COUNT,
|
||||
OpenGl_OCC_CLIP_PLANE_EQUATIONS,
|
||||
OpenGl_OCC_CLIP_PLANE_SPACES,
|
||||
|
||||
// OpenGL light state
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_TYPE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_HEAD,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_AMBIENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_DIFFUSE,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_SPECULAR,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_POSITION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_SPOT_CUTOFF,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_SPOT_EXPONENT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_SPOT_DIRECTION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_CONST_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_0_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_1_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_2_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_3_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_4_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_5_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_6_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_7_LINEAR_ATTENUATION,
|
||||
OpenGl_OCC_LIGHT_SOURCE_COUNT,
|
||||
OpenGl_OCC_LIGHT_SOURCE_TYPES,
|
||||
OpenGl_OCC_LIGHT_SOURCE_PARAMS,
|
||||
OpenGl_OCC_LIGHT_AMBIENT,
|
||||
|
||||
// Material state
|
||||
OpenGl_OCCT_ACTIVE_SAMPLER,
|
||||
OpenGl_OCCT_TEXTURE_ENABLE,
|
||||
OpenGl_OCCT_DISTINGUISH_MODE,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_AMBIENT,
|
||||
OpenGl_OCCT_BACK_MATERIAL_AMBIENT,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_DIFFUSE,
|
||||
OpenGl_OCCT_BACK_MATERIAL_DIFFUSE,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_SPECULAR,
|
||||
OpenGl_OCCT_BACK_MATERIAL_SPECULAR,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_EMISSION,
|
||||
OpenGl_OCCT_BACK_MATERIAL_EMISSION,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_SHININESS,
|
||||
OpenGl_OCCT_BACK_MATERIAL_SHININESS,
|
||||
OpenGl_OCCT_FRONT_MATERIAL_TRANSPARENCY,
|
||||
OpenGl_OCCT_BACK_MATERIAL_TRANSPARENCY,
|
||||
OpenGl_OCCT_FRONT_MATERIAL,
|
||||
OpenGl_OCCT_BACK_MATERIAL,
|
||||
|
||||
// DON'T MODIFY THIS ITEM (insert new items before it)
|
||||
OpenGl_OCCT_NUMBER_OF_STATE_VARIABLES
|
||||
@@ -302,6 +192,12 @@ public:
|
||||
//! Reverts to fixed-function graphics pipeline (FFP).
|
||||
Standard_EXPORT static void Unbind (const Handle(OpenGl_Context)& theCtx);
|
||||
|
||||
//! @return true if current object was initialized
|
||||
inline bool IsValid() const
|
||||
{
|
||||
return myProgramID != NO_PROGRAM;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
//! Returns index of last modification of variables of specified state type.
|
||||
|
||||
Reference in New Issue
Block a user