On Sun, 19 Feb 2012 08:33:07 +0000 (UTC) cpmicha...@comcast.net said: actually at this stage - with xcb being a first class citizen, any changes to ecore-x should work on both xlib and xcb - i know its extra work, but thats how it goes with supporting multiple back-ends :) at least its only 2. :)
> I suppose the xcb is left to me to fix when I run into this... > > dh > > > ----- Original Message ----- > From: "Enlightenment SVN" <no-re...@enlightenment.org> > To: enlightenment-...@lists.sourceforge.net > Sent: Thursday, February 16, 2012 2:26:30 PM > Subject: E SVN: leif IN trunk/ecore: . src/lib/ecore_x src/lib/ecore_x/xlib > > Log: > Add mode add/del functions to ecore_x_randr > > Author: leif > Date: 2012-02-16 11:26:30 -0800 (Thu, 16 Feb 2012) > New Revision: 68031 > Trac: http://trac.enlightenment.org/e/changeset/68031 > > Modified: > trunk/ecore/ChangeLog trunk/ecore/src/lib/ecore_x/Ecore_X.h > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > > Modified: trunk/ecore/ChangeLog > =================================================================== > --- trunk/ecore/ChangeLog 2012-02-16 18:38:37 UTC (rev 68030) > +++ trunk/ecore/ChangeLog 2012-02-16 19:26:30 UTC (rev 68031) > @@ -494,3 +494,9 @@ > > * Add ecore_imf APIs to set return key type, disable return key. > > +2012-02-16 Leif Middelschulte (T_UNIX) > + > + * Add ecore_x_randr_mode_add to add a mode to a display > + * Add ecore_x_randr_mode_del to remove a mode from the display > + * Add ecore_x_randr_output_mode_add to add a mode to an output > + * Add ecore_x_randr_output_mode_del to remove a mode from an output > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X.h > =================================================================== > --- trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-16 18:38:37 UTC (rev 68030) > +++ trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-16 19:26:30 UTC (rev 68031) > @@ -2749,6 +2749,11 @@ > EAPI Ecore_X_Randr_Mode_Info ** > ecore_x_randr_modes_info_get(Ecore_X_Window root, > int *num); > +EAPI Ecore_X_Randr_Mode > +ecore_x_randr_mode_info_add(Ecore_X_Window root, > + Ecore_X_Randr_Mode_Info *mode_info); > +EAPI void > +ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode); > EAPI Ecore_X_Randr_Mode_Info * > ecore_x_randr_mode_info_get(Ecore_X_Window root, > Ecore_X_Randr_Mode mode); > @@ -2840,6 +2845,12 @@ > Ecore_X_Randr_Crtc crtc_r2, > Ecore_X_Randr_Output_Policy policy, > Ecore_X_Randr_Relative_Alignment alignment); > +EAPI Eina_Bool > +ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, > + Ecore_X_Randr_Mode mode); > +EAPI void > +ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, > + Ecore_X_Randr_Mode mode); > EAPI Ecore_X_Randr_Mode * > ecore_x_randr_output_modes_get(Ecore_X_Window root, > Ecore_X_Randr_Output output, > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > =================================================================== > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c 2012-02-16 18:38:37 > UTC (rev 68030) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c > 2012-02-16 19:26:30 UTC (rev 68031) @@ -380,6 +380,48 @@ > } > > /* > + * @brief add a mode to a display > + * @param root window to which's screen's ressources are added > + * @param mode_info > + * @return Ecore_X_Randr_Mode of the added mode. Ecore_X_Randr_None if mode > + * adding failed. > + * @since 1.2.0 > + */ > +EAPI Ecore_X_Randr_Mode > +ecore_x_randr_mode_info_add(Ecore_X_Window root, > + Ecore_X_Randr_Mode_Info *mode_info) > +{ > +#ifdef ECORE_XRANDR > + RANDR_CHECK_1_2_RET(EINA_FALSE); > + Ecore_X_Randr_Mode mode = Ecore_X_Randr_None; > + > + if (_ecore_x_randr_root_validate(root) && mode_info) > + mode = XRRCreateMode(_ecore_x_disp, root, (XRRModeInfo*)mode_info); > + > + return mode; > +#else > + return Ecore_X_Randr_None; > +#endif > +} > + > +/* > + * @brief delete a mode from the display > + * @param mode_info > + * @since 1.2.0 > + */ > +EAPI void > +ecore_x_randr_mode_del(Ecore_X_Randr_Mode mode) > +{ > +#ifdef ECORE_XRANDR > + RANDR_CHECK_1_2_RET(); > + > + XRRDestroyMode(_ecore_x_disp, mode); > +#else > + return; > +#endif > +} > + > +/* > * @brief get detailed information for a given mode id > * @param root window which's screen's ressources are queried > * @param mode the XID which identifies the mode of interest > @@ -1364,6 +1406,54 @@ > #endif > } > > +/* > + * @brief add given mode to given output > + * @param output the output the mode is added to > + * @param mode the mode added to the output > + * @return EINA_FALSE if output or mode equal Ecore_X_Randr_None, else > EINA_TRUE > + * Additionally, if xcb backend is used, the success of the addition is > reported > + * back directly. > + * @since 1.2.0 > + */ > +EAPI Eina_Bool > +ecore_x_randr_output_mode_add(Ecore_X_Randr_Output output, > + Ecore_X_Randr_Mode mode) > +{ > +#ifdef ECORE_XRANDR > + RANDR_CHECK_1_2_RET(EINA_FALSE); > + > + if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None)) > + return EINA_FALSE; > + > + XRRAddOutputMode(_ecore_x_disp, output, mode); > + return EINA_TRUE; > +#else > + return EINA_FALSE; > +#endif > +} > + > +/* > + * @brief delete given mode from given output > + * @param output the output the mode is removed from > + * @param mode the mode removed from the output > + * @since 1.2.0 > + */ > +EAPI void > +ecore_x_randr_output_mode_del(Ecore_X_Randr_Output output, > + Ecore_X_Randr_Mode mode) > +{ > +#ifdef ECORE_XRANDR > + RANDR_CHECK_1_2_RET(); > + > + if ((output == Ecore_X_Randr_None) || (mode == Ecore_X_Randr_None)) > + return; > + > + XRRDeleteOutputMode(_ecore_x_disp, output, mode); > +#else > + return; > +#endif > +} > + > EAPI Ecore_X_Randr_Mode * > ecore_x_randr_output_modes_get(Ecore_X_Window root, > Ecore_X_Randr_Output output, > > > ------------------------------------------------------------------------------ > > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel