Changeset View
Changeset View
Standalone View
Standalone View
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLLight.cpp
| Show All 40 Lines | |||||
| #include "KX_Scene.h" | #include "KX_Scene.h" | ||||
| #include "DNA_lamp_types.h" | #include "DNA_lamp_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "GPU_material.h" | #include "GPU_material.h" | ||||
| RAS_OpenGLLight::RAS_OpenGLLight(RAS_OpenGLRasterizer *ras) | RAS_OpenGLLight::RAS_OpenGLLight(RAS_OpenGLRasterizer *ras) | ||||
| :m_rasterizer(ras) | :m_rasterizer(ras), | ||||
| m_staticShadow(true), | |||||
| m_requestShadowUpdate(true) | |||||
| { | { | ||||
| } | } | ||||
| RAS_OpenGLLight::~RAS_OpenGLLight() | RAS_OpenGLLight::~RAS_OpenGLLight() | ||||
| { | { | ||||
| GPULamp *lamp; | GPULamp *lamp; | ||||
| KX_LightObject* kxlight = (KX_LightObject*)m_light; | KX_LightObject* kxlight = (KX_LightObject*)m_light; | ||||
| Lamp *la = (Lamp*)kxlight->GetBlenderObject()->data; | Lamp *la = (Lamp*)kxlight->GetBlenderObject()->data; | ||||
| ▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | bool RAS_OpenGLLight::HasShadowBuffer() | ||||
| GPULamp *lamp; | GPULamp *lamp; | ||||
| if ((lamp = GetGPULamp())) | if ((lamp = GetGPULamp())) | ||||
| return GPU_lamp_has_shadow_buffer(lamp); | return GPU_lamp_has_shadow_buffer(lamp); | ||||
| else | else | ||||
| return false; | return false; | ||||
| } | } | ||||
| bool RAS_OpenGLLight::NeedShadowUpdate() | |||||
| { | |||||
| if (!m_staticShadow) | |||||
| return true; | |||||
| return m_requestShadowUpdate; | |||||
| } | |||||
| void RAS_OpenGLLight::SetStaticShadow(bool staticshadow) | |||||
| { | |||||
| m_staticShadow = staticshadow; | |||||
| } | |||||
| bool RAS_OpenGLLight::GetStaticShadow() | |||||
| { | |||||
| return m_staticShadow; | |||||
| } | |||||
| void RAS_OpenGLLight::SetRequestShadowUpdate(bool request) | |||||
| { | |||||
| m_requestShadowUpdate = true; | |||||
sybren: This is just silly; the argument is ignored and replaced by `true`. | |||||
| } | |||||
| bool RAS_OpenGLLight::GetRequestShadowUpdate() | |||||
| { | |||||
| return m_requestShadowUpdate; | |||||
| } | |||||
| int RAS_OpenGLLight::GetShadowLayer() | int RAS_OpenGLLight::GetShadowLayer() | ||||
| { | { | ||||
| GPULamp *lamp; | GPULamp *lamp; | ||||
| if ((lamp = GetGPULamp())) | if ((lamp = GetGPULamp())) | ||||
| return GPU_lamp_shadow_layer(lamp); | return GPU_lamp_shadow_layer(lamp); | ||||
| else | else | ||||
| return 0; | return 0; | ||||
| Show All 40 Lines | |||||
| void RAS_OpenGLLight::UnbindShadowBuffer() | void RAS_OpenGLLight::UnbindShadowBuffer() | ||||
| { | { | ||||
| GPULamp *lamp = GetGPULamp(); | GPULamp *lamp = GetGPULamp(); | ||||
| GPU_lamp_shadow_buffer_unbind(lamp); | GPU_lamp_shadow_buffer_unbind(lamp); | ||||
| if (GPU_lamp_shadow_buffer_type(lamp) == LA_SHADMAP_VARIANCE) | if (GPU_lamp_shadow_buffer_type(lamp) == LA_SHADMAP_VARIANCE) | ||||
| m_rasterizer->SetUsingOverrideShader(false); | m_rasterizer->SetUsingOverrideShader(false); | ||||
| m_requestShadowUpdate = false; | |||||
| } | } | ||||
| Image *RAS_OpenGLLight::GetTextureImage(short texslot) | Image *RAS_OpenGLLight::GetTextureImage(short texslot) | ||||
| { | { | ||||
| KX_LightObject* kxlight = (KX_LightObject*)m_light; | KX_LightObject* kxlight = (KX_LightObject*)m_light; | ||||
| Lamp *la = (Lamp*)kxlight->GetBlenderObject()->data; | Lamp *la = (Lamp*)kxlight->GetBlenderObject()->data; | ||||
| if (texslot >= MAX_MTEX || texslot < 0) | if (texslot >= MAX_MTEX || texslot < 0) | ||||
| Show All 36 Lines | |||||
This is just silly; the argument is ignored and replaced by true.