diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/opensubdiv/gpu_shader_opensubd_display.glsl | 4 | ||||
-rw-r--r-- | intern/opensubdiv/opensubdiv_gpu_capi.cc | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/intern/opensubdiv/gpu_shader_opensubd_display.glsl b/intern/opensubdiv/gpu_shader_opensubd_display.glsl index ffc8e3dcaa4..f0f0bb783e6 100644 --- a/intern/opensubdiv/gpu_shader_opensubd_display.glsl +++ b/intern/opensubdiv/gpu_shader_opensubd_display.glsl @@ -198,15 +198,17 @@ struct LightSource { vec4 diffuse; vec4 specular; vec4 spotDirection; +#ifdef SUPPORT_COLOR_MATERIAL float constantAttenuation; float linearAttenuation; float quadraticAttenuation; float spotCutoff; float spotExponent; float spotCosCutoff; +#endif }; -uniform Lighting { +layout(std140) uniform Lighting { LightSource lightSource[MAX_LIGHTS]; int num_enabled_lights; }; diff --git a/intern/opensubdiv/opensubdiv_gpu_capi.cc b/intern/opensubdiv/opensubdiv_gpu_capi.cc index 7a57f50d623..f21a8a523e6 100644 --- a/intern/opensubdiv/opensubdiv_gpu_capi.cc +++ b/intern/opensubdiv/opensubdiv_gpu_capi.cc @@ -59,19 +59,19 @@ typedef struct Light { float diffuse[4]; float specular[4]; float spot_direction[4]; +#ifdef SUPPORT_COLOR_MATERIAL float constant_attenuation; float linear_attenuation; float quadratic_attenuation; float spot_cutoff; float spot_exponent; float spot_cos_cutoff; - float pad[2]; +#endif } Light; typedef struct Lighting { Light lights[MAX_LIGHTS]; int num_enabled; - int pad[3]; } Lighting; typedef struct Transform { @@ -444,6 +444,7 @@ void openSubdiv_osdGLMeshDisplayPrepare(int use_osd_glsl, glGetLightfv(GL_LIGHT0 + i, GL_SPOT_DIRECTION, g_lighting_data.lights[i].spot_direction); +#ifdef SUPPORT_COLOR_MATERIAL glGetLightfv(GL_LIGHT0 + i, GL_CONSTANT_ATTENUATION, &g_lighting_data.lights[i].constant_attenuation); @@ -461,6 +462,7 @@ void openSubdiv_osdGLMeshDisplayPrepare(int use_osd_glsl, &g_lighting_data.lights[i].spot_exponent); g_lighting_data.lights[i].spot_cos_cutoff = cos(g_lighting_data.lights[i].spot_cutoff); +#endif } } |