diff options
author | Juan Linietsky <reduzio@gmail.com> | 2014-10-27 22:54:32 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2014-10-27 22:54:32 -0300 |
commit | e82dc402052a47b44bb3bcf50ee4801257f92778 (patch) | |
tree | 01c2cd8692b5569cae778f6504b76b3d1f9ccdad /drivers/gles1 | |
parent | 9608d4255eb6c76b1c4496f4494c829133e096f4 (diff) |
-Much improvement to baked light baker
-Fixed many bugs in stretch mode
-Fixes to camera project and unproject as consequence of the above
-added setget to script (documented in script doc)
-more fixes to collada exporter for blender
Diffstat (limited to 'drivers/gles1')
-rw-r--r-- | drivers/gles1/rasterizer_gles1.cpp | 19 | ||||
-rw-r--r-- | drivers/gles1/rasterizer_gles1.h | 11 |
2 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gles1/rasterizer_gles1.cpp b/drivers/gles1/rasterizer_gles1.cpp index 02de063bda..00fc85c41c 100644 --- a/drivers/gles1/rasterizer_gles1.cpp +++ b/drivers/gles1/rasterizer_gles1.cpp @@ -5365,6 +5365,18 @@ Variant RasterizerGLES1::environment_fx_get_param(RID p_env,VS::EnvironmentFxPar } +/* SAMPLED LIGHT */ + +RID RasterizerGLES1::sampled_light_dp_create(int p_width,int p_height) { + + return sampled_light_owner.make_rid(memnew(SampledLight)); +} + +void RasterizerGLES1::sampled_light_dp_update(RID p_sampled_light, const Color *p_data, float p_multiplier) { + + +} + /*MISC*/ bool RasterizerGLES1::is_texture(const RID& p_rid) const { @@ -5559,6 +5571,13 @@ void RasterizerGLES1::free(const RID& p_rid) { environment_owner.free(p_rid); memdelete( env ); + } else if (sampled_light_owner.owns(p_rid)) { + + SampledLight *sampled_light = sampled_light_owner.get( p_rid ); + ERR_FAIL_COND(!sampled_light); + + sampled_light_owner.free(p_rid); + memdelete( sampled_light ); }; } diff --git a/drivers/gles1/rasterizer_gles1.h b/drivers/gles1/rasterizer_gles1.h index cca953eed0..0995089dd7 100644 --- a/drivers/gles1/rasterizer_gles1.h +++ b/drivers/gles1/rasterizer_gles1.h @@ -488,6 +488,13 @@ class RasterizerGLES1 : public Rasterizer { mutable RID_Owner<Environment> environment_owner; + struct SampledLight { + + int w,h; + }; + + mutable RID_Owner<SampledLight> sampled_light_owner; + struct ShadowBuffer; struct LightInstance { @@ -1190,6 +1197,10 @@ public: virtual void environment_fx_set_param(RID p_env,VS::EnvironmentFxParam p_param,const Variant& p_value); virtual Variant environment_fx_get_param(RID p_env,VS::EnvironmentFxParam p_param) const; + /* SAMPLED LIGHT */ + virtual RID sampled_light_dp_create(int p_width,int p_height); + virtual void sampled_light_dp_update(RID p_sampled_light,const Color *p_data,float p_multiplier); + /*MISC*/ |