Revision: 37522
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37522
Author: kupoman
Date: 2011-06-15 19:33:46 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
Moved control of the exit key away from the keyboard devices, and moved it to
ketsjiengine.
Added setExitKey and getExitKey to the python API
Modified Paths:
--------------
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
branches/soc-2011-cucumber/source/gameengine/GameLogic/SCA_IInputDevice.h
branches/soc-2011-cucumber/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.h
branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_PythonInit.cpp
Modified:
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
---
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
2011-06-15 18:59:22 UTC (rev 37521)
+++
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
2011-06-15 19:33:46 UTC (rev 37522)
@@ -211,7 +211,6 @@
// create the inputdevices
KX_BlenderKeyboardDevice* keyboarddevice = new
KX_BlenderKeyboardDevice();
- keyboarddevice->SetExitKey(startscene->gm.exitkey);
KX_BlenderMouseDevice* mousedevice = new
KX_BlenderMouseDevice();
@@ -236,6 +235,7 @@
ketsjiengine->SetNetworkDevice(networkdevice);
ketsjiengine->SetUseFixedTime(usefixed);
ketsjiengine->SetTimingDisplay(frameRate, profile, properties);
+
KX_KetsjiEngine::SetExitKey(ConvertKeyCode(startscene->gm.exitkey));
#ifdef WITH_PYTHON
CValue::SetDeprecationWarnings(nodepwarnings);
Modified:
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
===================================================================
---
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
2011-06-15 18:59:22 UTC (rev 37521)
+++
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
2011-06-15 19:33:46 UTC (rev 37522)
@@ -37,6 +37,7 @@
#endif
#include "KX_BlenderKeyboardDevice.h"
+#include "KX_KetsjiEngine.h"
KX_BlenderKeyboardDevice::KX_BlenderKeyboardDevice()
: m_hookesc(false)
@@ -107,7 +108,7 @@
if (val == KM_PRESS)
{
- if (kxevent == m_exit_key && val != 0 && !m_hookesc)
+ if (kxevent == KX_KetsjiEngine::GetExitKey() && val !=
0 && !m_hookesc)
result = true;
if (kxevent == KX_PAUSEKEY && val &&
(IsPressed(KX_LEFTCTRLKEY) || IsPressed(KX_RIGHTCTRLKEY)))
result = true;
@@ -168,8 +169,3 @@
{
m_hookesc = true;
}
-
-void KX_BlenderKeyboardDevice::SetExitKey(short key)
-{
- m_exit_key = ToNative(key);
-}
Modified:
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
===================================================================
---
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
2011-06-15 18:59:22 UTC (rev 37521)
+++
branches/soc-2011-cucumber/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
2011-06-15 19:33:46 UTC (rev 37522)
@@ -52,7 +52,6 @@
virtual bool ConvertBlenderEvent(unsigned short incode,short val);
virtual void NextFrame();
virtual void HookEscape();
- virtual void SetExitKey(short key);
private:
short m_exit_key;
Modified:
branches/soc-2011-cucumber/source/gameengine/GameLogic/SCA_IInputDevice.h
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/GameLogic/SCA_IInputDevice.h
2011-06-15 18:59:22 UTC (rev 37521)
+++ branches/soc-2011-cucumber/source/gameengine/GameLogic/SCA_IInputDevice.h
2011-06-15 19:33:46 UTC (rev 37522)
@@ -286,7 +286,6 @@
*/
int m_currentTable;
void ClearStatusTable(int tableid);
- short m_exitkey;
public:
virtual bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode)=0;
@@ -317,11 +316,7 @@
*/
virtual void NextFrame();
- //Exit Key get/set
- virtual void SetExitKey(short key){m_exitkey=key;};
- virtual short GetExitKey(){return m_exitkey;};
-
#ifdef WITH_CXX_GUARDEDALLOC
public:
void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes,
"GE:SCA_InputEvent"); }
Modified:
branches/soc-2011-cucumber/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
===================================================================
---
branches/soc-2011-cucumber/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
2011-06-15 18:59:22 UTC (rev 37521)
+++
branches/soc-2011-cucumber/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
2011-06-15 19:33:46 UTC (rev 37522)
@@ -622,7 +622,7 @@
- m_keyboard->SetExitKey(ConvertKeyCode(gm->exitkey));
+ KX_KetsjiEngine::SetExitKey(ConvertKeyCode(gm->exitkey));
#ifdef WITH_PYTHON
CValue::SetDeprecationWarnings(nodepwarnings);
#else
@@ -902,7 +902,7 @@
GHOST_TEventDataPtr eventData =
((GHOST_IEvent*)event)->getData();
GHOST_TEventKeyData* keyData =
static_cast<GHOST_TEventKeyData*>(eventData);
- if (m_keyboard->ToNative(keyData->key) ==
m_keyboard->GetExitKey() && !m_keyboard->m_hookesc && !m_isEmbedded) {
+ if (m_keyboard->ToNative(keyData->key) ==
KX_KetsjiEngine::GetExitKey() && !m_keyboard->m_hookesc && !m_isEmbedded) {
m_exitRequested = KX_EXIT_REQUEST_OUTSIDE;
}
m_keyboard->ConvertEvent(keyData->key, isDown);
Modified:
branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
2011-06-15 18:59:22 UTC (rev 37521)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
2011-06-15 19:33:46 UTC (rev 37522)
@@ -106,6 +106,7 @@
double KX_KetsjiEngine::m_suspendedtime = 0.0;
double KX_KetsjiEngine::m_suspendeddelta = 0.0;
double KX_KetsjiEngine::m_average_framerate = 0.0;
+short KX_KetsjiEngine::m_exitkey = 130; //ESC Key
/**
@@ -1827,6 +1828,16 @@
return m_average_framerate;
}
+void KX_KetsjiEngine::SetExitKey(short key)
+{
+ m_exitkey = key;
+}
+
+short KX_KetsjiEngine::GetExitKey()
+{
+ return m_exitkey;
+}
+
void KX_KetsjiEngine::SetTimingDisplay(bool frameRate, bool profile, bool
properties)
{
m_show_framerate = frameRate;
Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.h
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.h
2011-06-15 18:59:22 UTC (rev 37521)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_KetsjiEngine.h
2011-06-15 19:33:46 UTC (rev 37522)
@@ -118,6 +118,8 @@
static double m_suspendedtime;
static double m_suspendeddelta;
+ static short m_exitkey; /* Key used to exit the BGE
*/
+
int m_exitcode;
STR_String m_exitstring;
/**
@@ -334,6 +336,10 @@
*/
static double GetAverageFrameRate();
+ static void SetExitKey(short key);
+
+ static short GetExitKey();
+
/**
* Activates or deactivates timing information display.
* @param frameRate Display for frame rate on or off.
Modified: branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_PythonInit.cpp
2011-06-15 18:59:22 UTC (rev 37521)
+++ branches/soc-2011-cucumber/source/gameengine/Ketsji/KX_PythonInit.cpp
2011-06-15 19:33:46 UTC (rev 37522)
@@ -411,6 +411,20 @@
return PyFloat_FromDouble(KX_KetsjiEngine::GetTicRate());
}
+static PyObject* gPySetExitKey(PyObject*, PyObject* args)
+{
+ short exitkey;
+ if (!PyArg_ParseTuple(args, "h:setExitKey", &exitkey))
+ return NULL;
+ KX_KetsjiEngine::SetExitKey(exitkey);
+ Py_RETURN_NONE;
+}
+
+static PyObject* gPyGetExitKey(PyObject*)
+{
+ return PyLong_FromSsize_t(KX_KetsjiEngine::GetExitKey());
+}
+
static PyObject* gPySetMaxLogicFrame(PyObject*, PyObject* args)
{
int frame;
@@ -804,6 +818,8 @@
{"setLogicTicRate", (PyCFunction) gPySetLogicTicRate, METH_VARARGS,
(const char *)"Sets the logic tic rate"},
{"getPhysicsTicRate", (PyCFunction) gPyGetPhysicsTicRate, METH_NOARGS,
(const char *)"Gets the physics tic rate"},
{"setPhysicsTicRate", (PyCFunction) gPySetPhysicsTicRate, METH_VARARGS,
(const char *)"Sets the physics tic rate"},
+ {"getExitKey", (PyCFunction) gPyGetExitKey, METH_NOARGS, (const char
*)"Gets the key used to exit the game engine"},
+ {"setExitKey", (PyCFunction) gPySetExitKey, METH_VARARGS, (const char
*)"Sets the key used to exit the game engine"},
{"getAverageFrameRate", (PyCFunction) gPyGetAverageFrameRate,
METH_NOARGS, (const char *)"Gets the estimated average frame rate"},
{"getBlendFileList", (PyCFunction)gPyGetBlendFileList, METH_VARARGS,
(const char *)"Gets a list of blend files in the same directory as the current
blend file"},
{"PrintGLInfo", (PyCFunction)pyPrintExt, METH_NOARGS, (const char
*)"Prints GL Extension Info"},
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs