Add wxGraphicsRenderer::GetName() and GetVersion() methods.
Allow the code to determine which underlying technology is used for implementing wxGraphics API. This is needed by the unit tests to account for the known differences between platforms and may be useful in other cases. Closes #16154. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -870,6 +870,10 @@ public:
|
|||||||
// create a subimage from a native image representation
|
// create a subimage from a native image representation
|
||||||
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0;
|
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0;
|
||||||
|
|
||||||
|
virtual wxString GetName() const = 0;
|
||||||
|
virtual void
|
||||||
|
GetVersion(int* major, int* minor = NULL, int* micro = NULL) const = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxDECLARE_NO_COPY_CLASS(wxGraphicsRenderer);
|
wxDECLARE_NO_COPY_CLASS(wxGraphicsRenderer);
|
||||||
DECLARE_ABSTRACT_CLASS(wxGraphicsRenderer)
|
DECLARE_ABSTRACT_CLASS(wxGraphicsRenderer)
|
||||||
|
@@ -1211,6 +1211,34 @@ public:
|
|||||||
wxDouble x, wxDouble y,
|
wxDouble x, wxDouble y,
|
||||||
wxDouble w, wxDouble h) = 0;
|
wxDouble w, wxDouble h) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the name of the technology used by the renderer.
|
||||||
|
|
||||||
|
Currently this function returns "gdiplus" for Windows GDI+ implementation,
|
||||||
|
"cairo" for Cairo implementation and "cg" for OS X CoreGraphics
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
Note: the string returned by this method is not user-readable and is
|
||||||
|
expected to be used internally by the program only.
|
||||||
|
|
||||||
|
@since 3.1.0
|
||||||
|
*/
|
||||||
|
virtual wxString GetName() const = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns the version major, minor and micro/build of the technology used
|
||||||
|
by the renderer.
|
||||||
|
|
||||||
|
Currently this function returns the OS major and minor versions in
|
||||||
|
the parameters with the matching names and sets @a micro to 0 for
|
||||||
|
the GDI+ and CoreGraphics engines which are considered to be parts of
|
||||||
|
their respective OS.
|
||||||
|
|
||||||
|
For Cairo, this is the major,minor,micro version of the Cairo library
|
||||||
|
which is returned.
|
||||||
|
*/
|
||||||
|
virtual void GetVersion(int* major, int* minor = NULL, int* micro=NULL) const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the default renderer on this platform. On OS X this is the Core
|
Returns the default renderer on this platform. On OS X this is the Core
|
||||||
Graphics (a.k.a. Quartz 2D) renderer, on MSW the GDIPlus renderer, and
|
Graphics (a.k.a. Quartz 2D) renderer, on MSW the GDIPlus renderer, and
|
||||||
|
@@ -2398,6 +2398,9 @@ public :
|
|||||||
// create a subimage from a native image representation
|
// create a subimage from a native image representation
|
||||||
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
||||||
|
|
||||||
|
virtual wxString GetName() const wxOVERRIDE;
|
||||||
|
virtual void GetVersion(int *major, int *minor, int *micro) const wxOVERRIDE;
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCairoRenderer)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCairoRenderer)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -2651,6 +2654,20 @@ wxCairoRenderer::CreateSubBitmap(const wxGraphicsBitmap& WXUNUSED(bitmap),
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxCairoRenderer::GetName() const
|
||||||
|
{
|
||||||
|
return "cairo";
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxCairoRenderer::GetVersion(int *major, int *minor, int *micro) const
|
||||||
|
{
|
||||||
|
int dummy;
|
||||||
|
sscanf(cairo_version_string(), "%d.%d.%d",
|
||||||
|
major ? major : &dummy,
|
||||||
|
minor ? minor : &dummy,
|
||||||
|
micro ? micro : &dummy);
|
||||||
|
}
|
||||||
|
|
||||||
wxGraphicsRenderer* wxGraphicsRenderer::GetCairoRenderer()
|
wxGraphicsRenderer* wxGraphicsRenderer::GetCairoRenderer()
|
||||||
{
|
{
|
||||||
return &gs_cairoGraphicsRenderer;
|
return &gs_cairoGraphicsRenderer;
|
||||||
|
@@ -587,6 +587,9 @@ public :
|
|||||||
// create a subimage from a native image representation
|
// create a subimage from a native image representation
|
||||||
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h );
|
||||||
|
|
||||||
|
virtual wxString GetName() const wxOVERRIDE;
|
||||||
|
virtual void GetVersion(int *major, int *minor, int *micro) const wxOVERRIDE;
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
bool EnsureIsLoaded();
|
bool EnsureIsLoaded();
|
||||||
void Load();
|
void Load();
|
||||||
@@ -2295,6 +2298,21 @@ wxGraphicsBitmap wxGDIPlusRenderer::CreateSubBitmap( const wxGraphicsBitmap &bit
|
|||||||
return wxNullGraphicsBitmap;
|
return wxNullGraphicsBitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxGDIPlusRenderer::GetName() const
|
||||||
|
{
|
||||||
|
return "gdiplus";
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGDIPlusRenderer::GetVersion(int *major, int *minor, int *micro) const
|
||||||
|
{
|
||||||
|
if ( major )
|
||||||
|
*major = wxPlatformInfo::Get().GetOSMajorVersion();
|
||||||
|
if ( minor )
|
||||||
|
*minor = wxPlatformInfo::Get().GetOSMinorVersion();
|
||||||
|
if ( micro )
|
||||||
|
*micro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Shutdown GDI+ at app exit, before possible dll unload
|
// Shutdown GDI+ at app exit, before possible dll unload
|
||||||
class wxGDIPlusRendererModule : public wxModule
|
class wxGDIPlusRendererModule : public wxModule
|
||||||
{
|
{
|
||||||
|
@@ -2654,6 +2654,10 @@ public :
|
|||||||
|
|
||||||
// create a native bitmap representation
|
// create a native bitmap representation
|
||||||
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) wxOVERRIDE ;
|
virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) wxOVERRIDE ;
|
||||||
|
|
||||||
|
virtual wxString GetName() const wxOVERRIDE;
|
||||||
|
virtual void GetVersion(int *major, int *minor, int *micro) const wxOVERRIDE;
|
||||||
|
|
||||||
private :
|
private :
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacCoreGraphicsRenderer)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacCoreGraphicsRenderer)
|
||||||
} ;
|
} ;
|
||||||
@@ -2875,6 +2879,21 @@ wxGraphicsBitmap wxMacCoreGraphicsRenderer::CreateSubBitmap( const wxGraphicsBit
|
|||||||
return wxNullGraphicsBitmap;
|
return wxNullGraphicsBitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxMacCoreGraphicsRenderer::GetName() const
|
||||||
|
{
|
||||||
|
return "cg";
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxMacCoreGraphicsRenderer::GetVersion(int *major, int *minor, int *micro) const
|
||||||
|
{
|
||||||
|
if ( major )
|
||||||
|
*major = wxPlatformInfo::Get().GetOSMajorVersion();
|
||||||
|
if ( minor )
|
||||||
|
*minor = wxPlatformInfo::Get().GetOSMinorVersion();
|
||||||
|
if ( micro )
|
||||||
|
*micro = 0;
|
||||||
|
}
|
||||||
|
|
||||||
wxGraphicsBrush
|
wxGraphicsBrush
|
||||||
wxMacCoreGraphicsRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
wxMacCoreGraphicsRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1,
|
||||||
wxDouble x2, wxDouble y2,
|
wxDouble x2, wxDouble y2,
|
||||||
|
Reference in New Issue
Block a user