diff options
Diffstat (limited to 'src/modules/evas/engines/gl_common/evas_gl_3d_private.h')
-rw-r--r-- | src/modules/evas/engines/gl_common/evas_gl_3d_private.h | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h b/src/modules/evas/engines/gl_common/evas_gl_3d_private.h deleted file mode 100644 index 1c4d2adfac..0000000000 --- a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h +++ /dev/null @@ -1,183 +0,0 @@ -#ifndef EVAS_GL_3D_PRIVATE_H -#define EVAS_GL_3D_PRIVATE_H - -#include "evas_gl_common.h" - -typedef struct _E3D_Program E3D_Program; -typedef struct _E3D_Draw_Data E3D_Draw_Data; -typedef unsigned long E3D_Shader_Flag; - -// NOTE: order here should be equal with flag names in file evas_gl_3d_shader.c -#define E3D_SHADER_FLAG_NORMALIZE_NORMALS (1 << 0) -#define E3D_SHADER_FLAG_VERTEX_POSITION (1 << 1) -#define E3D_SHADER_FLAG_VERTEX_POSITION_BLEND (1 << 2) -#define E3D_SHADER_FLAG_VERTEX_NORMAL (1 << 3) -#define E3D_SHADER_FLAG_VERTEX_NORMAL_BLEND (1 << 4) -#define E3D_SHADER_FLAG_VERTEX_TANGENT (1 << 5) -#define E3D_SHADER_FLAG_VERTEX_TANGENT_BLEND (1 << 6) -#define E3D_SHADER_FLAG_VERTEX_COLOR (1 << 7) -#define E3D_SHADER_FLAG_VERTEX_COLOR_BLEND (1 << 8) -#define E3D_SHADER_FLAG_VERTEX_TEXCOORD (1 << 9) -#define E3D_SHADER_FLAG_VERTEX_TEXCOORD_BLEND (1 << 10) -#define E3D_SHADER_FLAG_LIGHT_DIRECTIONAL (1 << 11) -#define E3D_SHADER_FLAG_LIGHT_SPOT (1 << 12) -#define E3D_SHADER_FLAG_LIGHT_ATTENUATION (1 << 13) -#define E3D_SHADER_FLAG_AMBIENT (1 << 14) -#define E3D_SHADER_FLAG_DIFFUSE (1 << 15) -#define E3D_SHADER_FLAG_SPECULAR (1 << 16) -#define E3D_SHADER_FLAG_EMISSION (1 << 17) -#define E3D_SHADER_FLAG_DIFFUSE_TEXTURE (1 << 18) -#define E3D_SHADER_FLAG_AMBIENT_TEXTURE (1 << 19) -#define E3D_SHADER_FLAG_SPECULAR_TEXTURE (1 << 20) -#define E3D_SHADER_FLAG_EMISSION_TEXTURE (1 << 21) -#define E3D_SHADER_FLAG_NORMAL_TEXTURE (1 << 22) -#define E3D_SHADER_FLAG_DIFFUSE_TEXTURE_BLEND (1 << 23) -#define E3D_SHADER_FLAG_AMBIENT_TEXTURE_BLEND (1 << 24) -#define E3D_SHADER_FLAG_SPECULAR_TEXTURE_BLEND (1 << 25) -#define E3D_SHADER_FLAG_EMISSION_TEXTURE_BLEND (1 << 26) -#define E3D_SHADER_FLAG_NORMAL_TEXTURE_BLEND (1 << 27) -#define E3D_SHADER_FLAG_FOG_ENABLED (1 << 28) -#define E3D_SHADER_FLAG_ALPHA_TEST_ENABLED (1 << 29) -#define E3D_SHADER_FLAG_SHADOWED (1 << 30) -#define E3D_SHADER_FLAG_COUNT 31 - -static inline Eina_Bool -_flags_need_tex_coord(E3D_Shader_Flag flags) -{ - return (flags & E3D_SHADER_FLAG_AMBIENT_TEXTURE) || - (flags & E3D_SHADER_FLAG_DIFFUSE_TEXTURE) || - (flags & E3D_SHADER_FLAG_SPECULAR_TEXTURE) || - (flags & E3D_SHADER_FLAG_EMISSION_TEXTURE) || - (flags & E3D_SHADER_FLAG_NORMAL_TEXTURE); -} - -struct _E3D_Draw_Data -{ - E3D_Shader_Flag flags; - Evas_Canvas3D_Shader_Mode mode; - - Eina_Matrix4 matrix_mvp; - Eina_Matrix4 matrix_mv; - Eina_Matrix3 matrix_normal; - Eina_Matrix4 matrix_light; - - struct { - Evas_Canvas3D_Vertex_Buffer vertex0; - Evas_Canvas3D_Vertex_Buffer vertex1; - Evas_Real weight; - } vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT]; - - Evas_Canvas3D_Vertex_Assembly assembly; - int vertex_count; - int index_count; - Evas_Canvas3D_Index_Format index_format; - const void *indices; - - GLint texture_count; - - struct { - Evas_Color color; - GLint sampler0; - GLint sampler1; - E3D_Texture *tex0; - E3D_Texture *tex1; - Evas_Real texture_weight; - } materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT]; - - Evas_Real shininess; - - GLint smap_sampler; - GLint colortex_sampler; - Evas_Canvas3D_Blend_Func blend_sfactor; - Evas_Canvas3D_Blend_Func blend_dfactor; - Eina_Bool blending : 1; - - Evas_Canvas3D_Comparison alpha_comparison; - Evas_Real alpha_ref_value; - Eina_Bool alpha_test_enabled :1; - - struct { - Eina_Quaternion position; - Eina_Vector3 spot_dir; - Evas_Real spot_exp; - Evas_Real spot_cutoff_cos; - Eina_Vector3 atten; - Evas_Color ambient; - Evas_Color diffuse; - Evas_Color specular; - } light; - Evas_Color fog_color; - Evas_Color color_pick_key; - /*Sets of the quality of shadow rendering*/ - Evas_Real pcf_step; - Evas_Real pcf_size; - Evas_Real constant_bias; - - Eina_Bool render_to_texture; - - Evas_Real frame_size_h; - Evas_Real frame_size_w; -}; - -struct _E3D_Texture -{ - /*Offset for atlasses*/ - int x, y; - int w, h; - - Evas_GL_Image *surface; - /*Tranformation matrix, use it for adjusting texture unit coordinates*/ - Eina_Matrix3 trans; - - GLuint tex; - - Eina_Bool wrap_dirty; - GLenum wrap_s; - GLenum wrap_t; - - Eina_Bool filter_dirty; - GLenum filter_min; - GLenum filter_mag; - /*Use atlas for generation texture unit, @EINA_TRUE by default*/ - Eina_Bool atlas_enable; -}; - -struct _E3D_Drawable -{ - int w, h; - int alpha; - GLenum format; - GLenum depth_format; - GLenum stencil_format; - GLuint tex; - GLuint fbo; - GLuint depth_stencil_buf; - GLuint depth_buf; - GLuint stencil_buf; - GLuint texDepth; - GLuint texcolorpick; - GLuint color_pick_fb_id; -}; - -/* Texture internal functions. */ -void e3d_texture_param_update(E3D_Texture *texture); - -/* Program */ -E3D_Program *e3d_program_new(Evas_Canvas3D_Shader_Mode mode, E3D_Shader_Flag flags); -void e3d_program_free(E3D_Program *program); -GLuint e3d_program_id_get(const E3D_Program *program); -Evas_Canvas3D_Shader_Mode e3d_program_shader_mode_get(const E3D_Program *program); -E3D_Shader_Flag e3d_program_shader_flags_get(const E3D_Program *program); -void e3d_program_uniform_upload(E3D_Program *program, const E3D_Draw_Data *data); - -/* Renderer */ -void e3d_renderer_target_set(E3D_Renderer *renderer, E3D_Drawable *target); -void e3d_renderer_viewport_set(E3D_Renderer *renderer, int x, int y, int w, int h); -void e3d_renderer_clear(E3D_Renderer *renderer, const Evas_Color *color); -void e3d_renderer_draw(E3D_Renderer *renderer, E3D_Draw_Data *data); -void e3d_renderer_flush(E3D_Renderer *renderer); -void e3d_renderer_color_pick_target_set(E3D_Renderer *renderer, E3D_Drawable *drawable); -Eina_Bool e3d_renderer_rendering_to_texture_get(E3D_Renderer *renderer); -GLint e3d_renderer_sampler_colortexture_get(E3D_Renderer *renderer); -GLint e3d_renderer_sampler_shadowmap_get(E3D_Renderer *renderer); -#endif /* EVAS_GL_3D_PRIVATE_H */ |