It has become unnecessary after the previous commit, as now the generic
GetContentScaleFactor() can be used instead of it on all platforms, so
revert the changes of f6cc8ff52c
(Add GetOpenGLScaleFactor() to abstract
OpenGL coordinates scaling, 2020-07-10).
See https://github.com/wxWidgets/wxWidgets/pull/1944
See #17391.
130 lines
4.3 KiB
C++
130 lines
4.3 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/glcanvas.h
|
|
// Purpose: wxGLCanvas, for using OpenGL/Mesa with wxWidgets and GTK
|
|
// Author: Robert Roebling
|
|
// Modified by:
|
|
// Created: 17/8/98
|
|
// Copyright: (c) Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GLCANVAS_H_
|
|
#define _WX_GLCANVAS_H_
|
|
|
|
#include "wx/unix/glx11.h"
|
|
|
|
//---------------------------------------------------------------------------
|
|
// wxGLCanvas
|
|
//---------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasX11
|
|
{
|
|
typedef wxGLCanvasX11 BaseType;
|
|
public:
|
|
wxGLCanvas(wxWindow *parent,
|
|
const wxGLAttributes& dispAttrs,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const wxPalette& palette = wxNullPalette);
|
|
|
|
explicit // avoid implicitly converting a wxWindow* to wxGLCanvas
|
|
wxGLCanvas(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const int *attribList = NULL,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const wxPalette& palette = wxNullPalette);
|
|
|
|
bool Create(wxWindow *parent,
|
|
const wxGLAttributes& dispAttrs,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const wxPalette& palette = wxNullPalette);
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const int *attribList = NULL,
|
|
const wxPalette& palette = wxNullPalette);
|
|
|
|
virtual bool SetBackgroundStyle(wxBackgroundStyle style) wxOVERRIDE;
|
|
|
|
// implement wxGLCanvasX11 methods
|
|
// --------------------------------
|
|
|
|
virtual unsigned long GetXWindow() const wxOVERRIDE;
|
|
|
|
|
|
// deprecated methods
|
|
// ------------------
|
|
|
|
#if WXWIN_COMPATIBILITY_2_8
|
|
wxDEPRECATED(
|
|
wxGLCanvas(wxWindow *parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const int *attribList = NULL,
|
|
const wxPalette& palette = wxNullPalette)
|
|
);
|
|
|
|
wxDEPRECATED(
|
|
wxGLCanvas(wxWindow *parent,
|
|
const wxGLContext *shared,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const int *attribList = NULL,
|
|
const wxPalette& palette = wxNullPalette)
|
|
);
|
|
|
|
wxDEPRECATED(
|
|
wxGLCanvas(wxWindow *parent,
|
|
const wxGLCanvas *shared,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxGLCanvasName,
|
|
const int *attribList = NULL,
|
|
const wxPalette& palette = wxNullPalette)
|
|
);
|
|
|
|
// called from "realized" callback to create the implicit context if needed
|
|
void GTKInitImplicitContext();
|
|
#endif // WXWIN_COMPATIBILITY_2_8
|
|
|
|
// implementation from now on
|
|
virtual void GTKHandleRealized() wxOVERRIDE;
|
|
|
|
#ifdef __WXGTK3__
|
|
wxSize m_size;
|
|
#endif
|
|
#if WXWIN_COMPATIBILITY_2_8
|
|
wxGLContext *m_sharedContext;
|
|
wxGLCanvas *m_sharedContextOf;
|
|
const bool m_createImplicitContext;
|
|
#endif // WXWIN_COMPATIBILITY_2_8
|
|
|
|
private:
|
|
wxDECLARE_CLASS(wxGLCanvas);
|
|
};
|
|
|
|
#endif // _WX_GLCANVAS_H_
|
|
|