BGE: Adding a render.setFullScreen() and a render.getFullScreen() to allow fulscreening games via Python.

This commit is contained in:
Mitchell Stokes 2013-04-13 21:09:02 +00:00
parent 81cfbaacb0
commit dbf4328f3f
7 changed files with 68 additions and 0 deletions

@ -86,6 +86,17 @@ Functions
:type width: integer
:type height: integer
.. function:: setFullScreen(enable)
Set whether or not the window should be fullscreen.
:type enable: bool
.. function:: getFullScreen()
Returns whether or not the window is fullscreen.
:rtype: bool
.. function:: makeScreenshot(filename)

@ -70,6 +70,17 @@ void KX_BlenderCanvas::ResizeWindow(int width, int height)
// Not implemented for the embedded player
}
void KX_BlenderCanvas::SetFullScreen(bool enable)
{
// Not implemented for the embedded player
}
bool KX_BlenderCanvas::GetFullScreen()
{
// Not implemented for the embedded player
return false;
}
void KX_BlenderCanvas::BeginFrame()
{
glEnable(GL_DEPTH_TEST);

@ -85,6 +85,14 @@ public:
int height
);
void
SetFullScreen(
bool enable
);
bool
GetFullScreen();
void
BeginFrame(
);

@ -128,6 +128,19 @@ void GPG_Canvas::ResizeWindow(int width, int height)
Resize(width, height);
}
void GPG_Canvas::SetFullScreen(bool enable)
{
if (enable)
m_window->setState(GHOST_kWindowStateFullScreen);
else
m_window->setState(GHOST_kWindowStateNormal);
}
bool GPG_Canvas::GetFullScreen()
{
return m_window->getState() == GHOST_kWindowStateFullScreen;
}
float GPG_Canvas::GetMouseNormalizedX(int x)
{
return float(x)/this->GetWidth();

@ -61,6 +61,8 @@ public:
virtual float GetMouseNormalizedY(int y);
virtual void ResizeWindow(int width, int height);
virtual void SetFullScreen(bool enable);
virtual bool GetFullScreen();
bool BeginDraw() { return true; }
void EndDraw() {};

@ -1327,6 +1327,17 @@ static PyObject *gPySetWindowSize(PyObject *, PyObject *args)
Py_RETURN_NONE;
}
static PyObject *gPySetFullScreen(PyObject *, PyObject *value)
{
gp_Canvas->SetFullScreen(PyObject_IsTrue(value));
Py_RETURN_NONE;
}
static PyObject *gPyGetFullScreen(PyObject *)
{
return PyBool_FromLong(gp_Canvas->GetFullScreen());
}
static struct PyMethodDef rasterizer_methods[] = {
{"getWindowWidth",(PyCFunction) gPyGetWindowWidth,
METH_VARARGS, "getWindowWidth doc"},
@ -1368,6 +1379,8 @@ static struct PyMethodDef rasterizer_methods[] = {
{"drawLine", (PyCFunction) gPyDrawLine,
METH_VARARGS, "draw a line on the screen"},
{"setWindowSize", (PyCFunction) gPySetWindowSize, METH_VARARGS, ""},
{"setFullScreen", (PyCFunction) gPySetFullScreen, METH_O, ""},
{"getFullScreen", (PyCFunction) gPyGetFullScreen, METH_NOARGS, ""},
{ NULL, (PyCFunction) NULL, 0, NULL }
};

@ -232,6 +232,16 @@ public:
int height
)=0;
virtual
void
SetFullScreen(
bool enable
)=0;
virtual
bool
GetFullScreen()=0;
protected: