forked from enlightenment/efl
GLView: Add support for client-side rotation
See recent changes in Evas GL for reference. This also introduces the EO function rotation_get() @feature
This commit is contained in:
parent
d0241ad4c9
commit
37cb18740c
|
@ -355,6 +355,12 @@ _elm_glview_mode_set(Eo *obj, Elm_Glview_Data *sd, Elm_GLView_Mode mode)
|
|||
if (mode & ELM_GLVIEW_CLIENT_SIDE_ROTATION)
|
||||
sd->config->options_bits |= EVAS_GL_OPTIONS_CLIENT_SIDE_ROTATION;
|
||||
|
||||
// Check for Alpha Channel and enable it
|
||||
if (mode & ELM_GLVIEW_ALPHA)
|
||||
evas_object_image_alpha_set(wd->resize_obj, EINA_TRUE);
|
||||
else
|
||||
evas_object_image_alpha_set(wd->resize_obj, EINA_FALSE);
|
||||
|
||||
sd->mode = mode;
|
||||
|
||||
_glview_update_surface(obj);
|
||||
|
@ -466,6 +472,12 @@ _elm_glview_evas_gl_get(Eo *obj EINA_UNUSED, Elm_Glview_Data *sd)
|
|||
return sd->evasgl;
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_elm_glview_rotation_get(Eo *obj EINA_UNUSED, Elm_Glview_Data *sd)
|
||||
{
|
||||
return evas_gl_rotation_get(sd->evasgl);
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_glview_class_constructor(Eo_Class *klass)
|
||||
{
|
||||
|
|
|
@ -176,9 +176,31 @@ class Elm_Glview (Elm_Widget)
|
|||
@return The Evas_GL used by this GLView.
|
||||
|
||||
@ingroup GLView */
|
||||
legacy: null;
|
||||
return: Evas_GL *;
|
||||
}
|
||||
}
|
||||
rotation {
|
||||
get {
|
||||
/*@
|
||||
Get the current GL view's rotation when using direct rendering
|
||||
|
||||
@return A window rotation in degrees (0, 90, 180 or 270)
|
||||
|
||||
@note This rotation can be different from the device orientation. This
|
||||
rotation value must be used in case of direct rendering and should be
|
||||
taken into account by the application when setting the internal rotation
|
||||
matrix for the view.
|
||||
|
||||
@see ELM_GLVIEW_CLIENT_SIDE_ROTATION
|
||||
|
||||
@since 1.12
|
||||
|
||||
@ingroup GLView */
|
||||
legacy: null;
|
||||
return: int;
|
||||
}
|
||||
}
|
||||
}
|
||||
implements {
|
||||
class.constructor;
|
||||
|
|
|
@ -1,8 +1,21 @@
|
|||
typedef void (*Elm_GLView_Func_Cb)(Evas_Object *obj);
|
||||
|
||||
/**
|
||||
* Defines mode of GLView
|
||||
* @brief Selects the target surface properties
|
||||
*
|
||||
* An OR combination of @c Elm_GLView_Mode values should be passed to
|
||||
* @ref elm_glview_mode_set when setting up a GL widget. These flags will
|
||||
* specify the properties of the rendering target surface; in particular,
|
||||
* the mode can request the surface to support alpha, depth and stencil buffers.
|
||||
*
|
||||
* @note @c ELM_GLVIEW_CLIENT_SIDE_ROTATION is a special value that indicates
|
||||
* to EFL that the application will handle the view rotation when the
|
||||
* device is rotated. This is needed only when the application requests
|
||||
* direct rendering. Please refer to @ref Evas_GL
|
||||
* for more information about direct rendering.
|
||||
*
|
||||
* @see elm_glview_mode_set
|
||||
* @see @ref elm_opengl_page
|
||||
* @ingroup GLView
|
||||
*/
|
||||
typedef enum _Elm_GLView_Mode
|
||||
|
|
Loading…
Reference in New Issue