Revision: 56025
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56025
Author:   moguri
Date:     2013-04-13 21:09:02 +0000 (Sat, 13 Apr 2013)
Log Message:
-----------
BGE: Adding a render.setFullScreen() and a render.getFullScreen() to allow 
fulscreening games via Python.

Modified Paths:
--------------
    trunk/blender/doc/python_api/rst/bge.render.rst
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_ICanvas.h

Modified: trunk/blender/doc/python_api/rst/bge.render.rst
===================================================================
--- trunk/blender/doc/python_api/rst/bge.render.rst     2013-04-13 20:58:49 UTC 
(rev 56024)
+++ trunk/blender/doc/python_api/rst/bge.render.rst     2013-04-13 21:09:02 UTC 
(rev 56025)
@@ -86,7 +86,18 @@
    :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)
 
    Writes a screenshot to the given filename.

Modified: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp        
2013-04-13 20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp        
2013-04-13 21:09:02 UTC (rev 56025)
@@ -70,6 +70,17 @@
        // 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);

Modified: trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h  
2013-04-13 20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h  
2013-04-13 21:09:02 UTC (rev 56025)
@@ -86,6 +86,14 @@
        );
 
                void
+       SetFullScreen(
+               bool enable
+       );
+
+               bool
+       GetFullScreen();
+
+               void
        BeginFrame(
        );
 

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp     
2013-04-13 20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp     
2013-04-13 21:09:02 UTC (rev 56025)
@@ -128,6 +128,19 @@
        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();

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.h       
2013-04-13 20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.h       
2013-04-13 21:09:02 UTC (rev 56025)
@@ -61,6 +61,8 @@
        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() {};

Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp    2013-04-13 
20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp    2013-04-13 
21:09:02 UTC (rev 56025)
@@ -1327,6 +1327,17 @@
        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 @@
        {"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 }
 };
 

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_ICanvas.h
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_ICanvas.h    2013-04-13 
20:58:49 UTC (rev 56024)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_ICanvas.h    2013-04-13 
21:09:02 UTC (rev 56025)
@@ -232,6 +232,16 @@
                int height
        )=0;
 
+       virtual
+               void
+       SetFullScreen(
+               bool enable
+       )=0;
+
+       virtual
+               bool
+       GetFullScreen()=0;
+
                
        
 protected:

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to