Revision: 19956
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19956
Author:   campbellbarton
Date:     2009-04-28 15:11:56 +0200 (Tue, 28 Apr 2009)

Log Message:
-----------
BGE PyAPI
- renamed generic attribute "isValid" to "invalid" since BL_Shader already uses 
isValid.
- Moved deprecation warnings from CValue 
- removed unused KX_Scene::SetProjectionMatrix and KX_Scene::GetViewMatrix
- Added KX_Scene attributes "lights", "cameras", "objects_inactive", to allow 
access to objects in unseen layers (before the AddObject actuator adds them)
- KX_Camera deprecated cam.enableViewport(bool) for cam.isViewport which can be 
read as well.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp
    trunk/blender/source/gameengine/Expressions/PyObjectPlus.h
    trunk/blender/source/gameengine/Expressions/Value.cpp
    trunk/blender/source/gameengine/Expressions/Value.h
    trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Camera.h
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.h

Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp        
2009-04-28 13:02:49 UTC (rev 19955)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp        
2009-04-28 13:11:56 UTC (rev 19956)
@@ -113,11 +113,11 @@
 };
 
 PyAttributeDef PyObjectPlus::Attributes[] = {
-       KX_PYATTRIBUTE_RO_FUNCTION("isValid",           PyObjectPlus, 
pyattr_get_is_valid),
+       KX_PYATTRIBUTE_RO_FUNCTION("invalid",           PyObjectPlus, 
pyattr_get_invalid),
        {NULL} //Sentinel
 };
 
-PyObject* PyObjectPlus::pyattr_get_is_valid(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef)
+PyObject* PyObjectPlus::pyattr_get_invalid(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef)
 {      
        Py_RETURN_TRUE;
 }
@@ -137,7 +137,7 @@
 {
        PyObjectPlus *self_plus= BGE_PROXY_REF(self);
        if(self_plus==NULL) {
-               if(!strcmp("isValid", PyString_AsString(attr))) {
+               if(!strcmp("invalid", PyString_AsString(attr))) {
                        Py_RETURN_FALSE;
                }
                PyErr_SetString(PyExc_SystemError, BGE_PROXY_ERROR_MSG);
@@ -896,5 +896,56 @@
        return self->m_proxy;
 }
 
+///////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////
+/* deprecation warning management */
+bool PyObjectPlus::m_ignore_deprecation_warnings(false);
+void PyObjectPlus::SetDeprecationWarnings(bool ignoreDeprecationWarnings)
+{
+       m_ignore_deprecation_warnings = ignoreDeprecationWarnings;
+}
+
+void PyObjectPlus::ShowDeprecationWarning(const char* old_way,const char* 
new_way)
+{
+       if (!m_ignore_deprecation_warnings) {
+               printf("Method %s is deprecated, please use %s instead.\n", 
old_way, new_way);
+               
+               // import sys; print '\t%s:%d' % 
(sys._getframe(0).f_code.co_filename, sys._getframe(0).f_lineno)
+               
+               PyObject *getframe, *frame;
+               PyObject *f_lineno, *f_code, *co_filename;
+               
+               getframe = PySys_GetObject((char *)"_getframe"); // borrowed
+               if (getframe) {
+                       frame = PyObject_CallObject(getframe, NULL);
+                       if (frame) {
+                               f_lineno= PyObject_GetAttrString(frame, 
"f_lineno");
+                               f_code= PyObject_GetAttrString(frame, "f_code");
+                               if (f_lineno && f_code) {
+                                       co_filename= 
PyObject_GetAttrString(f_code, "co_filename");
+                                       if (co_filename) {
+                                               
+                                               printf("\t%s:%d\n", 
PyString_AsString(co_filename), (int)PyInt_AsLong(f_lineno));
+                                               
+                                               Py_DECREF(f_lineno);
+                                               Py_DECREF(f_code);
+                                               Py_DECREF(co_filename);
+                                               Py_DECREF(frame);
+                                               return;
+                                       }
+                               }
+                               
+                               Py_XDECREF(f_lineno);
+                               Py_XDECREF(f_code);
+                               Py_DECREF(frame);
+                       }
+                       
+               }
+               PyErr_Clear();
+               printf("\tERROR - Could not access sys._getframe(0).f_lineno or 
sys._getframe().f_code.co_filename\n");
+       }
+}
+
+
 #endif //NO_EXP_PYTHON_EMBEDDING
 

Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.h  2009-04-28 
13:02:49 UTC (rev 19955)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.h  2009-04-28 
13:11:56 UTC (rev 19956)
@@ -458,6 +458,14 @@
         */
        virtual void ProcessReplica();
        
+       
+       static bool                     m_ignore_deprecation_warnings;
+       
+       /** enable/disable display of deprecation warnings */
+       static void                     SetDeprecationWarnings(bool 
ignoreDeprecationWarnings);
+       /** Shows a deprecation warning */
+       static void                     ShowDeprecationWarning(const char* 
method,const char* prop);
+       
 };
 
 PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict);

Modified: trunk/blender/source/gameengine/Expressions/Value.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/Value.cpp       2009-04-28 
13:02:49 UTC (rev 19955)
+++ trunk/blender/source/gameengine/Expressions/Value.cpp       2009-04-28 
13:11:56 UTC (rev 19956)
@@ -32,7 +32,6 @@
 //////////////////////////////////////////////////////////////////////
 
 double CValue::m_sZeroVec[3] = {0.0,0.0,0.0};
-bool CValue::m_ignore_deprecation_warnings(false);
 
 #ifndef NO_EXP_PYTHON_EMBEDDING
 
@@ -781,52 +780,3 @@
        // no one should get here
        assertd(newval->GetNumber() == 10121969);       
 }
