diff options
Diffstat (limited to '')
| -rw-r--r-- | scene/resources/environment.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/scene/resources/environment.h b/scene/resources/environment.h new file mode 100644 index 000000000..c94c81b69 --- /dev/null +++ b/scene/resources/environment.h @@ -0,0 +1,132 @@ +/*************************************************************************/ +/* environment.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#ifndef ENVIRONMENT_H +#define ENVIRONMENT_H + +#include "resource.h" +#include "servers/visual_server.h" + +class Environment : public Resource { + + OBJ_TYPE(Environment,Resource); +public: + + enum BG { + + BG_KEEP=VS::ENV_BG_KEEP, + BG_DEFAULT_COLOR=VS::ENV_BG_DEFAULT_COLOR, + BG_COLOR=VS::ENV_BG_COLOR, + BG_TEXTURE=VS::ENV_BG_TEXTURE, + BG_CUBEMAP=VS::ENV_BG_CUBEMAP, + BG_TEXTURE_RGBE=VS::ENV_BG_TEXTURE_RGBE, + BG_CUBEMAP_RGBE=VS::ENV_BG_CUBEMAP_RGBE, + BG_MAX=VS::ENV_BG_MAX + }; + + enum BGParam { + + BG_PARAM_COLOR=VS::ENV_BG_PARAM_COLOR, + BG_PARAM_TEXTURE=VS::ENV_BG_PARAM_TEXTURE, + BG_PARAM_CUBEMAP=VS::ENV_BG_PARAM_CUBEMAP, + BG_PARAM_ENERGY=VS::ENV_BG_PARAM_ENERGY, + BG_PARAM_SCALE=VS::ENV_BG_PARAM_SCALE, + BG_PARAM_MAX=VS::ENV_BG_PARAM_MAX + }; + + enum Fx { + FX_GLOW=VS::ENV_FX_GLOW, + FX_DOF_BLUR=VS::ENV_FX_DOF_BLUR, + FX_HDR=VS::ENV_FX_HDR, + FX_FOG=VS::ENV_FX_FOG, + FX_BCS=VS::ENV_FX_BCS, + FX_GAMMA=VS::ENV_FX_GAMMA, + FX_MAX=VS::ENV_FX_MAX, + }; + + enum FxParam { + FX_PARAM_GLOW_BLUR_PASSES=VS::ENV_FX_PARAM_GLOW_BLUR_PASSES, + FX_PARAM_GLOW_BLOOM=VS::ENV_FX_PARAM_GLOW_BLOOM, + FX_PARAM_GLOW_BLOOM_TRESHOLD=VS::ENV_FX_PARAM_GLOW_BLOOM_TRESHOLD, + FX_PARAM_DOF_BLUR_PASSES=VS::ENV_FX_PARAM_DOF_BLUR_PASSES, + FX_PARAM_DOF_BLUR_BEGIN=VS::ENV_FX_PARAM_DOF_BLUR_BEGIN, + FX_PARAM_DOF_BLUR_RANGE=VS::ENV_FX_PARAM_DOF_BLUR_RANGE, + FX_PARAM_HDR_EXPOSURE=VS::ENV_FX_PARAM_HDR_EXPOSURE, + FX_PARAM_HDR_SCALAR=VS::ENV_FX_PARAM_HDR_SCALAR, + FX_PARAM_HDR_GLOW_TRESHOLD=VS::ENV_FX_PARAM_HDR_GLOW_TRESHOLD, + FX_PARAM_HDR_GLOW_SCALE=VS::ENV_FX_PARAM_HDR_GLOW_SCALE, + FX_PARAM_HDR_MIN_LUMINANCE=VS::ENV_FX_PARAM_HDR_MIN_LUMINANCE, + FX_PARAM_HDR_MAX_LUMINANCE=VS::ENV_FX_PARAM_HDR_MAX_LUMINANCE, + FX_PARAM_HDR_EXPOSURE_ADJUST_SPEED=VS::ENV_FX_PARAM_HDR_EXPOSURE_ADJUST_SPEED, + FX_PARAM_FOG_BEGIN=VS::ENV_FX_PARAM_FOG_BEGIN, + FX_PARAM_FOG_BEGIN_COLOR=VS::ENV_FX_PARAM_FOG_BEGIN_COLOR, + FX_PARAM_FOG_END_COLOR=VS::ENV_FX_PARAM_FOG_END_COLOR, + FX_PARAM_FOG_ATTENUATION=VS::ENV_FX_PARAM_FOG_ATTENUATION, + FX_PARAM_FOG_BG=VS::ENV_FX_PARAM_FOG_BG, + FX_PARAM_BCS_BRIGHTNESS=VS::ENV_FX_PARAM_BCS_BRIGHTNESS, + FX_PARAM_BCS_CONTRAST=VS::ENV_FX_PARAM_BCS_CONTRAST, + FX_PARAM_BCS_SATURATION=VS::ENV_FX_PARAM_BCS_SATURATION, + FX_PARAM_GAMMA=VS::ENV_FX_PARAM_GAMMA, + FX_PARAM_MAX=VS::ENV_FX_PARAM_MAX + }; +private: + + BG bg_mode; + Variant bg_param[BG_PARAM_MAX]; + bool fx_enabled[FX_MAX]; + Variant fx_param[FX_PARAM_MAX]; + RID environment; + +protected: + + static void _bind_methods(); +public: + void set_background(BG p_bg); + BG get_background() const; + + void set_background_param(BGParam p_param, const Variant& p_value); + Variant get_background_param(BGParam p_param) const; + + void set_enable_fx(Fx p_effect,bool p_enabled); + bool is_fx_enabled(Fx p_effect) const; + + void fx_set_param(FxParam p_param,const Variant& p_value); + Variant fx_get_param(FxParam p_param) const; + + virtual RID get_rid() const; + + Environment(); + ~Environment(); +}; + +VARIANT_ENUM_CAST( Environment::BG ); +VARIANT_ENUM_CAST( Environment::BGParam ); +VARIANT_ENUM_CAST( Environment::Fx ); +VARIANT_ENUM_CAST( Environment::FxParam ); + +#endif // ENVIRONMENT_H |
