forked from enlightenment/efl
evas: remove Evas_3D legacy API.
This commit is contained in:
parent
b35dfc5f05
commit
53a9fcf301
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_CAMERA_CLASS
|
||||
#define MY_CLASS EVAS_3D_CAMERA_CLASS
|
||||
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -11,18 +11,18 @@ _camera_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Node *n = *(Evas_3D_Node **)key;
|
||||
evas_3d_object_change(n, EVAS_3D_STATE_NODE_CAMERA, (Evas_3D_Object *)fdata);
|
||||
eo_do(n, evas_3d_object_change(EVAS_3D_STATE_NODE_CAMERA, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_eo_evas_3d_object_change_notify(Eo *obj,Evas_3D_Camera_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_camera_evas_3d_object_change_notify(Eo *obj,Evas_3D_Camera_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
if (pd->nodes) eina_hash_foreach(pd->nodes, _camera_node_change_notify, obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED,
|
||||
_evas_3d_camera_evas_3d_object_update_notify(Eo *obj EINA_UNUSED,
|
||||
Evas_3D_Camera_Data *pd EINA_UNUSED)
|
||||
{
|
||||
|
||||
|
@ -66,15 +66,15 @@ evas_3d_camera_node_del(Evas_3D_Camera *camera, Evas_3D_Node *node)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_eo_base_constructor(Eo *obj,
|
||||
_evas_3d_camera_eo_base_constructor(Eo *obj,
|
||||
Evas_3D_Camera_Data *pd EINA_UNUSED)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_CAMERA));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_CAMERA));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_eo_base_destructor(Eo *obj EINA_UNUSED,
|
||||
_evas_3d_camera_eo_base_destructor(Eo *obj EINA_UNUSED,
|
||||
Evas_3D_Camera_Data *pd)
|
||||
{
|
||||
//evas_3d_object_unreference(&pd->base);
|
||||
|
@ -93,15 +93,15 @@ evas_3d_camera_add(Evas *e)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_projection_matrix_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
_evas_3d_camera_projection_matrix_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
const Evas_Real *matrix)
|
||||
{
|
||||
evas_mat4_array_set(&pd->projection, matrix);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_CAMERA_PROJECTION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_projection_matrix_get(Eo *obj EINA_UNUSED,
|
||||
_evas_3d_camera_projection_matrix_get(Eo *obj EINA_UNUSED,
|
||||
Evas_3D_Camera_Data *pd,
|
||||
Evas_Real *matrix)
|
||||
{
|
||||
|
@ -109,7 +109,7 @@ _eo_evas_3d_camera_projection_matrix_get(Eo *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_projection_perspective_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
_evas_3d_camera_projection_perspective_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
Evas_Real fovy, Evas_Real aspect,
|
||||
Evas_Real dnear, Evas_Real dfar)
|
||||
{
|
||||
|
@ -120,27 +120,27 @@ _eo_evas_3d_camera_projection_perspective_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
|||
xmax = ymax * aspect;
|
||||
|
||||
evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_CAMERA_PROJECTION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_projection_frustum_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
_evas_3d_camera_projection_frustum_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
Evas_Real left, Evas_Real right,
|
||||
Evas_Real bottom, Evas_Real top,
|
||||
Evas_Real dnear, Evas_Real dfar)
|
||||
{
|
||||
evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_CAMERA_PROJECTION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_camera_projection_ortho_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
_evas_3d_camera_projection_ortho_set(Eo *obj, Evas_3D_Camera_Data *pd,
|
||||
Evas_Real left, Evas_Real right,
|
||||
Evas_Real bottom, Evas_Real top,
|
||||
Evas_Real dnear, Evas_Real dfar)
|
||||
{
|
||||
evas_mat4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_CAMERA_PROJECTION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
|
||||
}
|
||||
|
||||
#include "canvas/evas_3d_camera.eo.c"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Camera (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_camera;
|
||||
data: Evas_3D_Camera_Data;
|
||||
|
@ -18,6 +18,7 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Camera
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in const Evas_Real *matrix; /*@ Projection Matrix */
|
||||
}
|
||||
|
@ -34,6 +35,7 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Camera
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real matrix; /*@ Projection Matrix */
|
||||
|
@ -55,6 +57,7 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Camera
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
Evas_Real fovy; /*@ Field of view angle in Y direction. */
|
||||
Evas_Real aspect; /*@ Aspect ratio.*/
|
||||
|
@ -71,6 +74,7 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Camera
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
Evas_Real left; /*@ Left X coordinate of the near clipping plane. */
|
||||
Evas_Real right; /*@ Right X coordinate of the near clipping plane..*/
|
||||
|
@ -88,6 +92,7 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Camera
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
Evas_Real left; /*@ Left X coordinate of the near clipping plane. */
|
||||
Evas_Real right; /*@ Right X coordinate of the near clipping plane..*/
|
||||
|
@ -102,8 +107,8 @@ class EO_Evas_3D_Camera (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_LIGHT_CLASS
|
||||
#define MY_CLASS EVAS_3D_LIGHT_CLASS
|
||||
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -17,19 +17,19 @@ _light_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Node *n = *(Evas_3D_Node **)key;
|
||||
evas_3d_object_change(n, EVAS_3D_STATE_NODE_LIGHT, (Evas_3D_Object *)fdata);
|
||||
eo_do(n, evas_3d_object_change(EVAS_3D_STATE_NODE_LIGHT, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Light_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_light_evas_3d_object_change_notify(Eo *obj, Evas_3D_Light_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
if (pd->nodes)
|
||||
eina_hash_foreach(pd->nodes, _light_node_change_notify, obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd EINA_UNUSED)
|
||||
_evas_3d_light_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd EINA_UNUSED)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -87,10 +87,10 @@ evas_3d_light_add(Evas *e)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_LIGHT));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_LIGHT));
|
||||
evas_color_set(&pd->ambient, 0.0, 0.0, 0.0, 1.0);
|
||||
evas_color_set(&pd->diffuse, 1.0, 1.0, 1.0, 1.0);
|
||||
evas_color_set(&pd->specular, 1.0, 1.0, 1.0, 1.0);
|
||||
|
@ -105,7 +105,7 @@ _eo_evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
if (pd->nodes)
|
||||
eina_hash_free(pd->nodes);
|
||||
|
@ -113,34 +113,34 @@ _eo_evas_3d_light_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd
|
|||
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_directional_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool directional)
|
||||
_evas_3d_light_directional_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool directional)
|
||||
{
|
||||
if (pd->directional != directional)
|
||||
{
|
||||
pd->directional = directional;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_ANY, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_ANY, NULL));
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_light_directional_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_directional_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
return pd->directional;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_ambient_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
_evas_3d_light_ambient_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
{
|
||||
pd->ambient.r = r;
|
||||
pd->ambient.g = g;
|
||||
pd->ambient.b = b;
|
||||
pd->ambient.a = a;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_AMBIENT, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_AMBIENT, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_ambient_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
_evas_3d_light_ambient_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
{
|
||||
if (r) *r = pd->ambient.r;
|
||||
if (g) *g = pd->ambient.g;
|
||||
|
@ -149,18 +149,18 @@ _eo_evas_3d_light_ambient_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_diffuse_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
_evas_3d_light_diffuse_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
{
|
||||
pd->diffuse.r = r;
|
||||
pd->diffuse.g = g;
|
||||
pd->diffuse.b = b;
|
||||
pd->diffuse.a = a;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_DIFFUSE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_DIFFUSE, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_diffuse_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
_evas_3d_light_diffuse_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
{
|
||||
if (r) *r = pd->diffuse.r;
|
||||
if (g) *g = pd->diffuse.g;
|
||||
|
@ -169,18 +169,18 @@ _eo_evas_3d_light_diffuse_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_specular_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
_evas_3d_light_specular_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
{
|
||||
pd->specular.r = r;
|
||||
pd->specular.g = g;
|
||||
pd->specular.b = b;
|
||||
pd->specular.a = a;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_SPECULAR, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPECULAR, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_specular_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
_evas_3d_light_specular_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
{
|
||||
if (r) *r = pd->specular.r;
|
||||
if (g) *g = pd->specular.g;
|
||||
|
@ -189,43 +189,43 @@ _eo_evas_3d_light_specular_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_spot_exponent_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real exponent)
|
||||
_evas_3d_light_spot_exponent_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real exponent)
|
||||
{
|
||||
pd->spot_exp = exponent;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_SPOT_EXP, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_EXP, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_Real
|
||||
_eo_evas_3d_light_spot_exponent_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_spot_exponent_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
return pd->spot_exp;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_spot_cutoff_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real cutoff)
|
||||
_evas_3d_light_spot_cutoff_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real cutoff)
|
||||
{
|
||||
pd->spot_cutoff = cutoff;
|
||||
pd->spot_cutoff_cos = cos(cutoff * M_PI / 180.0);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_SPOT_CUTOFF, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_CUTOFF, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_Real
|
||||
_eo_evas_3d_light_spot_cutoff_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_spot_cutoff_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
return pd->spot_cutoff;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_attenuation_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real constant, Evas_Real linear, Evas_Real quadratic)
|
||||
_evas_3d_light_attenuation_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real constant, Evas_Real linear, Evas_Real quadratic)
|
||||
{
|
||||
pd->atten_const = constant;
|
||||
pd->atten_linear = linear;
|
||||
pd->atten_quad = quadratic;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_ATTENUATION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_ATTENUATION, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_attenuation_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *constant, Evas_Real *linear, Evas_Real *quadratic)
|
||||
_evas_3d_light_attenuation_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Real *constant, Evas_Real *linear, Evas_Real *quadratic)
|
||||
{
|
||||
if (constant) *constant = pd->atten_const;
|
||||
if (linear) *linear = pd->atten_linear;
|
||||
|
@ -233,17 +233,17 @@ _eo_evas_3d_light_attenuation_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, E
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_light_attenuation_enable_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool enable)
|
||||
_evas_3d_light_attenuation_enable_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool enable)
|
||||
{
|
||||
if (pd->enable_attenuation != enable)
|
||||
{
|
||||
pd->enable_attenuation = enable;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_LIGHT_ATTENUATION, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_ATTENUATION, NULL));
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_light_attenuation_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
_evas_3d_light_attenuation_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
|
||||
{
|
||||
return pd->enable_attenuation;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Light (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_light;
|
||||
data: Evas_3D_Light_Data;
|
||||
|
@ -19,6 +19,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
|
@ -28,6 +29,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool directional; /*@ Whether the light is directional (@c EINA_TRUE), or not (@c EINA_FALSE).*/
|
||||
|
@ -50,6 +52,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
|
@ -59,6 +62,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_Real exponent; /*@ Spot exponent value..*/
|
||||
|
@ -77,6 +81,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
|
@ -86,6 +91,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_Real cutoff; /*@ Cutoff angle in degree..*/
|
||||
|
@ -103,6 +109,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*@
|
||||
|
@ -112,6 +119,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool enable; /*@ Whether to enable attenuation (@c EINA_TRUE), or not (@c EINA_FALSE)..*/
|
||||
|
@ -127,6 +135,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real r; /*@ Red component of the ambient color between [0.0, 1.0]. */
|
||||
@in Evas_Real g; /*@ Green component of the ambient color between [0.0, 1.0]. */
|
||||
|
@ -142,6 +151,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real r; /*@ Red component of the ambient color between [0.0, 1.0]. */
|
||||
|
@ -159,6 +169,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real r; /*@ Red component of the diffuse color between [0.0, 1.0]. */
|
||||
@in Evas_Real g; /*@ Green component of the diffuse color between [0.0, 1.0]. */
|
||||
|
@ -174,6 +185,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real r; /*@ Red component of the diffuse color between [0.0, 1.0]. */
|
||||
|
@ -191,6 +203,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real r; /*@ Red component of the specular color between [0.0, 1.0]. */
|
||||
@in Evas_Real g; /*@ Green component of the specular color between [0.0, 1.0]. */
|
||||
|
@ -206,6 +219,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real r; /*@ Red component of the specular color between [0.0, 1.0]. */
|
||||
|
@ -231,6 +245,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real constant; /*@ Constant attenuation term..*/
|
||||
@in Evas_Real linear; /*@ Linear attenuation term..*/
|
||||
|
@ -246,6 +261,7 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Light
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real constant; /*@ Constant attenuation term..*/
|
||||
|
@ -258,8 +274,8 @@ class EO_Evas_3D_LIGHT (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,26 +8,26 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_MATERIAL_CLASS
|
||||
#define MY_CLASS EVAS_3D_MATERIAL_CLASS
|
||||
|
||||
static Eina_Bool
|
||||
_material_mesh_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
|
||||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Mesh *m = *(Evas_3D_Mesh **)key;
|
||||
evas_3d_object_change(m, EVAS_3D_STATE_MESH_MATERIAL, (Evas_3D_Object *)fdata);
|
||||
eo_do(m, evas_3d_object_change(EVAS_3D_STATE_MESH_MATERIAL, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_material_evas_3d_object_change_notify(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
if (pd->meshes)
|
||||
eina_hash_foreach(pd->meshes, _material_mesh_change_notify, obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
_evas_3d_material_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < EVAS_3D_MATERIAL_ATTRIB_COUNT; i++)
|
||||
|
@ -36,7 +36,7 @@ _eo_evas_3d_material_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3
|
|||
{
|
||||
if (pd->attribs[i].texture)
|
||||
{
|
||||
evas_3d_object_update(pd->attribs[i].texture);
|
||||
eo_do(pd->attribs[i].texture, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -97,10 +97,10 @@ evas_3d_material_add(Evas *e)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
_evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MATERIAL));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MATERIAL));
|
||||
|
||||
evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_AMBIENT].color, 0.2, 0.2, 0.2, 1.0);
|
||||
evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_DIFFUSE].color, 0.8, 0.8, 0.8, 1.0);
|
||||
|
@ -110,7 +110,7 @@ _eo_evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_D
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_eo_base_destructor(Eo *obj, Evas_3D_Material_Data *pd)
|
||||
_evas_3d_material_eo_base_destructor(Eo *obj, Evas_3D_Material_Data *pd)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -128,26 +128,26 @@ _eo_evas_3d_material_eo_base_destructor(Eo *obj, Evas_3D_Material_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Eina_Bool enable)
|
||||
_evas_3d_material_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Eina_Bool enable)
|
||||
{
|
||||
pd->attribs[attrib].enable = enable;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_material_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib)
|
||||
_evas_3d_material_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib)
|
||||
{
|
||||
return pd->attribs[attrib].enable;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_color_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
_evas_3d_material_color_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
{
|
||||
evas_color_set(&pd->attribs[attrib].color, r, g, b, a);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MATERIAL_COLOR, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MATERIAL_COLOR, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_color_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
_evas_3d_material_color_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
{
|
||||
if (r) *r = pd->attribs[attrib].color.r;
|
||||
if (g) *g = pd->attribs[attrib].color.g;
|
||||
|
@ -156,19 +156,19 @@ _eo_evas_3d_material_color_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, E
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_shininess_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_Real shininess)
|
||||
_evas_3d_material_shininess_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_Real shininess)
|
||||
{
|
||||
pd->shininess = shininess;
|
||||
}
|
||||
|
||||
EOLIAN static Evas_Real
|
||||
_eo_evas_3d_material_shininess_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
_evas_3d_material_shininess_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
|
||||
{
|
||||
return pd->shininess;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_material_texture_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_3D_Texture *texture)
|
||||
_evas_3d_material_texture_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_3D_Texture *texture)
|
||||
{
|
||||
if (pd->attribs[attrib].texture != texture)
|
||||
{
|
||||
|
@ -183,11 +183,11 @@ _eo_evas_3d_material_texture_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Mat
|
|||
eo_ref(texture);
|
||||
}
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MATERIAL_TEXTURE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MATERIAL_TEXTURE, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Texture *
|
||||
_eo_evas_3d_material_texture_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib)
|
||||
_evas_3d_material_texture_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib)
|
||||
{
|
||||
return pd->attribs[attrib].texture;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Material (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_material;
|
||||
data: Evas_3D_Material_Data;
|
||||
|
@ -23,6 +23,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Material_Attrib attrib; /*@ Material attribute ID. */
|
||||
@in Evas_Real r; /*@ Red component of the color. */
|
||||
|
@ -41,6 +42,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@in Evas_3D_Material_Attrib attrib; /*@ Material attribute ID. */
|
||||
|
@ -66,6 +68,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -76,6 +79,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@return @c EINA_TRUE if enabled, or @c EINA_FALSE if not.
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
keys {
|
||||
Evas_3D_Material_Attrib attrib; /*@ Material attribute ID. */
|
||||
|
@ -99,6 +103,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -109,6 +114,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@return The shininess value.
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_Real shininess; /*@ Shininess value. */
|
||||
|
@ -126,6 +132,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -137,6 +144,7 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Material
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
|
||||
keys {
|
||||
|
@ -150,8 +158,8 @@ class EO_Evas_3D_Material (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_MESH_CLASS
|
||||
#define MY_CLASS EVAS_3D_MESH_CLASS
|
||||
|
||||
static Evas_3D_Mesh_Frame *
|
||||
evas_3d_mesh_frame_new(Evas_3D_Mesh *mesh)
|
||||
|
@ -107,7 +107,7 @@ _mesh_node_geometry_change_notify(const Eina_Hash *hash EINA_UNUSED, const void
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Node *n = *(Evas_3D_Node **)key;
|
||||
evas_3d_object_change(n, EVAS_3D_STATE_NODE_MESH_GEOMETRY, (Evas_3D_Object *)fdata);
|
||||
eo_do(n, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_GEOMETRY, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -116,12 +116,12 @@ _mesh_node_material_change_notify(const Eina_Hash *hash EINA_UNUSED, const void
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Node *n = *(Evas_3D_Node **)key;
|
||||
evas_3d_object_change(n, EVAS_3D_STATE_NODE_MESH_MATERIAL, (Evas_3D_Object *)fdata);
|
||||
eo_do(n, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_MATERIAL, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_eo_evas_3d_mesh_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_State state, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_mesh_evas_3d_object_change_notify(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_State state, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
if (state == EVAS_3D_STATE_MESH_MATERIAL)
|
||||
{
|
||||
|
@ -136,7 +136,7 @@ _eo_evas_3d_mesh_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Mesh_Data *pd,
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_3D_Mesh_Frame *f;
|
||||
|
@ -145,7 +145,7 @@ _eo_evas_3d_mesh_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Me
|
|||
{
|
||||
if (f->material)
|
||||
{
|
||||
evas_3d_object_update(f->material);
|
||||
eo_do(f->material, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -204,51 +204,51 @@ evas_3d_mesh_add(Evas *e)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_eo_base_constructor(Eo *obj, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_eo_base_constructor(Eo *obj, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do (obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MESH));
|
||||
eo_do (obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MESH));
|
||||
_mesh_init(pd);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
//evas_3d_object_unreference(&pd->base);
|
||||
_mesh_fini(pd);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_shade_mode_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Evas_3D_Shade_Mode mode)
|
||||
_evas_3d_mesh_shade_mode_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Evas_3D_Shade_Mode mode)
|
||||
{
|
||||
if (pd->shade_mode != mode)
|
||||
{
|
||||
pd->shade_mode = mode;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_SHADE_MODE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_SHADE_MODE, NULL));
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Shade_Mode
|
||||
_eo_evas_3d_mesh_shade_mode_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_shade_mode_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
return pd->shade_mode;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_vertex_count_set(Eo *obj, Evas_3D_Mesh_Data *pd, unsigned int count)
|
||||
_evas_3d_mesh_vertex_count_set(Eo *obj, Evas_3D_Mesh_Data *pd, unsigned int count)
|
||||
{
|
||||
pd->vertex_count = count;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_VERTEX_COUNT, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_COUNT, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_eo_evas_3d_mesh_vertex_count_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_vertex_count_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
return pd->vertex_count;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_add(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
||||
_evas_3d_mesh_frame_add(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -265,11 +265,11 @@ _eo_evas_3d_mesh_frame_add(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
|||
|
||||
f->frame = frame;
|
||||
pd->frames = eina_list_append(pd->frames, f);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_FRAME, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FRAME, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_del(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
||||
_evas_3d_mesh_frame_del(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -281,11 +281,11 @@ _eo_evas_3d_mesh_frame_del(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
|
|||
|
||||
pd->frames = eina_list_remove(pd->frames, f);
|
||||
evas_3d_mesh_frame_free(f);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_FRAME, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FRAME, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_material_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Material *material)
|
||||
_evas_3d_mesh_frame_material_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Material *material)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -306,12 +306,12 @@ _eo_evas_3d_mesh_frame_material_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, E
|
|||
|
||||
f->material = material;
|
||||
eo_ref(material);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_MATERIAL, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_MATERIAL, NULL));
|
||||
evas_3d_material_mesh_add(material, obj);
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Material *
|
||||
_eo_evas_3d_mesh_frame_material_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame)
|
||||
_evas_3d_mesh_frame_material_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -325,7 +325,7 @@ _eo_evas_3d_mesh_frame_material_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd,
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_vertex_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data)
|
||||
_evas_3d_mesh_frame_vertex_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
int element_count;
|
||||
|
@ -371,11 +371,11 @@ _eo_evas_3d_mesh_frame_vertex_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame
|
|||
f->vertices[attrib].owns_data = EINA_FALSE;
|
||||
f->vertices[attrib].element_count = element_count;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_VERTEX_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_DATA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_vertex_data_copy_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data)
|
||||
_evas_3d_mesh_frame_vertex_data_copy_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib, int stride, const void *data)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
Evas_3D_Vertex_Buffer *vb;
|
||||
|
@ -498,11 +498,11 @@ _eo_evas_3d_mesh_frame_vertex_data_copy_set(Eo *obj, Evas_3D_Mesh_Data *pd, int
|
|||
}
|
||||
}
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_VERTEX_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_DATA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void *
|
||||
_eo_evas_3d_mesh_frame_vertex_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
_evas_3d_mesh_frame_vertex_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -523,7 +523,7 @@ _eo_evas_3d_mesh_frame_vertex_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *p
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_frame_vertex_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
_evas_3d_mesh_frame_vertex_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -543,7 +543,7 @@ _eo_evas_3d_mesh_frame_vertex_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data
|
|||
}
|
||||
|
||||
EOLIAN static int
|
||||
_eo_evas_3d_mesh_frame_vertex_stride_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
_evas_3d_mesh_frame_vertex_stride_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, int frame, Evas_3D_Vertex_Attrib attrib)
|
||||
{
|
||||
Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, frame);
|
||||
|
||||
|
@ -557,7 +557,7 @@ _eo_evas_3d_mesh_frame_vertex_stride_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_index_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices)
|
||||
_evas_3d_mesh_index_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices)
|
||||
{
|
||||
if (pd->owns_indices && pd->indices)
|
||||
free(pd->indices);
|
||||
|
@ -568,11 +568,11 @@ _eo_evas_3d_mesh_index_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Fo
|
|||
pd->indices = (void *)indices;
|
||||
pd->owns_indices = EINA_FALSE;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_INDEX_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_INDEX_DATA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_index_data_copy_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices)
|
||||
_evas_3d_mesh_index_data_copy_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices)
|
||||
{
|
||||
int size;
|
||||
|
||||
|
@ -615,19 +615,19 @@ _eo_evas_3d_mesh_index_data_copy_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd,
|
|||
}
|
||||
|
||||
EOLIAN static Evas_3D_Index_Format
|
||||
_eo_evas_3d_mesh_index_format_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_index_format_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
return pd->index_format;
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_eo_evas_3d_mesh_index_count_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_index_count_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
return pd->index_count;
|
||||
}
|
||||
|
||||
EOLIAN static void *
|
||||
_eo_evas_3d_mesh_index_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_index_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
if (pd->index_mapped)
|
||||
{
|
||||
|
@ -640,7 +640,7 @@ _eo_evas_3d_mesh_index_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_index_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_index_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
if (!pd->index_mapped)
|
||||
{
|
||||
|
@ -652,20 +652,20 @@ _eo_evas_3d_mesh_index_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_vertex_assembly_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Vertex_Assembly assembly)
|
||||
_evas_3d_mesh_vertex_assembly_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Vertex_Assembly assembly)
|
||||
{
|
||||
pd->assembly = assembly;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Vertex_Assembly
|
||||
_eo_evas_3d_mesh_vertex_assembly_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
_evas_3d_mesh_vertex_assembly_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
|
||||
{
|
||||
return pd->assembly;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_mesh_file_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type, const char *file, const char *key EINA_UNUSED)
|
||||
_evas_3d_mesh_file_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type, const char *file, const char *key EINA_UNUSED)
|
||||
{
|
||||
_mesh_fini(pd);
|
||||
_mesh_init(pd);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Mesh (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_mesh;
|
||||
data: Evas_3D_Mesh_Data;
|
||||
|
@ -13,6 +13,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
*
|
||||
* @ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Mesh_File_Type type; /*@ The type of the mesh file. */
|
||||
@in const char *file; /*@ Path to the mesh file. */
|
||||
|
@ -37,6 +38,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame. */
|
||||
@in Evas_3D_Vertex_Attrib attrib; /*@ Vertex attribute ID. */
|
||||
|
@ -59,6 +61,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame. */
|
||||
@in Evas_3D_Vertex_Attrib attrib; /*@ Vertex attribute ID. */
|
||||
|
@ -83,6 +86,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
return void *;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame. */
|
||||
|
@ -99,6 +103,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame. */
|
||||
@in Evas_3D_Vertex_Attrib attrib; /*@ Vertex attribute ID. */
|
||||
|
@ -119,6 +124,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return int ;
|
||||
params {
|
||||
|
@ -141,6 +147,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Index_Format format; /*@ Vertex index data format. */
|
||||
@in int count; /*@ Vertex index count. */
|
||||
|
@ -160,6 +167,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
return void ;
|
||||
params {
|
||||
@in Evas_3D_Index_Format format; /*@ Vertex index data format. */
|
||||
|
@ -185,6 +193,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Evas_3D_Index_Format ;
|
||||
}
|
||||
|
@ -202,6 +211,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return int ;
|
||||
}
|
||||
|
@ -221,6 +231,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
return void * ;
|
||||
}
|
||||
|
||||
|
@ -232,6 +243,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
|
||||
frame_add {
|
||||
|
@ -245,6 +257,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame to be added. */
|
||||
}
|
||||
|
@ -261,6 +274,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in int frame; /*@ The number of the key frame to be added. */
|
||||
}
|
||||
|
@ -278,6 +292,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in unsigned int count; /*@ Vertex count.*/
|
||||
}
|
||||
|
@ -291,6 +306,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return int;
|
||||
}
|
||||
|
@ -306,6 +322,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
*
|
||||
* @ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/**
|
||||
|
@ -315,6 +332,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
*
|
||||
* @ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Shade_Mode mode; /*@ The shade mode.*/
|
||||
|
@ -331,6 +349,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/**
|
||||
|
@ -340,6 +359,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
keys {
|
||||
int frame; /*@ The number of the key frame.*/
|
||||
|
@ -361,6 +381,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -372,6 +393,7 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Mesh
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Vertex_Assembly assembly; /*@ Vertex assembly.*/
|
||||
|
@ -382,8 +404,8 @@ class EO_Evas_3D_Mesh (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -366,8 +366,9 @@ evas_3d_mesh_file_md2_set(Evas_3D_Mesh *mesh, const char *file)
|
|||
s_scale = 1.0 / (float)(loader.skin_width - 1);
|
||||
t_scale = 1.0 / (float)(loader.skin_height - 1);
|
||||
|
||||
evas_3d_mesh_vertex_count_set(mesh, loader.triangle_count * 3);
|
||||
evas_3d_mesh_vertex_assembly_set(mesh, EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES);
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_vertex_count_set(loader.triangle_count * 3),
|
||||
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES));
|
||||
|
||||
/* Load frames */
|
||||
for (i = 0; i < loader.frame_count; i++)
|
||||
|
@ -375,22 +376,23 @@ evas_3d_mesh_file_md2_set(Evas_3D_Mesh *mesh, const char *file)
|
|||
const MD2_Frame *frame = (const MD2_Frame *)(loader.frames + loader.frame_size * i);
|
||||
int f = i * MD2_FRAME_SCALE;
|
||||
|
||||
/* Add a mesh frame. */
|
||||
evas_3d_mesh_frame_add(mesh, f);
|
||||
eo_do(mesh,
|
||||
/* Add a mesh frame. */
|
||||
evas_3d_mesh_frame_add(f),
|
||||
|
||||
/* Allocate vertex buffer for the frame. */
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_3D_VERTEX_POSITION, 0, NULL);
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_3D_VERTEX_NORMAL, 0, NULL);
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_3D_VERTEX_TEXCOORD, 0, NULL);
|
||||
/* Allocate vertex buffer for the frame. */
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(f, EVAS_3D_VERTEX_POSITION, 0, NULL),
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(f, EVAS_3D_VERTEX_NORMAL, 0, NULL),
|
||||
evas_3d_mesh_frame_vertex_data_copy_set(f, EVAS_3D_VERTEX_TEXCOORD, 0, NULL),
|
||||
|
||||
/* Map vertex buffer. */
|
||||
pos = (float *)evas_3d_mesh_frame_vertex_data_map(mesh, f, EVAS_3D_VERTEX_POSITION);
|
||||
nor = (float *)evas_3d_mesh_frame_vertex_data_map(mesh, f, EVAS_3D_VERTEX_NORMAL);
|
||||
tex = (float *)evas_3d_mesh_frame_vertex_data_map(mesh, f, EVAS_3D_VERTEX_TEXCOORD);
|
||||
/* Map vertex buffer. */
|
||||
pos = (float *)evas_3d_mesh_frame_vertex_data_map(f, EVAS_3D_VERTEX_POSITION),
|
||||
nor = (float *)evas_3d_mesh_frame_vertex_data_map(f, EVAS_3D_VERTEX_NORMAL),
|
||||
tex = (float *)evas_3d_mesh_frame_vertex_data_map(f, EVAS_3D_VERTEX_TEXCOORD),
|
||||
|
||||
stride_pos = evas_3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_3D_VERTEX_POSITION);
|
||||
stride_nor = evas_3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_3D_VERTEX_NORMAL);
|
||||
stride_tex = evas_3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_3D_VERTEX_TEXCOORD);
|
||||
stride_pos = evas_3d_mesh_frame_vertex_stride_get(f, EVAS_3D_VERTEX_POSITION),
|
||||
stride_nor = evas_3d_mesh_frame_vertex_stride_get(f, EVAS_3D_VERTEX_NORMAL),
|
||||
stride_tex = evas_3d_mesh_frame_vertex_stride_get(f, EVAS_3D_VERTEX_TEXCOORD));
|
||||
|
||||
if (stride_pos == 0)
|
||||
stride_pos = sizeof(float) * 3;
|
||||
|
@ -431,9 +433,10 @@ evas_3d_mesh_file_md2_set(Evas_3D_Mesh *mesh, const char *file)
|
|||
}
|
||||
|
||||
/* Unmap vertex buffer. */
|
||||
evas_3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_3D_VERTEX_POSITION);
|
||||
evas_3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_3D_VERTEX_NORMAL);
|
||||
evas_3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_3D_VERTEX_TEXCOORD);
|
||||
eo_do(mesh,
|
||||
evas_3d_mesh_frame_vertex_data_unmap(f, EVAS_3D_VERTEX_POSITION),
|
||||
evas_3d_mesh_frame_vertex_data_unmap(f, EVAS_3D_VERTEX_NORMAL),
|
||||
evas_3d_mesh_frame_vertex_data_unmap(f, EVAS_3D_VERTEX_TEXCOORD));
|
||||
}
|
||||
|
||||
_md2_loader_fini(&loader);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_NODE_CLASS
|
||||
#define MY_CLASS EVAS_3D_NODE_CLASS
|
||||
#define MY_CLASS_NAME "Evas_3D_Node"
|
||||
|
||||
static inline Evas_3D_Node_Mesh *
|
||||
|
@ -46,7 +46,7 @@ _node_scene_root_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *ke
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Scene *s = *(Evas_3D_Scene **)key;
|
||||
evas_3d_object_change(s, EVAS_3D_STATE_SCENE_ROOT_NODE, (Evas_3D_Object *)fdata);
|
||||
eo_do(s, evas_3d_object_change(EVAS_3D_STATE_SCENE_ROOT_NODE, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -55,12 +55,12 @@ _node_scene_camera_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Scene *s = *(Evas_3D_Scene **)key;
|
||||
evas_3d_object_change(s, EVAS_3D_STATE_SCENE_CAMERA_NODE, (Evas_3D_Object *)fdata);
|
||||
eo_do(s, evas_3d_object_change(EVAS_3D_STATE_SCENE_CAMERA_NODE, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_State state EINA_UNUSED , Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_node_evas_3d_object_change_notify(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_State state EINA_UNUSED , Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_3D_Node *n;
|
||||
|
@ -75,13 +75,13 @@ _eo_evas_3d_node_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Node_Data *pd,
|
|||
/* Notify parent that a member has changed. */
|
||||
if (pd->parent)
|
||||
{
|
||||
evas_3d_object_change(pd->parent, EVAS_3D_STATE_NODE_MEMBER, obj);
|
||||
eo_do(pd->parent, evas_3d_object_change(EVAS_3D_STATE_NODE_MEMBER, obj));
|
||||
}
|
||||
|
||||
/* Notify members that the parent has changed. */
|
||||
EINA_LIST_FOREACH(pd->members, l, n)
|
||||
{
|
||||
evas_3d_object_change(n, EVAS_3D_STATE_NODE_PARENT, obj);
|
||||
eo_do(n, evas_3d_object_change(EVAS_3D_STATE_NODE_PARENT, obj));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,8 +89,13 @@ static Eina_Bool
|
|||
_node_transform_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
||||
{
|
||||
Evas_3D_Node_Data *pd = eo_data_scope_get(node, MY_CLASS);
|
||||
if (evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_TRANSFORM) ||
|
||||
evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_PARENT))
|
||||
Eina_Bool transform_dirty = EINA_FALSE, parent_dirty = EINA_FALSE;
|
||||
|
||||
eo_do(node,
|
||||
transform_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_TRANSFORM),
|
||||
parent_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_PARENT));
|
||||
|
||||
if (transform_dirty || parent_dirty)
|
||||
{
|
||||
if (pd->parent)
|
||||
{
|
||||
|
@ -169,19 +174,19 @@ _node_transform_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
|||
static Eina_Bool
|
||||
_node_item_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
||||
{
|
||||
Evas_3D_Node_Data *pd = eo_data_scope_get(node, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pd = eo_data_scope_get(node, EVAS_3D_NODE_CLASS);
|
||||
if (pd->type == EVAS_3D_NODE_TYPE_CAMERA)
|
||||
{
|
||||
if (pd->data.camera.camera)
|
||||
{
|
||||
evas_3d_object_update(pd->data.camera.camera);
|
||||
eo_do(pd->data.camera.camera, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
else if (pd->type == EVAS_3D_NODE_TYPE_LIGHT)
|
||||
{
|
||||
if (pd->data.light.light)
|
||||
{
|
||||
evas_3d_object_update(pd->data.light.light);
|
||||
eo_do(pd->data.light.light, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
else if (pd->type == EVAS_3D_NODE_TYPE_MESH)
|
||||
|
@ -190,7 +195,7 @@ _node_item_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
|||
Evas_3D_Mesh *m;
|
||||
EINA_LIST_FOREACH(pd->data.mesh.meshes, l, m)
|
||||
{
|
||||
evas_3d_object_update(m);
|
||||
eo_do(m, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,11 +205,20 @@ _node_item_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
|||
static Eina_Bool
|
||||
_node_aabb_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
||||
{
|
||||
Evas_3D_Node_Data *pd = eo_data_scope_get(node, EO_EVAS_3D_NODE_CLASS);
|
||||
if (evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_TRANSFORM) ||
|
||||
evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_MESH_GEOMETRY) ||
|
||||
evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_MESH_FRAME) ||
|
||||
evas_3d_object_dirty_get(node, EVAS_3D_STATE_NODE_MEMBER))
|
||||
Evas_3D_Node_Data *pd = eo_data_scope_get(node, EVAS_3D_NODE_CLASS);
|
||||
Eina_Bool transform_dirty = EINA_FALSE, mesh_geom_dirty = EINA_FALSE,
|
||||
mesh_frame_dirty = EINA_FALSE, member_dirty = EINA_FALSE;
|
||||
|
||||
eo_do(node,
|
||||
transform_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_TRANSFORM),
|
||||
mesh_geom_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_MESH_GEOMETRY),
|
||||
mesh_frame_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_MESH_FRAME),
|
||||
member_dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_NODE_MEMBER));
|
||||
|
||||
if (transform_dirty ||
|
||||
mesh_geom_dirty ||
|
||||
mesh_frame_dirty ||
|
||||
member_dirty)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_3D_Node *n;
|
||||
|
@ -214,7 +228,7 @@ _node_aabb_update(Evas_3D_Node *node, void *data EINA_UNUSED)
|
|||
|
||||
EINA_LIST_FOREACH(pd->members, l, n)
|
||||
{
|
||||
Evas_3D_Node_Data *pdmember = eo_data_scope_get(n, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pdmember = eo_data_scope_get(n, EVAS_3D_NODE_CLASS);
|
||||
evas_box3_union(&pd->aabb, &pd->aabb, &pdmember->aabb);
|
||||
}
|
||||
|
||||
|
@ -231,13 +245,13 @@ static Eina_Bool
|
|||
_node_update_done(Evas_3D_Node *obj, void *data EINA_UNUSED)
|
||||
{
|
||||
//@FIXME
|
||||
Evas_3D_Object_Data *pdobject = eo_data_scope_get(obj, EO_EVAS_3D_OBJECT_CLASS);
|
||||
Evas_3D_Object_Data *pdobject = eo_data_scope_get(obj, EVAS_3D_OBJECT_CLASS);
|
||||
memset(&pdobject->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_eo_evas_3d_object_update_notify(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
_evas_3d_node_evas_3d_object_update_notify(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
{
|
||||
/* Update transform. */
|
||||
evas_3d_node_tree_traverse(obj, EVAS_3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE,
|
||||
|
@ -614,17 +628,17 @@ evas_3d_node_add(Evas *e, Evas_3D_Node_Type type)
|
|||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||
return NULL;
|
||||
MAGIC_CHECK_END();
|
||||
Evas_Object *eo_obj = eo_add_custom(MY_CLASS, e, eo_evas_3d_node_constructor(type));
|
||||
Evas_Object *eo_obj = eo_add_custom(MY_CLASS, e, evas_3d_node_constructor(type));
|
||||
eo_unref(eo_obj);
|
||||
return eo_obj;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_constructor(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node_Type type)
|
||||
_evas_3d_node_constructor(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node_Type type)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_NODE));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_NODE));
|
||||
|
||||
evas_vec3_set(&pd->position, 0.0, 0.0, 0.0);
|
||||
evas_vec4_set(&pd->orientation, 0.0, 0.0, 0.0, 0.0);
|
||||
|
@ -655,26 +669,26 @@ _eo_evas_3d_node_constructor(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node_Type t
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_eo_base_constructor(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
_evas_3d_node_eo_base_constructor(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
{
|
||||
eo_error_set(obj);
|
||||
ERR("only custom constructor can be used with '%s' class", MY_CLASS_NAME);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_eo_base_destructor(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
_evas_3d_node_eo_base_destructor(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
|
||||
{
|
||||
eo_unref(obj);
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Node_Type
|
||||
_eo_evas_3d_node_type_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_type_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->type;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_member_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
|
||||
_evas_3d_node_member_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
|
||||
{
|
||||
if (obj == member)
|
||||
{
|
||||
|
@ -692,7 +706,7 @@ _eo_evas_3d_node_member_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member
|
|||
pdmemberparent->members = eina_list_remove(pdmemberparent->members, member);
|
||||
|
||||
/* Mark changed. */
|
||||
evas_3d_object_change(pdmember->parent, EVAS_3D_STATE_NODE_MEMBER, NULL);
|
||||
eo_do(pdmember->parent, evas_3d_object_change(EVAS_3D_STATE_NODE_MEMBER, NULL));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -705,12 +719,12 @@ _eo_evas_3d_node_member_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member
|
|||
pdmember->parent = obj;
|
||||
|
||||
/* Mark changed. */
|
||||
evas_3d_object_change(member, EVAS_3D_STATE_NODE_PARENT, NULL);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MEMBER, NULL);
|
||||
eo_do(member, evas_3d_object_change(EVAS_3D_STATE_NODE_PARENT, NULL));
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MEMBER, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_member_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
|
||||
_evas_3d_node_member_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
|
||||
{
|
||||
Evas_3D_Node_Data *pdmember = eo_data_scope_get(member, MY_CLASS);
|
||||
if (pdmember->parent != obj)
|
||||
|
@ -724,48 +738,48 @@ _eo_evas_3d_node_member_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member
|
|||
pdmember->parent = NULL;
|
||||
|
||||
/* Mark modified object as changed. */
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MEMBER, NULL);
|
||||
evas_3d_object_change(member, EVAS_3D_STATE_NODE_PARENT, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MEMBER, NULL));
|
||||
eo_do(member, evas_3d_object_change(EVAS_3D_STATE_NODE_PARENT, NULL));
|
||||
|
||||
/* Decrease reference count. */
|
||||
eo_unref(member);
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Node *
|
||||
_eo_evas_3d_node_parent_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_parent_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->parent;
|
||||
}
|
||||
|
||||
EOLIAN static const Eina_List *
|
||||
_eo_evas_3d_node_member_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_member_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->members;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_position_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
|
||||
_evas_3d_node_position_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
|
||||
{
|
||||
pd->position.x = x;
|
||||
pd->position.y = y;
|
||||
pd->position.z = z;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_orientation_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w)
|
||||
_evas_3d_node_orientation_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w)
|
||||
{
|
||||
pd->orientation.x = x;
|
||||
pd->orientation.y = y;
|
||||
pd->orientation.z = z;
|
||||
pd->orientation.w = w;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_orientation_angle_axis_set(Eo *obj, Evas_3D_Node_Data *pd,
|
||||
_evas_3d_node_orientation_angle_axis_set(Eo *obj, Evas_3D_Node_Data *pd,
|
||||
Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z)
|
||||
{
|
||||
Evas_Real half_angle = 0.5 * DEGREE_TO_RADIAN(angle);
|
||||
|
@ -780,21 +794,21 @@ _eo_evas_3d_node_orientation_angle_axis_set(Eo *obj, Evas_3D_Node_Data *pd,
|
|||
pd->orientation.y = s * axis.y;
|
||||
pd->orientation.z = s * axis.z;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_scale_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
|
||||
_evas_3d_node_scale_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
|
||||
{
|
||||
pd->scale.x = x;
|
||||
pd->scale.y = y;
|
||||
pd->scale.z = z;
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_position_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
_evas_3d_node_position_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
Evas_Real *x, Evas_Real *y, Evas_Real *z)
|
||||
{
|
||||
if (space == EVAS_3D_SPACE_LOCAL)
|
||||
|
@ -811,7 +825,7 @@ _eo_evas_3d_node_position_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space spac
|
|||
}
|
||||
else if (space == EVAS_3D_SPACE_WORLD)
|
||||
{
|
||||
evas_3d_object_update(obj);
|
||||
eo_do(obj, evas_3d_object_update());
|
||||
|
||||
if (x) *x = pd->position_world.x;
|
||||
if (y) *y = pd->position_world.y;
|
||||
|
@ -820,7 +834,7 @@ _eo_evas_3d_node_position_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space spac
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_orientation_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
_evas_3d_node_orientation_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *w)
|
||||
{
|
||||
if (space == EVAS_3D_SPACE_LOCAL)
|
||||
|
@ -839,7 +853,7 @@ _eo_evas_3d_node_orientation_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space s
|
|||
}
|
||||
else if (space == EVAS_3D_SPACE_WORLD)
|
||||
{
|
||||
evas_3d_object_update(obj);
|
||||
eo_do(obj, evas_3d_object_update());
|
||||
|
||||
if (x) *x = pd->orientation_world.x;
|
||||
if (y) *y = pd->orientation_world.y;
|
||||
|
@ -850,7 +864,7 @@ _eo_evas_3d_node_orientation_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space s
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_scale_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
_evas_3d_node_scale_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
||||
Evas_Real *x, Evas_Real *y, Evas_Real *z)
|
||||
{
|
||||
if (space == EVAS_3D_SPACE_LOCAL)
|
||||
|
@ -867,7 +881,7 @@ _eo_evas_3d_node_scale_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
|||
}
|
||||
else if (space == EVAS_3D_SPACE_WORLD)
|
||||
{
|
||||
evas_3d_object_update(obj);
|
||||
eo_do(obj, evas_3d_object_update());
|
||||
|
||||
if (x) *x = pd->scale_world.x;
|
||||
if (y) *y = pd->scale_world.y;
|
||||
|
@ -876,46 +890,46 @@ _eo_evas_3d_node_scale_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_position_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
_evas_3d_node_position_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
{
|
||||
pd->position_inherit = inherit;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_orientation_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
_evas_3d_node_orientation_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
{
|
||||
pd->orientation_inherit = inherit;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_scale_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
_evas_3d_node_scale_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
|
||||
{
|
||||
pd->scale_inherit = inherit;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_node_position_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_position_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->position_inherit;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_node_orientation_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_orientation_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->orientation_inherit;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_node_scale_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_scale_inherit_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->scale_inherit;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_look_at_set(Eo *obj, Evas_3D_Node_Data *pd,
|
||||
_evas_3d_node_look_at_set(Eo *obj, Evas_3D_Node_Data *pd,
|
||||
Evas_3D_Space target_space, Evas_Real tx, Evas_Real ty, Evas_Real tz,
|
||||
Evas_3D_Space up_space, Evas_Real ux, Evas_Real uy, Evas_Real uz)
|
||||
{
|
||||
|
@ -1021,11 +1035,11 @@ _eo_evas_3d_node_look_at_set(Eo *obj, Evas_3D_Node_Data *pd,
|
|||
pd->orientation.y = (y.z + z.y) * s;
|
||||
}
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_TRANSFORM, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_camera_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Camera *camera)
|
||||
_evas_3d_node_camera_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Camera *camera)
|
||||
{
|
||||
if (pd->type != EVAS_3D_NODE_TYPE_CAMERA)
|
||||
{
|
||||
|
@ -1050,17 +1064,17 @@ _eo_evas_3d_node_camera_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Camera *came
|
|||
evas_3d_camera_node_add(camera, obj);
|
||||
|
||||
/* Mark changed. */
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_CAMERA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_CAMERA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Camera *
|
||||
_eo_evas_3d_node_camera_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_camera_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->data.camera.camera;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_light_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Light *light)
|
||||
_evas_3d_node_light_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Light *light)
|
||||
{
|
||||
if (pd->type != EVAS_3D_NODE_TYPE_LIGHT)
|
||||
{
|
||||
|
@ -1085,17 +1099,17 @@ _eo_evas_3d_node_light_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Light *light)
|
|||
evas_3d_light_node_add(light, obj);
|
||||
|
||||
/* Mark changed. */
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_LIGHT, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_LIGHT, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Light *
|
||||
_eo_evas_3d_node_light_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_light_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->data.light.light;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_mesh_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
_evas_3d_node_mesh_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
{
|
||||
Evas_3D_Node_Mesh *nm = NULL;
|
||||
|
||||
|
@ -1132,12 +1146,12 @@ _eo_evas_3d_node_mesh_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
|||
evas_3d_mesh_node_add(mesh, obj);
|
||||
|
||||
/* Mark changed. */
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MESH_GEOMETRY, NULL);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MESH_MATERIAL, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_GEOMETRY, NULL));
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_MATERIAL, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_mesh_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
_evas_3d_node_mesh_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
{
|
||||
if (pd->type != EVAS_3D_NODE_TYPE_MESH)
|
||||
{
|
||||
|
@ -1155,18 +1169,18 @@ _eo_evas_3d_node_mesh_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
|||
evas_3d_mesh_node_del(mesh, obj);
|
||||
eo_unref(mesh);
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MESH_GEOMETRY, NULL);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MESH_MATERIAL, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_GEOMETRY, NULL));
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_MATERIAL, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static const Eina_List *
|
||||
_eo_evas_3d_node_mesh_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
_evas_3d_node_mesh_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
|
||||
{
|
||||
return pd->data.mesh.meshes;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_node_mesh_frame_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh, int frame)
|
||||
_evas_3d_node_mesh_frame_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh, int frame)
|
||||
{
|
||||
Evas_3D_Node_Mesh *nm = NULL;
|
||||
|
||||
|
@ -1183,11 +1197,11 @@ _eo_evas_3d_node_mesh_frame_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *me
|
|||
}
|
||||
|
||||
nm->frame = frame;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_NODE_MESH_FRAME, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_MESH_FRAME, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_eo_evas_3d_node_mesh_frame_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
_evas_3d_node_mesh_frame_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
|
||||
{
|
||||
Evas_3D_Node_Mesh *nm = NULL;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Node (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_node;
|
||||
data: Evas_3D_Node_Data;
|
||||
|
@ -21,6 +21,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Evas_3D_Node_Type ;
|
||||
}
|
||||
|
@ -36,6 +37,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Node *member; /*@ Node object to be added. */
|
||||
}
|
||||
|
@ -49,6 +51,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Node *member; /*@ Member node to be deleted from the given node. */
|
||||
}
|
||||
|
@ -64,6 +67,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Evas_3D_Node * ;
|
||||
}
|
||||
|
@ -78,6 +82,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return const Eina_List * ;
|
||||
}
|
||||
|
@ -95,6 +100,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real x; /*@ X coordinate of the position. */
|
||||
@in Evas_Real y; /*@ Y coordinate of the position. */
|
||||
|
@ -114,6 +120,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real x; /*@ X term of the orientation quaternion (w, x, y, z) */
|
||||
@in Evas_Real y; /*@ Y term of the orientation quaternion (w, x, y, z) */
|
||||
|
@ -136,6 +143,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real angle; /*@ Rotation angle.*/
|
||||
@in Evas_Real x; /*@ X term of the rotation axis.*/
|
||||
|
@ -163,6 +171,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real x; /*@ Scale factor along X-axis.*/
|
||||
@in Evas_Real y; /*@ Scale factor along Y-axis.*/
|
||||
|
@ -183,6 +192,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@in Evas_3D_Space space; /*@ */
|
||||
|
@ -206,6 +216,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@in Evas_3D_Space space; /*@ */
|
||||
|
@ -229,6 +240,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@in Evas_3D_Space space; /*@ */
|
||||
|
@ -261,6 +273,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Space target_space; /*@ Space where the target position belongs to. */
|
||||
@in Evas_Real x; /*@ X coordinate of the target position. */
|
||||
|
@ -287,6 +300,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Mesh *mesh; /*@ The mesh to be added.*/
|
||||
}
|
||||
|
@ -306,6 +320,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Mesh *mesh; /*@ The mesh to be deleted.*/
|
||||
}
|
||||
|
@ -326,6 +341,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return const Eina_List *;
|
||||
}
|
||||
|
@ -348,6 +364,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -360,6 +377,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool inherit; /*@ Whether to inherit parent position*/
|
||||
|
@ -381,6 +399,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -393,6 +412,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool inherit; /*@ Whether to inherit parent orientation*/
|
||||
|
@ -413,6 +433,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -425,6 +446,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node_Transform
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool inherit; /*@ Whether to inherit parent scale*/
|
||||
|
@ -446,6 +468,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -458,6 +481,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Camera *camera; /*@ The camera */
|
||||
|
@ -479,6 +503,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -491,6 +516,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Light *light; /*@ The light */
|
||||
|
@ -515,6 +541,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -531,6 +558,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Node
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
keys {
|
||||
Evas_3D_Mesh *mesh; /*@ The given mesh.*/
|
||||
|
@ -543,7 +571,7 @@ class EO_Evas_3D_Node (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_OBJECT_CLASS
|
||||
#define MY_CLASS EVAS_3D_OBJECT_CLASS
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_object_eo_base_constructor(Eo *obj, Evas_3D_Object_Data *pd)
|
||||
_evas_3d_object_eo_base_constructor(Eo *obj, Evas_3D_Object_Data *pd)
|
||||
{
|
||||
Eo *e = NULL;
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
|
@ -18,31 +18,31 @@ _eo_evas_3d_object_eo_base_constructor(Eo *obj, Evas_3D_Object_Data *pd)
|
|||
|
||||
|
||||
EOLIAN static Evas *
|
||||
_eo_evas_3d_object_evas_common_interface_evas_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd)
|
||||
_evas_3d_object_evas_common_interface_evas_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd)
|
||||
{
|
||||
return pd->evas;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_object_type_set(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd, Evas_3D_Object_Type type)
|
||||
_evas_3d_object_type_set(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd, Evas_3D_Object_Type type)
|
||||
{
|
||||
pd->type = type;
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Object_Type
|
||||
_eo_evas_3d_object_type_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd)
|
||||
_evas_3d_object_type_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd)
|
||||
{
|
||||
return pd->type;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_object_dirty_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd, Evas_3D_State state)
|
||||
_evas_3d_object_dirty_get(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd, Evas_3D_State state)
|
||||
{
|
||||
return pd->dirty[state];
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_object_change(Eo *obj, Evas_3D_Object_Data *pd, Evas_3D_State state, Evas_3D_Object *ref)
|
||||
_evas_3d_object_change(Eo *obj, Evas_3D_Object_Data *pd, Evas_3D_State state, Evas_3D_Object *ref)
|
||||
{
|
||||
/* Skip already dirty properties. */
|
||||
if (pd->dirty[state])
|
||||
|
@ -51,16 +51,16 @@ _eo_evas_3d_object_change(Eo *obj, Evas_3D_Object_Data *pd, Evas_3D_State state,
|
|||
pd->dirty[state] = EINA_TRUE;
|
||||
pd->dirty[EVAS_3D_STATE_ANY] = EINA_TRUE;
|
||||
|
||||
eo_do(obj, eo_evas_3d_object_change_notify(state, ref));
|
||||
eo_do(obj, evas_3d_object_change_notify(state, ref));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_object_update(Eo *obj, Evas_3D_Object_Data *pd)
|
||||
_evas_3d_object_update(Eo *obj, Evas_3D_Object_Data *pd)
|
||||
{
|
||||
if (!pd->dirty[EVAS_3D_STATE_ANY])
|
||||
return;
|
||||
|
||||
eo_do(obj, eo_evas_3d_object_update_notify());
|
||||
eo_do(obj, evas_3d_object_update_notify());
|
||||
|
||||
memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
||||
class Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_object;
|
||||
data: Evas_3D_Object_Data;
|
||||
|
@ -11,11 +11,13 @@ class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
|||
@in Evas_3D_State state; /*@ State that is changed */
|
||||
@in Evas_3D_Object *ref; /*@ The Object that caused the change */
|
||||
}
|
||||
legacy null;
|
||||
}
|
||||
type_get {
|
||||
/*@
|
||||
Returns the type of the object.
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Evas_3D_Object_Type;
|
||||
}
|
||||
|
@ -24,6 +26,7 @@ class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
|||
/*@
|
||||
Returns the type of the object.
|
||||
*/
|
||||
legacy null;
|
||||
params{
|
||||
@in Evas_3D_Object_Type type;
|
||||
}
|
||||
|
@ -33,6 +36,7 @@ class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
|||
/*@
|
||||
Returns the status of a particular state of the object.
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Eina_Bool;
|
||||
params {
|
||||
|
@ -44,12 +48,14 @@ class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
|||
/*@
|
||||
Update request for the object.
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
update_notify {
|
||||
/*@
|
||||
Pure virtual update_notify function..
|
||||
Update request for the object.
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
|
||||
change_notify {
|
||||
|
@ -57,6 +63,7 @@ class EO_Evas_3D_Object (Eo_Base, Evas_Common_Interface)
|
|||
Pure virtual change_notify function..
|
||||
Update request for the object.
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_State state; /*@ State that is changed */
|
||||
@in Evas_3D_Object *ref; /*@ The Object that caused the change */
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_SCENE_CLASS
|
||||
#define MY_CLASS EVAS_3D_SCENE_CLASS
|
||||
|
||||
void
|
||||
evas_3d_scene_data_init(Evas_3D_Scene_Public_Data *data)
|
||||
|
@ -29,7 +29,7 @@ evas_3d_scene_data_fini(Evas_3D_Scene_Public_Data *data)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_eo_evas_3d_object_change_notify(Eo *eo_obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_scene_evas_3d_object_change_notify(Eo *eo_obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *eo;
|
||||
|
@ -42,16 +42,16 @@ _eo_evas_3d_scene_eo_evas_3d_object_change_notify(Eo *eo_obj EINA_UNUSED, Evas_3
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_eo_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
_evas_3d_scene_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
{
|
||||
if (pd->root_node)
|
||||
{
|
||||
evas_3d_object_update(pd->root_node);
|
||||
eo_do(pd->root_node, evas_3d_object_update());
|
||||
}
|
||||
|
||||
if (pd->camera_node)
|
||||
{
|
||||
evas_3d_object_update(pd->camera_node);
|
||||
eo_do(pd->camera_node, evas_3d_object_update());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -67,21 +67,21 @@ evas_3d_scene_add(Evas *e)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_eo_base_constructor(Eo *obj, Evas_3D_Scene_Data *pd)
|
||||
_evas_3d_scene_eo_base_constructor(Eo *obj, Evas_3D_Scene_Data *pd)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_SCENE));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_SCENE));
|
||||
evas_color_set(&pd->bg_color, 0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd EINA_UNUSED)
|
||||
_evas_3d_scene_eo_base_destructor(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd EINA_UNUSED)
|
||||
{
|
||||
//evas_3d_object_unreference(&pd->base);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_root_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *node)
|
||||
_evas_3d_scene_root_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *node)
|
||||
{
|
||||
if (pd->root_node == node)
|
||||
return;
|
||||
|
@ -100,17 +100,17 @@ _eo_evas_3d_scene_root_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *n
|
|||
evas_3d_node_scene_root_add(node, obj);
|
||||
}
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_SCENE_ROOT_NODE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_ROOT_NODE, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Node *
|
||||
_eo_evas_3d_scene_root_node_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
_evas_3d_scene_root_node_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
{
|
||||
return pd->root_node;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_camera_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *node)
|
||||
_evas_3d_scene_camera_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *node)
|
||||
{
|
||||
if (pd->camera_node == node)
|
||||
return;
|
||||
|
@ -129,40 +129,40 @@ _eo_evas_3d_scene_camera_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node
|
|||
evas_3d_node_scene_camera_add(node, obj);
|
||||
}
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_SCENE_CAMERA_NODE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_CAMERA_NODE, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static Evas_3D_Node *
|
||||
_eo_evas_3d_scene_camera_node_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
_evas_3d_scene_camera_node_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
|
||||
{
|
||||
return pd->camera_node;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_size_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int w, int h)
|
||||
_evas_3d_scene_size_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int w, int h)
|
||||
{
|
||||
pd->w = w;
|
||||
pd->h = h;
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_SCENE_SIZE, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_SIZE, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_size_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int *w, int *h)
|
||||
_evas_3d_scene_size_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int *w, int *h)
|
||||
{
|
||||
if (w) *w = pd->w;
|
||||
if (h) *h = pd->h;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_background_color_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd,
|
||||
_evas_3d_scene_background_color_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd,
|
||||
Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
|
||||
{
|
||||
evas_color_set(&pd->bg_color, r, g, b, a);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_SCENE_BACKGROUND_COLOR, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_BACKGROUND_COLOR, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_scene_background_color_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd,
|
||||
_evas_3d_scene_background_color_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd,
|
||||
Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
|
||||
{
|
||||
if (r) *r = pd->bg_color.r;
|
||||
|
@ -325,7 +325,7 @@ _pick_data_mesh_add(Evas_3D_Pick_Data *data, const Evas_Ray3 *ray,
|
|||
|
||||
evas_3d_mesh_interpolate_vertex_buffer_get(mesh, frame, EVAS_3D_VERTEX_TEXCOORD,
|
||||
&tex0, &tex1, &tex_weight);
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EO_EVAS_3D_MESH_CLASS);
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EVAS_3D_MESH_CLASS);
|
||||
if (pdmesh->indices)
|
||||
{
|
||||
unsigned int i0, i1, i2;
|
||||
|
@ -513,7 +513,7 @@ _node_pick(Evas_3D_Node *node, void *data)
|
|||
Evas_Ray3 ray;
|
||||
Evas_3D_Pick_Data *pick = (Evas_3D_Pick_Data *)data;
|
||||
Evas_Mat4 mvp;
|
||||
Evas_3D_Node_Data *pd_node = eo_data_scope_get(node, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pd_node = eo_data_scope_get(node, EVAS_3D_NODE_CLASS);
|
||||
|
||||
if (! evas_box3_ray3_intersect(&pd_node->aabb, &pick->ray_world))
|
||||
{
|
||||
|
@ -543,9 +543,9 @@ _node_pick(Evas_3D_Node *node, void *data)
|
|||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_scene_pick(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Evas_Real x, Evas_Real y,
|
||||
Evas_3D_Node **node, Evas_3D_Mesh **mesh,
|
||||
Evas_Real *s, Evas_Real *t)
|
||||
_evas_3d_scene_pick(Eo *obj, Evas_3D_Scene_Data *pd, Evas_Real x, Evas_Real y,
|
||||
Evas_3D_Node **node, Evas_3D_Mesh **mesh,
|
||||
Evas_Real *s, Evas_Real *t)
|
||||
{
|
||||
/* TODO: Use H/W picking if availabe. */
|
||||
Evas_3D_Pick_Data data;
|
||||
|
@ -561,9 +561,9 @@ _eo_evas_3d_scene_pick(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Evas_Real x,
|
|||
data.t = 0.0;
|
||||
|
||||
/* Update the scene graph. */
|
||||
evas_3d_object_update((Evas_3D_Object *)obj);
|
||||
Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(pd->camera_node, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Camera_Data *pd_camera = eo_data_scope_get(pd_camera_node->data.camera.camera, EO_EVAS_3D_CAMERA_CLASS);
|
||||
eo_do(obj, evas_3d_object_update());
|
||||
Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(pd->camera_node, EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Camera_Data *pd_camera = eo_data_scope_get(pd_camera_node->data.camera.camera, EVAS_3D_CAMERA_CLASS);
|
||||
evas_mat4_multiply(&data.matrix_vp,
|
||||
&pd_camera->projection,
|
||||
&pd_camera_node->data.camera.matrix_world_to_eye);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Scene (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_scene;
|
||||
data: Evas_3D_Scene_Data;
|
||||
|
@ -12,6 +12,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in int w; /*@ Width of the resolution. */
|
||||
@in int h; /*@ Height of the resolution. */
|
||||
|
@ -24,6 +25,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out int w; /*@ Pointer to receive width of the resolution. */
|
||||
|
@ -43,6 +45,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_Real r; /*@ Red component of the background color. */
|
||||
@in Evas_Real g; /*@ Green component of the background color. */
|
||||
|
@ -58,6 +61,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_Real r; /*@ Pointer to receive red component of the background color.*/
|
||||
|
@ -77,6 +81,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Eina_Bool ;
|
||||
params {
|
||||
|
@ -99,6 +104,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -108,6 +114,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Node *node; /*@ A node which will be used as a root node for the scene. */
|
||||
|
@ -121,6 +128,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -130,6 +138,7 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Scene
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Evas_3D_Node *node; /*@ A node which will be used as a camera node for the scene. */
|
||||
|
@ -139,8 +148,8 @@ class EO_Evas_3D_Scene (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "Eo.h"
|
||||
|
||||
#define MY_CLASS EO_EVAS_3D_TEXTURE_CLASS
|
||||
#define MY_CLASS EVAS_3D_TEXTURE_CLASS
|
||||
|
||||
static inline void
|
||||
_texture_proxy_set(Evas_3D_Texture *texture, Evas_Object *eo_src, Evas_Object_Protected_Data *src)
|
||||
|
@ -196,12 +196,12 @@ _texture_material_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *k
|
|||
void *data EINA_UNUSED, void *fdata)
|
||||
{
|
||||
Evas_3D_Material *m = *(Evas_3D_Material **)key;
|
||||
evas_3d_object_change(m, EVAS_3D_STATE_MATERIAL_TEXTURE, (Evas_3D_Object *)fdata);
|
||||
eo_do(m, evas_3d_object_change(EVAS_3D_STATE_MATERIAL_TEXTURE, (Evas_3D_Object *)fdata));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
_evas_3d_texture_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
|
||||
{
|
||||
|
||||
if (pd->materials)
|
||||
|
@ -209,7 +209,7 @@ _eo_evas_3d_texture_eo_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Dat
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_eo_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd)
|
||||
_evas_3d_texture_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd)
|
||||
{
|
||||
if (pd->source)
|
||||
{
|
||||
|
@ -301,21 +301,21 @@ evas_3d_texture_add(Evas *e)
|
|||
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
|
||||
_evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
|
||||
{
|
||||
eo_do_super(obj, MY_CLASS, eo_constructor());
|
||||
eo_do(obj, eo_evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_TEXTURE));
|
||||
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_TEXTURE));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
|
||||
_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
|
||||
{
|
||||
//evas_3d_object_unreference(&pd->base);
|
||||
_texture_fini(obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_data_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format,
|
||||
_evas_3d_texture_data_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format,
|
||||
Evas_3D_Pixel_Format pixel_format, int w, int h, const void *data)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
|
@ -328,11 +328,11 @@ _eo_evas_3d_texture_data_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas
|
|||
e->engine.func->texture_data_set(e->engine.data.output, pd->engine_data,
|
||||
color_format, pixel_format, w, h, data);
|
||||
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_TEXTURE_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_DATA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_file_set(Eo *obj, Evas_3D_Texture_Data *pd, const char *file, const char *key)
|
||||
_evas_3d_texture_file_set(Eo *obj, Evas_3D_Texture_Data *pd, const char *file, const char *key)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
|
@ -342,11 +342,11 @@ _eo_evas_3d_texture_file_set(Eo *obj, Evas_3D_Texture_Data *pd, const char *file
|
|||
pd->engine_data = e->engine.func->texture_new(e->engine.data.output);
|
||||
|
||||
e->engine.func->texture_file_set(e->engine.data.output, pd->engine_data, file, key);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_TEXTURE_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_DATA, NULL));
|
||||
}
|
||||
|
||||
EAPI void
|
||||
_eo_evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *source)
|
||||
_evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *source)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
|
@ -381,11 +381,11 @@ _eo_evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *
|
|||
}
|
||||
|
||||
_texture_proxy_set(obj, source, src);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_TEXTURE_DATA, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_DATA, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Eina_Bool visible)
|
||||
_evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Eina_Bool visible)
|
||||
{
|
||||
Evas_Object_Protected_Data *src_obj;
|
||||
|
||||
|
@ -407,7 +407,7 @@ _eo_evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data
|
|||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_eo_evas_3d_texture_source_visible_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd)
|
||||
_evas_3d_texture_source_visible_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd)
|
||||
{
|
||||
Evas_Object_Protected_Data *src_obj;
|
||||
|
||||
|
@ -419,7 +419,7 @@ _eo_evas_3d_texture_source_visible_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data
|
|||
}
|
||||
|
||||
EOLIAN static Evas_3D_Color_Format
|
||||
_eo_evas_3d_texture_color_format_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd)
|
||||
_evas_3d_texture_color_format_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd)
|
||||
{
|
||||
Evas_3D_Color_Format format;
|
||||
Eo *evas = NULL;
|
||||
|
@ -430,7 +430,7 @@ _eo_evas_3d_texture_color_format_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_size_get(Eo *obj, Evas_3D_Texture_Data *pd, int *w, int *h)
|
||||
_evas_3d_texture_size_get(Eo *obj, Evas_3D_Texture_Data *pd, int *w, int *h)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
|
@ -439,17 +439,17 @@ _eo_evas_3d_texture_size_get(Eo *obj, Evas_3D_Texture_Data *pd, int *w, int *h)
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_wrap_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode s, Evas_3D_Wrap_Mode t)
|
||||
_evas_3d_texture_wrap_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode s, Evas_3D_Wrap_Mode t)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CLASS);
|
||||
e->engine.func->texture_wrap_set(e->engine.data.output, pd->engine_data, s, t);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_TEXTURE_WRAP, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_WRAP, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_wrap_get(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode *s, Evas_3D_Wrap_Mode *t)
|
||||
_evas_3d_texture_wrap_get(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode *s, Evas_3D_Wrap_Mode *t)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
|
@ -458,17 +458,17 @@ _eo_evas_3d_texture_wrap_get(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mod
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_filter_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Texture_Filter min, Evas_3D_Texture_Filter mag)
|
||||
_evas_3d_texture_filter_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Texture_Filter min, Evas_3D_Texture_Filter mag)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CLASS);
|
||||
e->engine.func->texture_filter_set(e->engine.data.output, pd->engine_data, min, mag);
|
||||
evas_3d_object_change(obj, EVAS_3D_STATE_TEXTURE_FILTER, NULL);
|
||||
eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_FILTER, NULL));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_eo_evas_3d_texture_filter_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Texture_Filter *min, Evas_3D_Texture_Filter *mag)
|
||||
_evas_3d_texture_filter_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Texture_Filter *min, Evas_3D_Texture_Filter *mag)
|
||||
{
|
||||
Eo *evas = NULL;
|
||||
eo_do(obj, evas = evas_common_evas_get());
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
||||
class Evas_3D_Texture (Evas_3D_Object, Evas_Common_Interface)
|
||||
{
|
||||
legacy_prefix: evas_3d_texture;
|
||||
data : Evas_3D_Texture_Data;
|
||||
|
@ -17,6 +17,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
get {
|
||||
/*
|
||||
|
@ -26,6 +27,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
legacy null;
|
||||
}
|
||||
values {
|
||||
Eina_Bool visible; /*@ @c EINA_TRUE for visible, @c EINA_FALSE for invisible.*/
|
||||
|
@ -42,6 +44,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Color_Format color_format; /*@ Color format of the texture. */
|
||||
@in Evas_3D_Pixel_Format pixel_format; /*@ Pixel format of the data. */
|
||||
|
@ -60,6 +63,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
return void ;
|
||||
params {
|
||||
@in const char *file; /*@ Path to the image file. */
|
||||
|
@ -79,6 +83,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
return void ;
|
||||
params {
|
||||
@in Evas_Object *source; /*@ Source evas object to be used as the texture data. */
|
||||
|
@ -98,6 +103,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
return Evas_3D_Color_Format ;
|
||||
}
|
||||
|
@ -115,6 +121,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out int w; /*@ Pointer to receive the width of the texture size. */
|
||||
|
@ -132,6 +139,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
|
||||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Wrap_Mode s; /*@ Wrap mode for S-axis. */
|
||||
@in Evas_3D_Wrap_Mode t; /*@ Wrap mode for T-axis. */
|
||||
|
@ -147,6 +155,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
return void ;
|
||||
params {
|
||||
@out Evas_3D_Wrap_Mode s; /*@ Pointer to receive S-axis wrap mode. */
|
||||
|
@ -163,6 +172,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
params {
|
||||
@in Evas_3D_Texture_Filter min; /*@ Minification filter used when down-scaling. */
|
||||
@in Evas_3D_Texture_Filter mag; /*@ Magnification filter used when up-scaling. */
|
||||
|
@ -182,6 +192,7 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
@ingroup Evas_3D_Texture
|
||||
*/
|
||||
|
||||
legacy null;
|
||||
const;
|
||||
params {
|
||||
@out Evas_3D_Texture_Filter min; /*@ Pointer to receive the minification filter. */
|
||||
|
@ -193,8 +204,8 @@ class EO_Evas_3D_Texture (EO_Evas_3D_Object, Evas_Common_Interface)
|
|||
implements {
|
||||
Eo_Base::constructor;
|
||||
Eo_Base::destructor;
|
||||
EO_Evas_3D_Object::update_notify;
|
||||
EO_Evas_3D_Object::change_notify;
|
||||
Evas_3D_Object::update_notify;
|
||||
Evas_3D_Object::change_notify;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2420,7 +2420,7 @@ _3d_set(Evas_Object *eo_obj, Evas_3D_Scene *scene)
|
|||
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
|
||||
Evas_Image_Data *o = eo_data_scope_get(eo_obj, MY_CLASS);
|
||||
Evas_3D_Scene_Data *pd_scene = eo_data_scope_get(scene,
|
||||
EO_EVAS_3D_SCENE_CLASS);
|
||||
EVAS_3D_SCENE_CLASS);
|
||||
EINA_COW_WRITE_BEGIN(evas_object_3d_cow, obj->data_3d, Evas_Object_3D_Data,
|
||||
data)
|
||||
{
|
||||
|
@ -2449,7 +2449,7 @@ _3d_unset(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj,
|
|||
if (!o->cur->scene) return;
|
||||
|
||||
Evas_3D_Scene_Data *pd_scene =
|
||||
eo_data_scope_get(o->cur->scene, EO_EVAS_3D_SCENE_CLASS);
|
||||
eo_data_scope_get(o->cur->scene, EVAS_3D_SCENE_CLASS);
|
||||
|
||||
EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
|
||||
{
|
||||
|
@ -2494,7 +2494,7 @@ _3d_render(Evas *eo_e, Evas_Object *eo_obj EINA_UNUSED,
|
|||
Evas_3D_Scene_Public_Data scene_data;
|
||||
Evas_3D_Scene_Data *pd_scene = NULL;
|
||||
|
||||
pd_scene = eo_data_scope_get(scene, EO_EVAS_3D_SCENE_CLASS);
|
||||
pd_scene = eo_data_scope_get(scene, EVAS_3D_SCENE_CLASS);
|
||||
|
||||
if((pd_scene->w == 0) || (pd_scene->h == 0)) return;
|
||||
|
||||
|
@ -2544,7 +2544,7 @@ _3d_render(Evas *eo_e, Evas_Object *eo_obj EINA_UNUSED,
|
|||
scene_data.camera_node = pd_scene->camera_node;
|
||||
|
||||
/* Phase 1 - Update scene graph tree. */
|
||||
evas_3d_object_update(scene);
|
||||
eo_do(scene, evas_3d_object_update());
|
||||
|
||||
/* Phase 2 - Do frustum culling and get visible model nodes. */
|
||||
evas_3d_node_tree_traverse(pd_scene->root_node,
|
||||
|
@ -3379,8 +3379,10 @@ evas_object_image_render_pre(Evas_Object *eo_obj,
|
|||
else if (o->cur->scene)
|
||||
{
|
||||
Evas_3D_Scene *scene = o->cur->scene;
|
||||
//Evas_3D_Scene_Data *pd_scene = eo_data_scope_get(scene, EO_EVAS_3D_SCENE_CLASS);
|
||||
if (evas_3d_object_dirty_get(scene, EVAS_3D_STATE_ANY))
|
||||
Eina_Bool dirty;
|
||||
|
||||
eo_do(scene, dirty = evas_3d_object_dirty_get(EVAS_3D_STATE_ANY));
|
||||
if (dirty)
|
||||
{
|
||||
evas_object_render_pre_prev_cur_add(&e->clip_changes, eo_obj, obj);
|
||||
goto done;
|
||||
|
|
|
@ -246,7 +246,7 @@ evas_object_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
|||
}
|
||||
EINA_LIST_FOREACH(obj->proxy->proxy_textures, l, texture)
|
||||
{
|
||||
evas_3d_object_change(texture, EVAS_3D_STATE_TEXTURE_DATA, NULL);
|
||||
eo_do(texture, evas_3d_object_change(EVAS_3D_STATE_TEXTURE_DATA, NULL));
|
||||
}
|
||||
if (obj->smart.parent)
|
||||
{
|
||||
|
@ -679,7 +679,7 @@ _evas_object_eo_base_destructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
|
|||
}
|
||||
|
||||
while (obj->proxy->proxy_textures)
|
||||
evas_3d_texture_source_set(obj->proxy->proxy_textures->data, NULL);
|
||||
eo_do(obj->proxy->proxy_textures->data, evas_3d_texture_source_set(NULL));
|
||||
|
||||
if (obj->cur->clipper) evas_object_clip_unset(eo_obj);
|
||||
evas_object_map_set(eo_obj, NULL);
|
||||
|
|
|
@ -1487,18 +1487,6 @@ void _canvas_objects_in_rectangle_get(Eo *obj, void *_pd, va_list *list);
|
|||
void _canvas_smart_objects_calculate(Eo *e, void *_pd, va_list *list);
|
||||
void _canvas_smart_objects_calculate_count_get(Eo *e, void *_pd, va_list *list);
|
||||
|
||||
/* Object generic functions. 3D function*/
|
||||
void evas_3d_object_init(Evas_3D_Object *obj, Evas *e, Evas_3D_Object_Type type, const Evas_3D_Object_Func *func);
|
||||
Evas *evas_3d_object_evas_get(const Evas_3D_Object *obj);
|
||||
Evas_3D_Object_Type evas_3d_object_type_get(const Evas_3D_Object *obj);
|
||||
void evas_3d_object_reference(Evas_3D_Object *obj);
|
||||
void evas_3d_object_unreference(Evas_3D_Object *obj);
|
||||
int evas_3d_object_reference_count_get(const Evas_3D_Object *obj);
|
||||
void evas_3d_object_change(Evas_3D_Object *obj, Evas_3D_State state, Evas_3D_Object *ref);
|
||||
Eina_Bool evas_3d_object_dirty_get(const Evas_3D_Object *obj, Evas_3D_State state);
|
||||
void evas_3d_object_update(Evas_3D_Object *obj);
|
||||
void evas_3d_object_update_done(Evas_3D_Object *obj);
|
||||
|
||||
/* Node functions. */
|
||||
void evas_3d_node_traverse(Evas_3D_Node *from, Evas_3D_Node *to, Evas_3D_Node_Traverse_Type type, Eina_Bool skip, Evas_3D_Node_Func func, void *data);
|
||||
void evas_3d_node_tree_traverse(Evas_3D_Node *root, Evas_3D_Tree_Traverse_Type type, Eina_Bool skip, Evas_3D_Node_Func func, void *data);
|
||||
|
|
|
@ -597,7 +597,7 @@ e3d_drawable_format_get(E3D_Drawable *drawable)
|
|||
static inline GLuint
|
||||
_texture_id_get(Evas_3D_Texture *texture)
|
||||
{
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(texture, EO_EVAS_3D_TEXTURE_CLASS);
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(texture, EVAS_3D_TEXTURE_CLASS);
|
||||
E3D_Texture *tex = (E3D_Texture *)pd->engine_data;
|
||||
|
||||
return tex->tex;
|
||||
|
@ -609,7 +609,7 @@ _mesh_frame_find(Evas_3D_Mesh *mesh, int frame,
|
|||
{
|
||||
Eina_List *left, *right;
|
||||
Evas_3D_Mesh_Frame *f0, *f1;
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EO_EVAS_3D_MESH_CLASS);
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EVAS_3D_MESH_CLASS);
|
||||
|
||||
left = pdmesh->frames;
|
||||
right = eina_list_next(left);
|
||||
|
@ -839,7 +839,7 @@ _material_color_build(E3D_Draw_Data *data, int frame,
|
|||
|
||||
if (f0->material)
|
||||
{
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f0->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f0->material, EVAS_3D_MATERIAL_CLASS);
|
||||
if (pdm->attribs[attrib].enable)
|
||||
break;
|
||||
}
|
||||
|
@ -854,7 +854,7 @@ _material_color_build(E3D_Draw_Data *data, int frame,
|
|||
|
||||
if (f1->material)
|
||||
{
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f1->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f1->material, EVAS_3D_MATERIAL_CLASS);
|
||||
if (pdm->attribs[attrib].enable)
|
||||
break;
|
||||
}
|
||||
|
@ -883,7 +883,7 @@ _material_color_build(E3D_Draw_Data *data, int frame,
|
|||
f1 = NULL;
|
||||
}
|
||||
}
|
||||
Evas_3D_Material_Data *pdmf0 = eo_data_scope_get(f0->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdmf0 = eo_data_scope_get(f0->material, EVAS_3D_MATERIAL_CLASS);
|
||||
if (f1 == NULL)
|
||||
{
|
||||
data->materials[attrib].color = pdmf0->attribs[attrib].color;
|
||||
|
@ -894,7 +894,7 @@ _material_color_build(E3D_Draw_Data *data, int frame,
|
|||
else
|
||||
{
|
||||
Evas_Real weight;
|
||||
Evas_3D_Material_Data *pdmf1 = eo_data_scope_get(f1->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdmf1 = eo_data_scope_get(f1->material, EVAS_3D_MATERIAL_CLASS);
|
||||
|
||||
weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
|
||||
evas_color_blend(&data->materials[attrib].color,
|
||||
|
@ -926,7 +926,7 @@ _material_texture_build(E3D_Draw_Data *data, int frame,
|
|||
|
||||
if (f0->material)
|
||||
{
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f0->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f0->material, EVAS_3D_MATERIAL_CLASS);
|
||||
if (pdm->attribs[attrib].enable && pdm->attribs[attrib].texture != NULL)
|
||||
break;
|
||||
}
|
||||
|
@ -941,7 +941,7 @@ _material_texture_build(E3D_Draw_Data *data, int frame,
|
|||
|
||||
if (f1->material)
|
||||
{
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f1->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdm = eo_data_scope_get(f1->material, EVAS_3D_MATERIAL_CLASS);
|
||||
if (pdm->attribs[attrib].enable && pdm->attribs[attrib].texture != NULL)
|
||||
break;
|
||||
}
|
||||
|
@ -971,18 +971,18 @@ _material_texture_build(E3D_Draw_Data *data, int frame,
|
|||
}
|
||||
}
|
||||
|
||||
Evas_3D_Material_Data *pdmf0 = eo_data_scope_get(f0->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdmf0 = eo_data_scope_get(f0->material, EVAS_3D_MATERIAL_CLASS);
|
||||
data->materials[attrib].sampler0 = data->texture_count++;
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(pdmf0->attribs[attrib].texture, EO_EVAS_3D_TEXTURE_CLASS);
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(pdmf0->attribs[attrib].texture, EVAS_3D_TEXTURE_CLASS);
|
||||
data->materials[attrib].tex0 = (E3D_Texture *)pd->engine_data;
|
||||
|
||||
if (f1)
|
||||
{
|
||||
Evas_3D_Material_Data *pdmf1 = eo_data_scope_get(f1->material, EO_EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_3D_Material_Data *pdmf1 = eo_data_scope_get(f1->material, EVAS_3D_MATERIAL_CLASS);
|
||||
Evas_Real weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
|
||||
|
||||
data->materials[attrib].sampler1 = data->texture_count++;
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(pdmf1->attribs[attrib].texture, EO_EVAS_3D_TEXTURE_CLASS);
|
||||
Evas_3D_Texture_Data *pd = eo_data_scope_get(pdmf1->attribs[attrib].texture, EVAS_3D_TEXTURE_CLASS);
|
||||
data->materials[attrib].tex1 = (E3D_Texture *)pd->engine_data;
|
||||
|
||||
data->materials[attrib].texture_weight = weight;
|
||||
|
@ -1011,9 +1011,9 @@ _light_build(E3D_Draw_Data *data,
|
|||
const Evas_3D_Node *light,
|
||||
const Evas_Mat4 *matrix_eye)
|
||||
{
|
||||
Evas_3D_Node_Data *pd_light_node = eo_data_scope_get(light, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pd_light_node = eo_data_scope_get(light, EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Light *l = pd_light_node->data.light.light;
|
||||
Evas_3D_Light_Data *pdl = eo_data_scope_get(l, EO_EVAS_3D_LIGHT_CLASS);
|
||||
Evas_3D_Light_Data *pdl = eo_data_scope_get(l, EVAS_3D_LIGHT_CLASS);
|
||||
Evas_Vec3 pos, dir;
|
||||
|
||||
if (pdl == NULL)
|
||||
|
@ -1083,7 +1083,7 @@ _mesh_draw_data_build(E3D_Draw_Data *data,
|
|||
const Evas_3D_Node *light)
|
||||
{
|
||||
Eina_List *l, *r;
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EO_EVAS_3D_MESH_CLASS);
|
||||
Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(mesh, EVAS_3D_MESH_CLASS);
|
||||
|
||||
if (pdmesh->frames == NULL)
|
||||
return EINA_FALSE;
|
||||
|
@ -1216,10 +1216,10 @@ e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3
|
|||
e3d_renderer_clear(renderer, &data->bg_color);
|
||||
|
||||
/* Get eye matrix. */
|
||||
Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(data->camera_node, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(data->camera_node, EVAS_3D_NODE_CLASS);
|
||||
matrix_eye = &pd_camera_node->data.camera.matrix_world_to_eye;
|
||||
|
||||
Evas_3D_Camera_Data *pd = eo_data_scope_get(pd_camera_node->data.camera.camera, EO_EVAS_3D_CAMERA_CLASS);
|
||||
Evas_3D_Camera_Data *pd = eo_data_scope_get(pd_camera_node->data.camera.camera, EVAS_3D_CAMERA_CLASS);
|
||||
|
||||
EINA_LIST_FOREACH(data->mesh_nodes, l, n)
|
||||
{
|
||||
|
@ -1227,7 +1227,7 @@ e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3
|
|||
Evas_Mat4 matrix_mvp;
|
||||
Eina_Iterator *it;
|
||||
void *ptr;
|
||||
Evas_3D_Node_Data *pd_mesh_node = eo_data_scope_get(n, EO_EVAS_3D_NODE_CLASS);
|
||||
Evas_3D_Node_Data *pd_mesh_node = eo_data_scope_get(n, EVAS_3D_NODE_CLASS);
|
||||
evas_mat4_multiply(&matrix_mv, matrix_eye, &pd_mesh_node->data.mesh.matrix_local_to_world);
|
||||
evas_mat4_multiply(&matrix_mvp, matrix_eye, &matrix_mv);
|
||||
evas_mat4_multiply(&matrix_mvp, &pd->projection,
|
||||
|
|
Loading…
Reference in New Issue