-///////////////////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////////////////////
-/* deprecation warning management */
-void CValue::SetDeprecationWarnings(bool ignoreDeprecationWarnings)
-{
-       m_ignore_deprecation_warnings = ignoreDeprecationWarnings;
-}
-
-void CValue::ShowDeprecationWarning(const char* old_way,const char* new_way)
-{
-       if (!m_ignore_deprecation_warnings) {
-               printf("Method %s is deprecated, please use %s instead.\n", 
old_way, new_way);
-               
-               // import sys; print '\t%s:%d' % 
(sys._getframe(0).f_code.co_filename, sys._getframe(0).f_lineno)
-               
-               PyObject *getframe, *frame;
-               PyObject *f_lineno, *f_code, *co_filename;
-               
-               getframe = PySys_GetObject((char *)"_getframe"); // borrowed
-               if (getframe) {
-                       frame = PyObject_CallObject(getframe, NULL);
-                       if (frame) {
-                               f_lineno= PyObject_GetAttrString(frame, 
"f_lineno");
-                               f_code= PyObject_GetAttrString(frame, "f_code");
-                               if (f_lineno && f_code) {
-                                       co_filename= 
PyObject_GetAttrString(f_code, "co_filename");
-                                       if (co_filename) {
-                                               
-                                               printf("\t%s:%d\n", 
PyString_AsString(co_filename), (int)PyInt_AsLong(f_lineno));
-                                               
-                                               Py_DECREF(f_lineno);
-                                               Py_DECREF(f_code);
-                                               Py_DECREF(co_filename);
-                                               Py_DECREF(frame);
-                                               return;
-                                       }
-                               }
-                               
-                               Py_XDECREF(f_lineno);
-                               Py_XDECREF(f_code);
-                               Py_DECREF(frame);
-                       }
-                       
-               }
-               PyErr_Clear();
-               printf("\tERROR - Could not access sys._getframe(0).f_lineno or 
sys._getframe().f_code.co_filename\n");
-       }
-}
-

Modified: trunk/blender/source/gameengine/Expressions/Value.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/Value.h 2009-04-28 13:02:49 UTC 
(rev 19955)
+++ trunk/blender/source/gameengine/Expressions/Value.h 2009-04-28 13:11:56 UTC 
(rev 19956)
@@ -303,10 +303,6 @@
        
        
        STR_String                              op2str(VALUE_OPERATOR op);
-       /** enable/disable display of deprecation warnings */
-       static void                     SetDeprecationWarnings(bool 
ignoreDeprecationWarnings);
-       /** Shows a deprecation warning */
-       static void                     ShowDeprecationWarning(const char* 
method,const char* prop);
                
        // setting / getting flags
        inline void                     SetSelected(bool bSelected)             
                                                { m_ValFlags.Selected = 
bSelected; }
@@ -338,7 +334,6 @@
        ValueFlags                      m_ValFlags;                             
                                                                // Frequently 
used flags in a bitfield (low memoryusage)
        int                                     m_refcount;                     
                                                                        // 
Reference Counter    
        static  double m_sZeroVec[3];   
-       static bool                     m_ignore_deprecation_warnings;
 
 };
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp        2009-04-28 
13:02:49 UTC (rev 19955)
+++ trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp        2009-04-28 
13:11:56 UTC (rev 19956)
@@ -478,10 +478,12 @@
        KX_PYMETHODTABLE_NOARGS(KX_Camera, getWorldToCamera),
        KX_PYMETHODTABLE_NOARGS(KX_Camera, getProjectionMatrix),
        KX_PYMETHODTABLE_O(KX_Camera, setProjectionMatrix),
