aboutsummaryrefslogtreecommitdiff
path: root/scene/resources/material.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scene/resources/material.h124
1 files changed, 50 insertions, 74 deletions
diff --git a/scene/resources/material.h b/scene/resources/material.h
index fc1ea3d89..5b18ac61f 100644
--- a/scene/resources/material.h
+++ b/scene/resources/material.h
@@ -29,11 +29,11 @@
#ifndef MATERIAL_H
#define MATERIAL_H
-#include "servers/visual_server.h"
-#include "scene/resources/texture.h"
-#include "scene/resources/shader.h"
#include "resource.h"
+#include "scene/resources/shader.h"
+#include "scene/resources/texture.h"
#include "servers/visual/shader_language.h"
+#include "servers/visual_server.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
@@ -41,12 +41,11 @@
class Material : public Resource {
- OBJ_TYPE(Material,Resource);
+ OBJ_TYPE(Material, Resource);
RES_BASE_EXTENSION("mtl");
- OBJ_SAVE_TYPE( Material );
+ OBJ_SAVE_TYPE(Material);
public:
-
enum Flag {
FLAG_VISIBLE = VS::MATERIAL_FLAG_VISIBLE,
FLAG_DOUBLE_SIDED = VS::MATERIAL_FLAG_DOUBLE_SIDED,
@@ -74,20 +73,19 @@ public:
DEPTH_DRAW_NEVER = VS::MATERIAL_DEPTH_DRAW_NEVER
};
-
-
private:
BlendMode blend_mode;
bool flags[VS::MATERIAL_FLAG_MAX];
float line_width;
DepthDrawMode depth_draw_mode;
+
protected:
RID material;
static void _bind_methods();
public:
- void set_flag(Flag p_flag,bool p_enabled);
+ void set_flag(Flag p_flag, bool p_enabled);
bool get_flag(Flag p_flag) const;
void set_blend_mode(BlendMode p_blend_mode);
@@ -101,63 +99,58 @@ public:
virtual RID get_rid() const;
- Material(const RID& p_rid=RID());
+ Material(const RID &p_rid = RID());
virtual ~Material();
};
-VARIANT_ENUM_CAST( Material::Flag );
-VARIANT_ENUM_CAST( Material::DepthDrawMode );
-
-VARIANT_ENUM_CAST( Material::BlendMode );
+VARIANT_ENUM_CAST(Material::Flag);
+VARIANT_ENUM_CAST(Material::DepthDrawMode);
+VARIANT_ENUM_CAST(Material::BlendMode);
class FixedMaterial : public Material {
- OBJ_TYPE( FixedMaterial, Material );
+ OBJ_TYPE(FixedMaterial, Material);
REVERSE_GET_PROPERTY_LIST
public:
-
enum Parameter {
- PARAM_DIFFUSE=VS::FIXED_MATERIAL_PARAM_DIFFUSE,
- PARAM_DETAIL=VS::FIXED_MATERIAL_PARAM_DETAIL,
- PARAM_SPECULAR=VS::FIXED_MATERIAL_PARAM_SPECULAR,
- PARAM_EMISSION=VS::FIXED_MATERIAL_PARAM_EMISSION,
- PARAM_SPECULAR_EXP=VS::FIXED_MATERIAL_PARAM_SPECULAR_EXP,
- PARAM_GLOW=VS::FIXED_MATERIAL_PARAM_GLOW,
- PARAM_NORMAL=VS::FIXED_MATERIAL_PARAM_NORMAL,
- PARAM_SHADE_PARAM=VS::FIXED_MATERIAL_PARAM_SHADE_PARAM,
- PARAM_MAX=VS::FIXED_MATERIAL_PARAM_MAX
+ PARAM_DIFFUSE = VS::FIXED_MATERIAL_PARAM_DIFFUSE,
+ PARAM_DETAIL = VS::FIXED_MATERIAL_PARAM_DETAIL,
+ PARAM_SPECULAR = VS::FIXED_MATERIAL_PARAM_SPECULAR,
+ PARAM_EMISSION = VS::FIXED_MATERIAL_PARAM_EMISSION,
+ PARAM_SPECULAR_EXP = VS::FIXED_MATERIAL_PARAM_SPECULAR_EXP,
+ PARAM_GLOW = VS::FIXED_MATERIAL_PARAM_GLOW,
+ PARAM_NORMAL = VS::FIXED_MATERIAL_PARAM_NORMAL,
+ PARAM_SHADE_PARAM = VS::FIXED_MATERIAL_PARAM_SHADE_PARAM,
+ PARAM_MAX = VS::FIXED_MATERIAL_PARAM_MAX
};
-
enum TexCoordMode {
- TEXCOORD_UV=VS::FIXED_MATERIAL_TEXCOORD_UV,
- TEXCOORD_UV_TRANSFORM=VS::FIXED_MATERIAL_TEXCOORD_UV_TRANSFORM,
- TEXCOORD_UV2=VS::FIXED_MATERIAL_TEXCOORD_UV2,
- TEXCOORD_SPHERE=VS::FIXED_MATERIAL_TEXCOORD_SPHERE
+ TEXCOORD_UV = VS::FIXED_MATERIAL_TEXCOORD_UV,
+ TEXCOORD_UV_TRANSFORM = VS::FIXED_MATERIAL_TEXCOORD_UV_TRANSFORM,
+ TEXCOORD_UV2 = VS::FIXED_MATERIAL_TEXCOORD_UV2,
+ TEXCOORD_SPHERE = VS::FIXED_MATERIAL_TEXCOORD_SPHERE
};
enum FixedFlag {
- FLAG_USE_ALPHA=VS::FIXED_MATERIAL_FLAG_USE_ALPHA,
- FLAG_USE_COLOR_ARRAY=VS::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,
- FLAG_USE_POINT_SIZE=VS::FIXED_MATERIAL_FLAG_USE_POINT_SIZE,
- FLAG_DISCARD_ALPHA=VS::FIXED_MATERIAL_FLAG_DISCARD_ALPHA,
- FLAG_USE_XY_NORMALMAP=VS::FIXED_MATERIAL_FLAG_USE_XY_NORMALMAP,
- FLAG_MAX=VS::FIXED_MATERIAL_FLAG_MAX
+ FLAG_USE_ALPHA = VS::FIXED_MATERIAL_FLAG_USE_ALPHA,
+ FLAG_USE_COLOR_ARRAY = VS::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,
+ FLAG_USE_POINT_SIZE = VS::FIXED_MATERIAL_FLAG_USE_POINT_SIZE,
+ FLAG_DISCARD_ALPHA = VS::FIXED_MATERIAL_FLAG_DISCARD_ALPHA,
+ FLAG_USE_XY_NORMALMAP = VS::FIXED_MATERIAL_FLAG_USE_XY_NORMALMAP,
+ FLAG_MAX = VS::FIXED_MATERIAL_FLAG_MAX
};
enum LightShader {
- LIGHT_SHADER_LAMBERT=VS::FIXED_MATERIAL_LIGHT_SHADER_LAMBERT,
- LIGHT_SHADER_WRAP=VS::FIXED_MATERIAL_LIGHT_SHADER_WRAP,
- LIGHT_SHADER_VELVET=VS::FIXED_MATERIAL_LIGHT_SHADER_VELVET,
- LIGHT_SHADER_TOON=VS::FIXED_MATERIAL_LIGHT_SHADER_TOON
+ LIGHT_SHADER_LAMBERT = VS::FIXED_MATERIAL_LIGHT_SHADER_LAMBERT,
+ LIGHT_SHADER_WRAP = VS::FIXED_MATERIAL_LIGHT_SHADER_WRAP,
+ LIGHT_SHADER_VELVET = VS::FIXED_MATERIAL_LIGHT_SHADER_VELVET,
+ LIGHT_SHADER_TOON = VS::FIXED_MATERIAL_LIGHT_SHADER_TOON
};
private:
-
-
struct Node {
int param;
@@ -172,21 +165,16 @@ private:
bool fixed_flags[FLAG_MAX];
float point_size;
-
Transform uv_transform;
protected:
-
-
static void _bind_methods();
-
public:
-
void set_fixed_flag(FixedFlag p_flag, bool p_value);
bool get_fixed_flag(FixedFlag p_flag) const;
- void set_parameter(Parameter p_parameter, const Variant& p_value);
+ void set_parameter(Parameter p_parameter, const Variant &p_value);
Variant get_parameter(Parameter p_parameter) const;
void set_texture(Parameter p_parameter, Ref<Texture> p_texture);
@@ -198,7 +186,7 @@ public:
void set_light_shader(LightShader p_shader);
LightShader get_light_shader() const;
- void set_uv_transform(const Transform& p_transform);
+ void set_uv_transform(const Transform &p_transform);
Transform get_uv_transform() const;
void set_point_size(float p_transform);
@@ -206,53 +194,41 @@ public:
FixedMaterial();
~FixedMaterial();
-
};
-
-
-VARIANT_ENUM_CAST( FixedMaterial::Parameter );
-VARIANT_ENUM_CAST( FixedMaterial::TexCoordMode );
-VARIANT_ENUM_CAST( FixedMaterial::FixedFlag );
-VARIANT_ENUM_CAST( FixedMaterial::LightShader );
+VARIANT_ENUM_CAST(FixedMaterial::Parameter);
+VARIANT_ENUM_CAST(FixedMaterial::TexCoordMode);
+VARIANT_ENUM_CAST(FixedMaterial::FixedFlag);
+VARIANT_ENUM_CAST(FixedMaterial::LightShader);
class ShaderMaterial : public Material {
- OBJ_TYPE( ShaderMaterial, Material );
+ OBJ_TYPE(ShaderMaterial, Material);
Ref<Shader> shader;
-
-
void _shader_changed();
- static void _shader_parse(void*p_self,ShaderLanguage::ProgramNode*p_node);
+ static void _shader_parse(void *p_self, ShaderLanguage::ProgramNode *p_node);
protected:
-
- bool _set(const StringName& p_name, const Variant& p_value);
- bool _get(const StringName& p_name,Variant &r_ret) const;
- void _get_property_list( List<PropertyInfo> *p_list) const;
+ bool _set(const StringName &p_name, const Variant &p_value);
+ bool _get(const StringName &p_name, Variant &r_ret) const;
+ void _get_property_list(List<PropertyInfo> *p_list) const;
static void _bind_methods();
public:
-
- void set_shader(const Ref<Shader>& p_shader);
+ void set_shader(const Ref<Shader> &p_shader);
Ref<Shader> get_shader() const;
- void set_shader_param(const StringName& p_param,const Variant& p_value);
- Variant get_shader_param(const StringName& p_param) const;
+ void set_shader_param(const StringName &p_param, const Variant &p_value);
+ Variant get_shader_param(const StringName &p_param) const;
- void get_argument_options(const StringName& p_function,int p_idx,List<String>*r_options) const;
+ void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const;
ShaderMaterial();
};
//////////////////////
-
-
-
-
-
#endif