-       KX_PYMETHODTABLE_O(KX_Camera, enableViewport),
        KX_PYMETHODTABLE(KX_Camera, setViewport),
        KX_PYMETHODTABLE_NOARGS(KX_Camera, setOnTop),
        
+       // DEPRECATED
+       KX_PYMETHODTABLE_O(KX_Camera, enableViewport),
+       
        {NULL,NULL} //Sentinel
 };
 
@@ -494,6 +496,8 @@
        KX_PYATTRIBUTE_RW_FUNCTION("near",      KX_Camera,      
pyattr_get_near, pyattr_set_near),
        KX_PYATTRIBUTE_RW_FUNCTION("far",       KX_Camera,      pyattr_get_far, 
 pyattr_set_far),
        
+       KX_PYATTRIBUTE_RW_FUNCTION("isViewport",        KX_Camera,      
pyattr_get_is_viewport,  pyattr_set_is_viewport),
+       
        KX_PYATTRIBUTE_RO_FUNCTION("projection_matrix", KX_Camera,      
pyattr_get_projection_matrix),
        KX_PYATTRIBUTE_RO_FUNCTION("modelview_matrix",  KX_Camera,      
pyattr_get_modelview_matrix),
        KX_PYATTRIBUTE_RO_FUNCTION("camera_to_world",   KX_Camera,      
pyattr_get_camera_to_world),
@@ -745,8 +749,9 @@
 "Sets this camera's viewport status\n"
 )
 {
+       ShowDeprecationWarning("enableViewport(bool)", "the isViewport 
property");
+       
        int viewport = PyObject_IsTrue(value);
-       
        if (viewport == -1) {
                PyErr_SetString(PyExc_ValueError, "camera.enableViewport(bool): 
KX_Camera, expected True/False or 0/1");
                return NULL;
@@ -776,10 +781,7 @@
 "setOnTop()\n"
 "Sets this camera's viewport on top\n")
 {
-       class KX_Scene* scene;
-       
-       scene = KX_GetActiveScene();
-       MT_assert(scene);
+       class KX_Scene* scene = KX_GetActiveScene();
        scene->SetCameraOnTop(this);
        Py_RETURN_NONE;
 }
@@ -863,6 +865,26 @@
        return 0;
 }
 
+
+PyObject* KX_Camera::pyattr_get_is_viewport(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef)
+{
+       KX_Camera* self= static_cast<KX_Camera*>(self_v);
+       return PyBool_FromLong(self->GetViewport());
+}
+
+int KX_Camera::pyattr_set_is_viewport(void *self_v, const KX_PYATTRIBUTE_DEF 
*attrdef, PyObject *value)
+{
+       KX_Camera* self= static_cast<KX_Camera*>(self_v);
+       int param = PyObject_IsTrue( value );
+       if (param == -1) {
+               PyErr_SetString(PyExc_AttributeError, "camera.isViewport = 
bool: KX_Camera, expected True or False");
+               return 1;
+       }
+       self->EnableViewport((bool)param);
+       return 0;
+}
+
+
 PyObject* KX_Camera::pyattr_get_projection_matrix(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef)
 {
        KX_Camera* self= static_cast<KX_Camera*>(self_v);

Modified: trunk/blender/source/gameengine/Ketsji/KX_Camera.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Camera.h  2009-04-28 13:02:49 UTC 
(rev 19955)
+++ trunk/blender/source/gameengine/Ketsji/KX_Camera.h  2009-04-28 13:11:56 UTC 
(rev 19956)
@@ -284,6 +284,9 @@
        static PyObject*        pyattr_get_far(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef);
        static int                      pyattr_set_far(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
        
+       static PyObject*        pyattr_get_is_viewport(void *self_v, const 
KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_is_viewport(void *self_v, 
const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       
        static PyObject*        pyattr_get_projection_matrix(void *self_v, 
const KX_PYATTRIBUTE_DEF *attrdef);

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to