From 2a373f6c44756773ae45690848791de76704b37d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 17 Mar 2009 22:03:21 +0000 Subject: [PATCH 001/201] Fix for bug #18419: game engine debug drawing interfered with alpha blending. --- .../RAS_OpenGLRasterizer.cpp | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index d4d1b73c772..765ff0174ee 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -327,17 +327,23 @@ void RAS_OpenGLRasterizer::ClearCachingInfo(void) m_materialCachingInfo = 0; } -void RAS_OpenGLRasterizer::FlushDebugLines() +void RAS_OpenGLRasterizer::FlushDebugLines() { -//DrawDebugLines - glDisable(GL_LIGHTING); - glDisable(GL_TEXTURE_2D); + if(!m_debugLines.size()) + return; + + // DrawDebugLines + GLboolean light, tex; + + light= glIsEnabled(GL_LIGHTING); + tex= glIsEnabled(GL_TEXTURE_2D); + + if(light) glDisable(GL_LIGHTING); + if(tex) glDisable(GL_TEXTURE_2D); glBegin(GL_LINES); for (unsigned int i=0;i Date: Fri, 20 Mar 2009 02:26:02 +0000 Subject: [PATCH 002/201] patch from Banlu Kemiyatorn * when joining only 2 faces dont check they are convex * allow edge rotate for non planer faces - Both were very annoying especially when sub-surf modeling with edge loops --- source/blender/src/editmesh_tools.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 76f1443616f..690b4481ec9 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -3352,11 +3352,9 @@ void join_triangles(void) if(v1 && v2 && v3 && v4){ /*test if simple island first. This mimics 2.42 behaviour and the tests are less restrictive.*/ if(efaa[0]->tmp.l == 1 && efaa[1]->tmp.l == 1){ - if( convex(v1->co, v2->co, v3->co, v4->co) ){ - eed->f1 |= T2QJOIN; - efaa[0]->f1 = 1; //mark for join - efaa[1]->f1 = 1; //mark for join - } + eed->f1 |= T2QJOIN; + efaa[0]->f1 = 1; //mark for join + efaa[1]->f1 = 1; //mark for join } else{ @@ -3615,10 +3613,6 @@ static void edge_rotate(EditEdge *eed,int dir) if(numshared > 1) return; - /* coplaner faces only please */ - if(Inpf(face[0]->n,face[1]->n) <= 0.000001) - return; - /* we want to construct an array of vertex indicis in both faces, starting at the last vertex of the edge being rotated. - first we find the two vertices that lie on the rotating edge From 483ee1157e879304318173981981623e1deeeb65 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 20 Mar 2009 06:12:22 +0000 Subject: [PATCH 003/201] fixes for... [18429] Typo in IPO Actuator [18377] Crash fo yofankie (G.curscreen==NULL) /* No screen, happens when saving a blendfile in background mode, * then loading in the game engine * just assume we need the mesh info */ --- .../blender/blenkernel/intern/DerivedMesh.c | 38 ++++++++++++------- source/blender/src/buttons_logic.c | 2 +- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index b7f068c936b..c934f7d9fe7 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1995,21 +1995,33 @@ CustomDataMask get_viewedit_datamask() /* check if we need tfaces & mcols due to face select or texture paint */ if(FACESEL_PAINT_TEST || G.f & G_TEXTUREPAINT) mask |= CD_MASK_MTFACE | CD_MASK_MCOL; + + if (G.curscreen==NULL) { + /* No screen, happens when saving a blendfile in background mode, + * then loading in the game engine + * just assume we need the mesh info */ + mask |= CD_MASK_MTFACE | CD_MASK_MCOL; - /* check if we need tfaces & mcols due to view mode */ - for(sa = G.curscreen->areabase.first; sa; sa = sa->next) { - if(sa->spacetype == SPACE_VIEW3D) { - View3D *view = sa->spacedata.first; - if(view->drawtype == OB_SHADED) { - /* this includes normals for mesh_create_shadedColors */ - mask |= CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_NORMAL | CD_MASK_ORCO; - } - if((view->drawtype == OB_TEXTURE) || ((view->drawtype == OB_SOLID) && (view->flag2 & V3D_SOLID_TEX))) { - mask |= CD_MASK_MTFACE | CD_MASK_MCOL; + if((G.fileflags & G_FILE_GAME_MAT) && + (G.fileflags & G_FILE_GAME_MAT_GLSL)) { + mask |= CD_MASK_ORCO; + } + } else { + /* check if we need tfaces & mcols due to view mode */ + for(sa = G.curscreen->areabase.first; sa; sa = sa->next) { + if(sa->spacetype == SPACE_VIEW3D) { + View3D *view = sa->spacedata.first; + if(view->drawtype == OB_SHADED) { + /* this includes normals for mesh_create_shadedColors */ + mask |= CD_MASK_MTFACE | CD_MASK_MCOL | CD_MASK_NORMAL | CD_MASK_ORCO; + } + if((view->drawtype == OB_TEXTURE) || ((view->drawtype == OB_SOLID) && (view->flag2 & V3D_SOLID_TEX))) { + mask |= CD_MASK_MTFACE | CD_MASK_MCOL; - if((G.fileflags & G_FILE_GAME_MAT) && - (G.fileflags & G_FILE_GAME_MAT_GLSL)) { - mask |= CD_MASK_ORCO; + if((G.fileflags & G_FILE_GAME_MAT) && + (G.fileflags & G_FILE_GAME_MAT_GLSL)) { + mask |= CD_MASK_ORCO; + } } } } diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 10718c74a4b..01520061a19 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -1875,7 +1875,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh uiDefButS(block, NUM, 0, "Blendin: ", xco+10, yco-64, (width-20)/2, 19, &aa->blendin, 0.0, 32767, 0.0, 0.0, "Number of frames of motion blending"); uiDefButS(block, NUM, 0, "Priority: ", xco+10+(width-20)/2, yco-64, (width-20)/2, 19, &aa->priority, 0.0, 100.0, 0.0, 0.0, "Execution priority - lower numbers will override actions with higher numbers, With 2 or more actions at once, the overriding channels must be lower in the stack"); - uiDefBut(block, TEX, 0, "FrameProp: ",xco+10, yco-84, width-20, 19, aa->frameProp, 0.0, 31.0, 0, 0, "Assign this property this actions current frame number"); + uiDefBut(block, TEX, 0, "FrameProp: ",xco+10, yco-84, width-20, 19, aa->frameProp, 0.0, 31.0, 0, 0, "Assign the action's current frame number to this property"); #ifdef __NLA_ACTION_BY_MOTION_ACTUATOR From d5d2d1feceb9f261ff04682ca4f6a2658c04ab5c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 22 Mar 2009 17:03:55 +0000 Subject: [PATCH 004/201] removed edgecode from the game engines RAS_Polygon class since its not used --- source/gameengine/Rasterizer/RAS_Polygon.cpp | 5 +++-- source/gameengine/Rasterizer/RAS_Polygon.h | 11 ++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/source/gameengine/Rasterizer/RAS_Polygon.cpp b/source/gameengine/Rasterizer/RAS_Polygon.cpp index 50331d7a664..66b14bb60b0 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.cpp +++ b/source/gameengine/Rasterizer/RAS_Polygon.cpp @@ -39,7 +39,7 @@ RAS_Polygon::RAS_Polygon(RAS_MaterialBucket* bucket, RAS_DisplayArray *darray, i m_offset[0]= m_offset[1]= m_offset[2]= m_offset[3]= 0; m_numvert = numvert; - m_edgecode = 255; +// m_edgecode = 255; m_polyflags = 0; } @@ -63,6 +63,7 @@ int RAS_Polygon::GetVertexOffset(int i) return m_offset[i]; } +/* int RAS_Polygon::GetEdgeCode() { return m_edgecode; @@ -71,7 +72,7 @@ int RAS_Polygon::GetEdgeCode() void RAS_Polygon::SetEdgeCode(int edgecode) { m_edgecode = edgecode; -} +}*/ bool RAS_Polygon::IsVisible() diff --git a/source/gameengine/Rasterizer/RAS_Polygon.h b/source/gameengine/Rasterizer/RAS_Polygon.h index 18526ba45f7..224a7e0eed2 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.h +++ b/source/gameengine/Rasterizer/RAS_Polygon.h @@ -46,9 +46,13 @@ class RAS_Polygon unsigned short m_numvert; /* flags */ +#if 1 + unsigned short m_polyflags; +#else unsigned char m_edgecode; unsigned char m_polyflags; - +#endif + public: enum { VISIBLE = 1, @@ -65,8 +69,9 @@ public: int GetVertexOffset(int i); // each bit is for a visible edge, starting with bit 1 for the first edge, bit 2 for second etc. - int GetEdgeCode(); - void SetEdgeCode(int edgecode); + // - Not used yet! +/* int GetEdgeCode(); + void SetEdgeCode(int edgecode); */ bool IsVisible(); void SetVisible(bool visible); From 615c5232c7b2e51f9722fdff58e04ae53c043797 Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 22 Mar 2009 19:19:21 +0000 Subject: [PATCH 005/201] == FFMPEG == Updated ffmpeg to release version 0.5 updated x264 to today's daily build thanks to ben2610 for first patches (but you got hddaudio.c wrong :) --- config/darwin-config.py | 6 +--- config/linux2-config.py | 7 +---- .../blender/blenkernel/intern/writeffmpeg.c | 28 ++++++++++--------- source/blender/imbuf/intern/IMB_anim.h | 6 ++-- source/blender/imbuf/intern/anim.c | 8 +++--- source/blender/imbuf/intern/util.c | 8 +++--- source/blender/src/buttons_scene.c | 6 ++-- source/blender/src/hddaudio.c | 12 ++++---- source/gameengine/VideoTexture/VideoFFmpeg.h | 8 +++--- 9 files changed, 42 insertions(+), 47 deletions(-) diff --git a/config/darwin-config.py b/config/darwin-config.py index cfd6a9395bb..39c9b9df4ff 100644 --- a/config/darwin-config.py +++ b/config/darwin-config.py @@ -40,11 +40,7 @@ else: # enable ffmpeg support WITH_BF_FFMPEG = True # -DWITH_FFMPEG BF_FFMPEG = "#extern/ffmpeg" -# trick : The version of ffmpeg in extern/ffmpeg uses explicit libav.. directory in #include statements -# To keep Blender compatible with older versions, I add ${BF_FFMPEG} to the inc dir so that ffmpeg -# finds the files directly in extern/ffmpeg/libav... while blender finds them in -# extern/ffmpeg/include. -BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}' +BF_FFMPEG_INC = '${BF_FFMPEG}' if USE_SDK==True: BF_FFMPEG_EXTRA = '-isysroot '+MACOSX_SDK+' -mmacosx-version-min='+MAC_MIN_VERS #BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib' diff --git a/config/linux2-config.py b/config/linux2-config.py index 6ba3052048d..102bb2e5e4c 100644 --- a/config/linux2-config.py +++ b/config/linux2-config.py @@ -140,12 +140,7 @@ BF_FFMPEG_LIB = '' # Uncomment the following two lines to use system's ffmpeg # BF_FFMPEG = '/usr' # BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice' -# trick : The version of ffmpeg in extern/ffmpeg uses explicit libav.. directory in #include statements -# To keep Blender compatible with older version, I add ${BF_FFMPEG} to the inc dir so that ffmpeg -# finds the files directly in extern/ffmpeg/libav... while blender finds them in -# extern/ffmpeg/include. When using system ffmpeg, you don't need that, assuming the system library -# still use the flat directory model, otherwise will not compile anyway -BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}' +BF_FFMPEG_INC = '${BF_FFMPEG}' BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib' # enable ogg, vorbis and theora in ffmpeg diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index cef6f802729..378e4319223 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -29,11 +29,11 @@ #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 @@ -290,8 +290,8 @@ static AVFrame* generate_video_frame(uint8_t* pixels) int height = c->height; AVFrame* rgb_frame; - if (c->pix_fmt != PIX_FMT_RGBA32) { - rgb_frame = alloc_picture(PIX_FMT_RGBA32, width, height); + if (c->pix_fmt != PIX_FMT_BGR32) { + rgb_frame = alloc_picture(PIX_FMT_BGR32, width, height); if (!rgb_frame) { G.afbreek=1; error("Couldn't allocate temporary frame"); @@ -342,7 +342,7 @@ static AVFrame* generate_video_frame(uint8_t* pixels) } } - if (c->pix_fmt != PIX_FMT_RGBA32) { + if (c->pix_fmt != PIX_FMT_BGR32) { sws_scale(img_convert_ctx, rgb_frame->data, rgb_frame->linesize, 0, c->height, current_frame->data, current_frame->linesize); @@ -498,9 +498,11 @@ static AVStream* alloc_video_stream(int codec_id, AVFormatContext* of, c->pix_fmt = PIX_FMT_YUV420P; } - if (!strcmp(of->oformat->name, "mp4") || - !strcmp(of->oformat->name, "mov") || - !strcmp(of->oformat->name, "3gp")) { + if ((of->oformat->flags & AVFMT_GLOBALHEADER) +// || !strcmp(of->oformat->name, "mp4") +// || !strcmp(of->oformat->name, "mov") +// || !strcmp(of->oformat->name, "3gp") + ) { fprintf(stderr, "Using global header\n"); c->flags |= CODEC_FLAG_GLOBAL_HEADER; } @@ -514,7 +516,7 @@ static AVStream* alloc_video_stream(int codec_id, AVFormatContext* of, /* xasp & yasp got float lately... */ - c->sample_aspect_ratio = av_d2q( + st->sample_aspect_ratio = c->sample_aspect_ratio = av_d2q( ((double) G.scene->r.xasp / (double) G.scene->r.yasp), 255); set_ffmpeg_properties(c, "video"); @@ -531,7 +533,7 @@ static AVStream* alloc_video_stream(int codec_id, AVFormatContext* of, current_frame = alloc_picture(c->pix_fmt, c->width, c->height); img_convert_ctx = sws_getContext(c->width, c->height, - PIX_FMT_RGBA32, + PIX_FMT_BGR32, c->width, c->height, c->pix_fmt, SWS_BICUBIC, diff --git a/source/blender/imbuf/intern/IMB_anim.h b/source/blender/imbuf/intern/IMB_anim.h index 745248d3218..7e99df8237a 100644 --- a/source/blender/imbuf/intern/IMB_anim.h +++ b/source/blender/imbuf/intern/IMB_anim.h @@ -76,9 +76,9 @@ #endif /* WITH_QUICKTIME */ #ifdef WITH_FFMPEG -#include -#include -#include +#include +#include +#include #endif #ifdef WITH_REDCODE diff --git a/source/blender/imbuf/intern/anim.c b/source/blender/imbuf/intern/anim.c index 80bf401bec0..42fe47cc5e9 100644 --- a/source/blender/imbuf/intern/anim.c +++ b/source/blender/imbuf/intern/anim.c @@ -83,10 +83,10 @@ #include "IMB_anim5.h" #ifdef WITH_FFMPEG -#include -#include -#include -#include +#include +#include +#include +#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index 15d1d031dbd..ffd5d3431af 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -73,10 +73,10 @@ #endif #ifdef WITH_FFMPEG -#include -#include -#include -#include +#include +#include +#include +#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index 376a57b11e9..be988c5a68a 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -109,9 +109,9 @@ #ifdef WITH_FFMPEG -#include /* for PIX_FMT_* and CODEC_ID_* */ -#include -#include +#include /* for PIX_FMT_* and CODEC_ID_* */ +#include +#include static int ffmpeg_preset_sel = 0; diff --git a/source/blender/src/hddaudio.c b/source/blender/src/hddaudio.c index 7e6b314f296..7175f140b09 100644 --- a/source/blender/src/hddaudio.c +++ b/source/blender/src/hddaudio.c @@ -33,9 +33,9 @@ #endif #ifdef WITH_FFMPEG -#include -#include -#include +#include +#include +#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 #else @@ -311,7 +311,8 @@ static void sound_hdaudio_extract_small_block( audio_pkt_size = packet.size; while (audio_pkt_size > 0) { - len = avcodec_decode_audio( + data_size=AVCODEC_MAX_AUDIO_FRAME_SIZE; + len = avcodec_decode_audio2( hdaudio->pCodecCtx, hdaudio->decode_cache + decode_pos, @@ -478,7 +479,8 @@ static void sound_hdaudio_extract_small_block( } while (audio_pkt_size > 0) { - len = avcodec_decode_audio( + data_size=AVCODEC_MAX_AUDIO_FRAME_SIZE; + len = avcodec_decode_audio2( hdaudio->pCodecCtx, hdaudio->decode_cache + decode_pos, diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.h b/source/gameengine/VideoTexture/VideoFFmpeg.h index 51ce2c4eebe..51f1067c466 100644 --- a/source/gameengine/VideoTexture/VideoFFmpeg.h +++ b/source/gameengine/VideoTexture/VideoFFmpeg.h @@ -25,10 +25,10 @@ http://www.gnu.org/copyleft/lesser.txt. #ifdef WITH_FFMPEG extern "C" { #include -#include -#include -#include -#include +#include +#include +#include +#include #include "DNA_listBase.h" #include "BLI_threads.h" #include "BLI_blenlib.h" From 1914ed72b25cd856c7be3e341e87f9bfa8966275 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 22 Mar 2009 21:04:28 +0000 Subject: [PATCH 006/201] Speedup for bullet creating convex hull meshes In a simple test with ~12000 verts, overall BGE startup time went from ~4.5 sec to a bit under a second. - before adding each vert it did a check for a duplicates. - Using RAS_Polygon verts can give a lot of duplicates because the verts also store UV's and normals. - Was increasing the array one item at a time, now resize the array once. - Use the blender mesh mvert array rather then RAS_TexVert's, so needed to include some DNA headers. --- .../gameengine/Physics/Bullet/CMakeLists.txt | 1 + .../Physics/Bullet/CcdPhysicsController.cpp | 81 +++++++++++++------ source/gameengine/Physics/Bullet/Makefile | 1 + source/gameengine/Physics/Bullet/SConscript | 2 +- 4 files changed, 59 insertions(+), 26 deletions(-) diff --git a/source/gameengine/Physics/Bullet/CMakeLists.txt b/source/gameengine/Physics/Bullet/CMakeLists.txt index 6c733786caf..83b77db4efd 100644 --- a/source/gameengine/Physics/Bullet/CMakeLists.txt +++ b/source/gameengine/Physics/Bullet/CMakeLists.txt @@ -34,6 +34,7 @@ SET(INC ../../../kernel/gen_system ../../../../intern/string ../../Rasterizer + ../../../../source/blender/makesdna ) BLENDERLIB(bf_bullet "${SRC}" "${INC}") diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index eecdea55349..61d02847164 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -24,10 +24,14 @@ subject to the following restrictions: #include "BulletSoftBody/btSoftBodyHelpers.h" #include "LinearMath/btConvexHull.h" #include "BulletCollision/Gimpact/btGImpactShape.h" +#include "BulletCollision/Gimpact/btGImpactShape.h" #include "BulletSoftBody/btSoftRigidDynamicsWorld.h" +#include "DNA_mesh_types.h" +#include "DNA_meshdata_types.h" + class BP_Proxy; ///todo: fill all the empty CcdPhysicsController methods, hook them up to the btRigidBody class @@ -1315,37 +1319,64 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, bool polytope,bo numvalidpolys = 0; - for (int p2=0; p2GetPolygon(p2); - - // only add polygons that have the collisionflag set - if (poly->IsCollider()) - { - //Bullet can raycast any shape, so - if (polytope) + Mesh *blen_mesh= meshobj->GetMesh(); + vector vuser_array(blen_mesh->totvert, false); + + unsigned int tot_bt_verts= 0; + unsigned int orig_index; + int i; + + // Tag verts we're using + for (int p2=0; p2GetPolygon(p2); + + // only add polygons that have the collisionflag set + if (poly->IsCollider()) { - for (int i=0;iVertexCount();i++) + for (i=0;iVertexCount();i++) { - const float* vtx = poly->GetVertex(i)->getXYZ(); - btVector3 point(vtx[0],vtx[1],vtx[2]); - //avoid duplicates (could better directly use vertex offsets, rather than a vertex compare) - bool found = false; - for (int j=0;jGetVertex(i)->getOrigIndex(); + + if (vuser_array[orig_index]==false) { - if (m_vertexArray[j]==point) - { - found = true; - break; - } + vuser_array[orig_index]= true; + tot_bt_verts++; } - if (!found) - m_vertexArray.push_back(point); - - numvalidpolys++; } - } else + } + } + + m_vertexArray.resize(tot_bt_verts); + + // Copy used verts directly from the meshes vert location to the bullet vector array + MVert *mv= blen_mesh->mvert; + btVector3 *bt= &m_vertexArray[0]; + + for (i=0;isetX( mv->co[0] ); + bt->setY( mv->co[1] ); + bt->setZ( mv->co[2] ); + bt++; + } + } + numvalidpolys++; + } + else { + for (int p2=0; p2GetPolygon(p2); + + // only add polygons that have the collisionflag set + if (poly->IsCollider()) + { + //Bullet can raycast any shape, so + { const float* vtx = poly->GetVertex(2)->getXYZ(); btVector3 vertex0(vtx[0],vtx[1],vtx[2]); @@ -1379,7 +1410,7 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, bool polytope,bo m_polygonIndexArray.push_back(p2); numvalidpolys++; } - } + } } } diff --git a/source/gameengine/Physics/Bullet/Makefile b/source/gameengine/Physics/Bullet/Makefile index d5570e75833..bf3573138f7 100644 --- a/source/gameengine/Physics/Bullet/Makefile +++ b/source/gameengine/Physics/Bullet/Makefile @@ -43,4 +43,5 @@ CPPFLAGS += -I../../../kernel/gen_system CPPFLAGS += -I../../Physics/common CPPFLAGS += -I../../Physics/Dummy CPPFLAGS += -I../../Rasterizer +CPPFLAGS += -I../../../../source/blender/makesdna diff --git a/source/gameengine/Physics/Bullet/SConscript b/source/gameengine/Physics/Bullet/SConscript index 0d5bf4933d8..868a4d66af0 100644 --- a/source/gameengine/Physics/Bullet/SConscript +++ b/source/gameengine/Physics/Bullet/SConscript @@ -3,7 +3,7 @@ Import ('env') sources = 'CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp' -incs = '. ../common #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer' +incs = '. ../common #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer #source/blender/makesdna' incs += ' ' + env['BF_BULLET_INC'] From fa765a554c6883364dc24c286dd5b630ce5dcfe6 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sun, 22 Mar 2009 21:06:08 +0000 Subject: [PATCH 007/201] only write tex plugin and envmap data to file if texture is the right type. This takes care of lingering errors with missing texture plugins after texture type is changed --- source/blender/blenloader/intern/writefile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 92d847d4782..cf8109fe9b3 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1332,9 +1332,9 @@ static void write_textures(WriteData *wd, ListBase *idbase) if (tex->id.properties) IDP_WriteProperty(tex->id.properties, wd); /* direct data */ - if(tex->plugin) writestruct(wd, DATA, "PluginTex", 1, tex->plugin); + if(tex->type == TEX_PLUGIN && tex->plugin) writestruct(wd, DATA, "PluginTex", 1, tex->plugin); if(tex->coba) writestruct(wd, DATA, "ColorBand", 1, tex->coba); - if(tex->env) writestruct(wd, DATA, "EnvMap", 1, tex->env); + if(tex->type == TEX_ENVMAP && tex->env) writestruct(wd, DATA, "EnvMap", 1, tex->env); /* nodetree is integral part of texture, no libdata */ if(tex->nodetree) { From e3d0dfc9eb3c9b20e0915256eab66ed23a34633f Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 22 Mar 2009 21:36:48 +0000 Subject: [PATCH 008/201] BGE API cleanup: add support for attribute set/get through functions only. --- .../gameengine/Expressions/PyObjectPlus.cpp | 34 +++++-- source/gameengine/Expressions/PyObjectPlus.h | 90 +++++++++++-------- 2 files changed, 79 insertions(+), 45 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 1bead0a7664..494a848be74 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -143,6 +143,13 @@ PyObject *PyObjectPlus::_getattr_self(const PyAttributeDef attrlist[], void *sel // fake attribute, ignore return NULL; } + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) + { + // the attribute has no field correspondance, handover processing to function. + if (attrdef->m_getFunction == NULL) + return NULL; + return (*attrdef->m_getFunction)(self, attrdef); + } char *ptr = reinterpret_cast(self)+attrdef->m_offset; if (attrdef->m_length > 1) { @@ -270,6 +277,13 @@ int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, con } switch (attrdef->m_type) { + case KX_PYATTRIBUTE_TYPE_FUNCTION: + if (attrdef->m_setFunction == NULL) + { + PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + return 1; + } + return (*attrdef->m_setFunction)(self, attrdef, value); case KX_PYATTRIBUTE_TYPE_BOOL: bufferSize = sizeof(bool); break; @@ -419,9 +433,9 @@ int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, con } } // no error, call check function if any - if (attrdef->m_function != NULL) + if (attrdef->m_checkFunction != NULL) { - if ((*attrdef->m_function)(self, attrdef) != 0) + if ((*attrdef->m_checkFunction)(self, attrdef) != 0) { // post check returned an error, restore values UNDO_AND_ERROR: @@ -439,8 +453,16 @@ int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, con } else // simple attribute value { - - if (attrdef->m_function != NULL) + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) + { + if (attrdef->m_setFunction == NULL) + { + PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + return 1; + } + return (*attrdef->m_setFunction)(self, attrdef, value); + } + if (attrdef->m_checkFunction != NULL) { // post check function is provided, prepare undo buffer sourceBuffer = ptr; @@ -628,9 +650,9 @@ int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, con } } // check if post processing is needed - if (attrdef->m_function != NULL) + if (attrdef->m_checkFunction != NULL) { - if ((*attrdef->m_function)(self, attrdef) != 0) + if ((*attrdef->m_checkFunction)(self, attrdef) != 0) { // restore value RESTORE_AND_ERROR: diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 1a5f50a3d23..28b0e28b815 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -206,6 +206,7 @@ enum KX_PYATTRIBUTE_TYPE { KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_TYPE_DUMMY, + KX_PYATTRIBUTE_TYPE_FUNCTION, }; enum KX_PYATTRIBUTE_ACCESS { @@ -214,7 +215,9 @@ enum KX_PYATTRIBUTE_ACCESS { }; struct KX_PYATTRIBUTE_DEF; -typedef int (*KX_PYATTRIBUTE_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); +typedef int (*KX_PYATTRIBUTE_CHECK_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); +typedef int (*KX_PYATTRIBUTE_SET_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); +typedef PyObject* (*KX_PYATTRIBUTE_GET_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); typedef struct KX_PYATTRIBUTE_DEF { const char *m_name; // name of the python attribute @@ -228,7 +231,10 @@ typedef struct KX_PYATTRIBUTE_DEF { size_t m_offset; // position of field in structure size_t m_size; // size of field for runtime verification (enum only) size_t m_length; // length of array, 1=simple attribute - KX_PYATTRIBUTE_FUNCTION m_function; // static function to check the assignment, returns 0 if no error + KX_PYATTRIBUTE_CHECK_FUNCTION m_checkFunction; // static function to check the assignment, returns 0 if no error + KX_PYATTRIBUTE_SET_FUNCTION m_setFunction; // static function to check the assignment, returns 0 if no error + KX_PYATTRIBUTE_GET_FUNCTION m_getFunction; // static function to check the assignment, returns 0 if no error + // The following pointers are just used to have compile time check for attribute type. // It would have been good to use a union but that would require C99 compatibility // to initialize specific union fields through designated initializers. @@ -242,88 +248,94 @@ typedef struct KX_PYATTRIBUTE_DEF { } PyAttributeDef; #define KX_PYATTRIBUTE_DUMMY(name) \ - { name, KX_PYATTRIBUTE_TYPE_DUMMY, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, {NULL, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_DUMMY, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, NULL, NULL, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_BOOL_RW(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RW, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, {&((object *)0)->field, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RW, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, NULL, NULL, {&((object *)0)->field, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_BOOL_RW_CHECK(name,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RW, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, &object::function, {&((object *)0)->field, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RW, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, &object::function, NULL, NULL, {&((object *)0)->field, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_BOOL_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RO, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, {&((object *)0)->field, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_BOOL, KX_PYATTRIBUTE_RO, 0, 1, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, NULL, NULL, {&((object *)0)->field, NULL, NULL, NULL, NULL} } // enum field cannot be mapped to pointer (because we would need a pointer for each enum) // use field size to verify mapping at runtime only, assuming enum size is equal to int size. #define KX_PYATTRIBUTE_ENUM_RW(name,min,max,clamp,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), sizeof(((object *)0)->field), 1, NULL, {NULL, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), sizeof(((object *)0)->field), 1, NULL, NULL, NULL, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_ENUM_RW_CHECK(name,min,max,clamp,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), sizeof(((object *)0)->field), 1, &object::function, {NULL, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), sizeof(((object *)0)->field), 1, &object::function, NULL, NULL, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_ENUM_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), sizeof(((object *)0)->field), 1, NULL, {NULL, NULL, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_ENUM, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), sizeof(((object *)0)->field), 1, NULL, NULL, NULL, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_RW(name,min,max,clamp,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_RW_CHECK(name,min,max,clamp,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_ARRAY_RW(name,min,max,clamp,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, {NULL, ((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, ((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_ARRAY_RW_CHECK(name,min,max,clamp,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, {NULL, ((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, NULL, NULL, {NULL, ((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_ARRAY_RO(name,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, {NULL, ((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, ((object *)0)->field, NULL, NULL, NULL} } // SHORT_LIST #define KX_PYATTRIBUTE_SHORT_LIST_RW(name,min,max,clamp,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_LIST_RW_CHECK(name,min,max,clamp,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_SHORT_LIST_RO(name,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_SHORT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, &((object *)0)->field, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_INT_RW(name,min,max,clamp,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_RW_CHECK(name,min,max,clamp,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_ARRAY_RW(name,min,max,clamp,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, {NULL, NULL, ((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, ((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_ARRAY_RW_CHECK(name,min,max,clamp,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, {NULL, NULL, ((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, NULL, NULL, {NULL, NULL, ((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_ARRAY_RO(name,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, {NULL, NULL, ((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, ((object *)0)->field, NULL, NULL} } // INT_LIST #define KX_PYATTRIBUTE_INT_LIST_RW(name,min,max,clamp,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_LIST_RW_CHECK(name,min,max,clamp,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } #define KX_PYATTRIBUTE_INT_LIST_RO(name,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } + { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, &((object *)0)->field, NULL, NULL} } // always clamp for float #define KX_PYATTRIBUTE_FLOAT_RW(name,min,max,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, 1, NULL, {NULL, NULL, NULL, &((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, NULL, NULL, &((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_FLOAT_RW_CHECK(name,min,max,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, 1, &object::function, {NULL, NULL, NULL, &((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, 1, &object::function, NULL, NULL, {NULL, NULL, NULL, &((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_FLOAT_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, {NULL, NULL, NULL, &((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, NULL, NULL, &((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_FLOAT_ARRAY_RW(name,min,max,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, length, NULL, {NULL, NULL, NULL, ((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, NULL, ((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_FLOAT_ARRAY_RW_CHECK(name,min,max,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, length, &object::function, {NULL, NULL, NULL, ((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RW, 0, 0, min, max, true, offsetof(object,field), 0, length, &object::function, NULL, NULL, {NULL, NULL, NULL, ((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_FLOAT_ARRAY_RO(name,object,field,length) \ - { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, {NULL, NULL, NULL, ((object *)0)->field, NULL} } + { name, KX_PYATTRIBUTE_TYPE_FLOAT, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, length, NULL, NULL, NULL, {NULL, NULL, NULL, ((object *)0)->field, NULL} } #define KX_PYATTRIBUTE_STRING_RW(name,min,max,clamp,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } + { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, NULL, NULL, NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } #define KX_PYATTRIBUTE_STRING_RW_CHECK(name,min,max,clamp,object,field,function) \ - { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, {NULL, NULL, NULL, NULL, &((object *)0)->field} } + { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, 1, &object::function, NULL, NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } #define KX_PYATTRIBUTE_STRING_RO(name,object,field) \ - { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1 , NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } + { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1 , NULL, NULL, NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } + +#define KX_PYATTRIBUTE_RW_FUNCTION(name,object,setfunction,getfunction) \ + { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RW, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, &object::setfunction, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } +#define KX_PYATTRIBUTE_RO_FUNCTION(name,object,getfunction) \ + { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, NULL, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } +#define KX_PYATTRIBUTE_ARRAY_RW_FUNCTION(name,object,length,setfunction,getfunction) \ + { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RW, 0, 0, 0.f, 0,f, false, 0, 0, length, NULL, &object::setfunction, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } +#define KX_PYATTRIBUTE_ARRAY_RO_FUNCTION(name,object,length,getfunction) \ + { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0,f, false, 0, 0, length, NULL, NULL, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } -//Multiple integer -#define KX_PYATTRIBUTE_MINT_RW_CHECK(name,min,max,clamp,object,field,length,function) \ - { name, KX_PYATTRIBUTE_TYPE_INT, KX_PYATTRIBUTE_RW, min, max, 0.f, 0.f, clamp, offsetof(object,field), 0, length, &object::function, {NULL, NULL, &((object *)0)->field, NULL, NULL} } /*------------------------------ * PyObjectPlus From bd13f302240ec3347df73cab9ff06e4845223923 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 22 Mar 2009 23:39:36 +0000 Subject: [PATCH 009/201] MSVC project files updated for ffmpeg 0.5 and armature. You must also update lib/windows. --- extern/bullet2/make/msvc_9_0/Bullet.vcproj | 4 ++ projectfiles_vc9/blender/blender.vcproj | 4 +- projectfiles_vc9/blender/src/BL_src.vcproj | 41 +++++++++++++++++-- .../gameplayer/ghost/GP_ghost.vcproj | 4 +- .../PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj | 13 +++--- 5 files changed, 52 insertions(+), 14 deletions(-) diff --git a/extern/bullet2/make/msvc_9_0/Bullet.vcproj b/extern/bullet2/make/msvc_9_0/Bullet.vcproj index 6ec064913a5..3130835fdc8 100644 --- a/extern/bullet2/make/msvc_9_0/Bullet.vcproj +++ b/extern/bullet2/make/msvc_9_0/Bullet.vcproj @@ -444,6 +444,10 @@ + + diff --git a/projectfiles_vc9/blender/blender.vcproj b/projectfiles_vc9/blender/blender.vcproj index a8c5fb0a5b5..03f57a90c44 100644 --- a/projectfiles_vc9/blender/blender.vcproj +++ b/projectfiles_vc9/blender/blender.vcproj @@ -73,7 +73,7 @@ @@ -172,10 +173,6 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > - - @@ -336,6 +333,18 @@ RelativePath="..\..\..\source\blender\src\editarmature.c" > + + + + + + @@ -865,6 +874,10 @@ RelativePath="..\..\..\source\blender\include\BDR_sculptmode.h" > + + @@ -989,6 +1002,10 @@ RelativePath="..\..\..\source\blender\include\BIF_fsmenu.h" > + + @@ -1049,6 +1066,10 @@ RelativePath="..\..\..\source\blender\include\BIF_outliner.h" > + + @@ -1069,6 +1090,10 @@ RelativePath="..\..\..\source\blender\include\BIF_resources.h" > + + @@ -1081,6 +1106,10 @@ RelativePath="..\..\..\source\blender\include\BIF_screen.h" > + + @@ -1109,6 +1138,10 @@ RelativePath="..\..\..\source\blender\include\BIF_usiblender.h" > + + diff --git a/projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj b/projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj index fe20152388a..9fa3751c436 100644 --- a/projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj +++ b/projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj @@ -72,7 +72,7 @@ @@ -41,7 +42,7 @@ Date: Mon, 23 Mar 2009 06:00:21 +0000 Subject: [PATCH 010/201] Speedup for bullet physics mesh conversion Was adding each face with a remove doubles option that made conversion increasingly slower for larger meshes, this would often hang blender when starting with the BGE with larger meshes. Replace btTriangleMesh()->addTriangle() with btTriangleIndexVertexArray() YoFrankie level_1_home.blend starts a third faster, level_nut about twice as fast. - previous commit was also incorrect using the original meshes vert locations rather then the vert locations that came from the derived mesh. - Softbody is relying on removing doubles at 0.01 to give stable results, this no longer works but seems a bit dodgy anyway. Maybe some post-processing filter could fix up a mesh for bullet softbody. --- .../Ketsji/KX_ConvertPhysicsObjects.cpp | 3 + .../Physics/Bullet/CcdPhysicsController.cpp | 298 +++++++++++------- .../Physics/Bullet/CcdPhysicsController.h | 5 +- source/gameengine/Rasterizer/RAS_MeshObject.h | 10 + 4 files changed, 198 insertions(+), 118 deletions(-) diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp index 602486e0017..9b2d7403974 100644 --- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp +++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp @@ -881,6 +881,9 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, { shapeInfo->SetMesh(meshobj, false,false); } + + // Note! since 2.48a bullet mesh conversion has been sped up not to remove doubles + // if softbody needs this there should be some post processing filter for softbody meshes. if (objprop->m_softbody) shapeInfo->setVertexWeldingThreshold(0.01f); //todo: expose this to the UI diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index 61d02847164..35602b4095a 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -16,6 +16,9 @@ subject to the following restrictions: #include "CcdPhysicsController.h" #include "btBulletDynamicsCommon.h" #include "BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h" + +#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h" + #include "PHY_IMotionState.h" #include "CcdPhysicsEnvironment.h" #include "RAS_MeshObject.h" @@ -1276,150 +1279,212 @@ CcdShapeConstructionInfo* CcdShapeConstructionInfo::FindMesh(RAS_MeshObject* mes bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, bool polytope,bool useGimpact) { + int numpolys; + m_useGimpact = useGimpact; // assume no shape information // no support for dynamic change of shape yet assert(IsUnused()); m_shapeType = PHY_SHAPE_NONE; - m_vertexArray.clear(); - m_polygonIndexArray.clear(); m_meshObject = NULL; - if (!meshobj) - return false; - - // Mesh has no polygons! - int numpolys = meshobj->NumPolygons(); - if (!numpolys) - { + // No mesh object or mesh has no polys + if (!meshobj || meshobj->HasColliderPolygon()==false) { + m_vertexArray.clear(); + m_polygonIndexArray.clear(); + m_triFaceArray.clear(); return false; } - // check that we have at least one colliding polygon - int numvalidpolys = 0; - - for (int p=0; pGetPolygon(p); - - // only add polygons that have the collisionflag set - if (poly->IsCollider()) - { - numvalidpolys++; - break; - } - } - - // No collision polygons - if (numvalidpolys < 1) - return false; + numpolys = meshobj->NumPolygons(); m_shapeType = (polytope) ? PHY_SHAPE_POLYTOPE : PHY_SHAPE_MESH; - numvalidpolys = 0; + /* Convert blender geometry into bullet mesh, need these vars for mapping */ + vector vert_tag_array(meshobj->GetMesh()->totvert, false); + unsigned int tot_bt_verts= 0; + unsigned int orig_index; + int i; if (polytope) { - Mesh *blen_mesh= meshobj->GetMesh(); - vector vuser_array(blen_mesh->totvert, false); - - unsigned int tot_bt_verts= 0; - unsigned int orig_index; - int i; - // Tag verts we're using for (int p2=0; p2GetPolygon(p2); - - // only add polygons that have the collisionflag set + + // only add polygons that have the collision flag set if (poly->IsCollider()) { - for (i=0;iVertexCount();i++) - { + for(i=0; iVertexCount(); i++) { orig_index= poly->GetVertex(i)->getOrigIndex(); - - if (vuser_array[orig_index]==false) + if (vert_tag_array[orig_index]==false) { - vuser_array[orig_index]= true; + vert_tag_array[orig_index]= true; tot_bt_verts++; } } } } - + m_vertexArray.resize(tot_bt_verts); - - // Copy used verts directly from the meshes vert location to the bullet vector array - MVert *mv= blen_mesh->mvert; + btVector3 *bt= &m_vertexArray[0]; - - for (i=0;isetX( mv->co[0] ); - bt->setY( mv->co[1] ); - bt->setZ( mv->co[2] ); - bt++; - } - } - numvalidpolys++; - } - else { + for (int p2=0; p2GetPolygon(p2); + RAS_Polygon* poly= meshobj->GetPolygon(p2); // only add polygons that have the collisionflag set if (poly->IsCollider()) - { - //Bullet can raycast any shape, so - - { - const float* vtx = poly->GetVertex(2)->getXYZ(); - btVector3 vertex0(vtx[0],vtx[1],vtx[2]); + { + for(i=0; iVertexCount(); i++) { + RAS_TexVert *v= poly->GetVertex(i); + orig_index= v->getOrigIndex(); - vtx = poly->GetVertex(1)->getXYZ(); - btVector3 vertex1(vtx[0],vtx[1],vtx[2]); + if (vert_tag_array[orig_index]==true) + { + const float* vtx = v->getXYZ(); + vert_tag_array[orig_index]= false; - vtx = poly->GetVertex(0)->getXYZ(); - btVector3 vertex2(vtx[0],vtx[1],vtx[2]); - - m_vertexArray.push_back(vertex0); - m_vertexArray.push_back(vertex1); - m_vertexArray.push_back(vertex2); - m_polygonIndexArray.push_back(p2); - numvalidpolys++; - } - if (poly->VertexCount() == 4) - { - const float* vtx = poly->GetVertex(3)->getXYZ(); - btVector3 vertex0(vtx[0],vtx[1],vtx[2]); - - vtx = poly->GetVertex(2)->getXYZ(); - btVector3 vertex1(vtx[0],vtx[1],vtx[2]); - - vtx = poly->GetVertex(0)->getXYZ(); - btVector3 vertex2(vtx[0],vtx[1],vtx[2]); - - m_vertexArray.push_back(vertex0); - m_vertexArray.push_back(vertex1); - m_vertexArray.push_back(vertex2); - m_polygonIndexArray.push_back(p2); - numvalidpolys++; + bt->setX(vtx[0]); bt->setY(vtx[1]); bt->setZ(vtx[2]); + bt++; + } } } } } + else { + unsigned int tot_bt_tris= 0; + vector vert_remap_array(meshobj->GetMesh()->totvert, 0); + + // Tag verts we're using + for (int p2=0; p2GetPolygon(p2); - if (!numvalidpolys) + // only add polygons that have the collision flag set + if (poly->IsCollider()) + { + for(i=0; iVertexCount(); i++) { + orig_index= poly->GetVertex(i)->getOrigIndex(); + if (vert_tag_array[orig_index]==false) + { + vert_tag_array[orig_index]= true; + vert_remap_array[orig_index]= tot_bt_verts; + tot_bt_verts++; + } + } + + tot_bt_tris += (i==4 ? 2:1); /* a quad or a tri */ + } + } + + m_vertexArray.resize(tot_bt_verts); + m_polygonIndexArray.resize(tot_bt_tris); + m_triFaceArray.resize(tot_bt_tris*3); + + btVector3 *bt= &m_vertexArray[0]; + int *poly_index_pt= &m_polygonIndexArray[0]; + int *tri_pt= &m_triFaceArray[0]; + + + for (int p2=0; p2GetPolygon(p2); + + // only add polygons that have the collisionflag set + if (poly->IsCollider()) + { + RAS_TexVert *v1= poly->GetVertex(0); + RAS_TexVert *v2= poly->GetVertex(1); + RAS_TexVert *v3= poly->GetVertex(2); + int i1= v1->getOrigIndex(); + int i2= v2->getOrigIndex(); + int i3= v3->getOrigIndex(); + const float* vtx; + + // the face indicies + tri_pt[0]= vert_remap_array[i1]; + tri_pt[1]= vert_remap_array[i2]; + tri_pt[2]= vert_remap_array[i3]; + tri_pt= tri_pt+3; + + // m_polygonIndexArray + *poly_index_pt= p2; + poly_index_pt++; + + // the vertex location + if (vert_tag_array[i1]==true) { /* *** v1 *** */ + vert_tag_array[i1]= false; + vtx = v1->getXYZ(); + bt->setX(vtx[0]); bt->setY( vtx[1]); bt->setZ(vtx[2]); + bt++; + } + if (vert_tag_array[i2]==true) { /* *** v2 *** */ + vert_tag_array[i2]= false; + vtx = v2->getXYZ(); + bt->setX(vtx[0]); bt->setY(vtx[1]); bt->setZ(vtx[2]); + bt++; + } + if (vert_tag_array[i3]==true) { /* *** v3 *** */ + vert_tag_array[i3]= false; + vtx = v3->getXYZ(); + bt->setX(vtx[0]); bt->setY(vtx[1]); bt->setZ(vtx[2]); + bt++; + } + + if (poly->VertexCount()==4) + { + RAS_TexVert *v4= poly->GetVertex(3); + int i4= v4->getOrigIndex(); + + tri_pt[0]= vert_remap_array[i1]; + tri_pt[1]= vert_remap_array[i3]; + tri_pt[2]= vert_remap_array[i4]; + tri_pt= tri_pt+3; + + // m_polygonIndexArray + *poly_index_pt= p2; + poly_index_pt++; + + // the vertex location + if (vert_tag_array[i4]==true) { /* *** v4 *** */ + vert_tag_array[i4]= false; + vtx = v4->getXYZ(); + bt->setX(vtx[0]); bt->setY(vtx[1]); bt->setZ(vtx[2]); + bt++; + } + } + } + } + + + /* If this ever gets confusing, print out an OBJ file for debugging */ +#if 0 + printf("# vert count %d\n", m_vertexArray.size()); + for(i=0; iaddTriangle(m_vertexArray[i+2],m_vertexArray[i+1],m_vertexArray[i],removeDuplicateVertices); - } - - btGImpactMeshShape* gimpactShape = new btGImpactMeshShape(collisionMeshData); + btGImpactMeshShape* gimpactShape = new btGImpactMeshShape(indexVertexArrays); collisionShape = gimpactShape; gimpactShape->updateBound(); @@ -1505,17 +1568,18 @@ btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape() { if (!m_unscaledShape) { - collisionMeshData = new btTriangleMesh(true,false); - collisionMeshData->m_weldingThreshold = m_weldingThreshold; - - bool removeDuplicateVertices=true; - // m_vertexArray is necessarily a multiple of 3 - for (int i=0;iaddTriangle(m_vertexArray[i+2],m_vertexArray[i+1],m_vertexArray[i],removeDuplicateVertices); - } + + btTriangleIndexVertexArray* indexVertexArrays = new btTriangleIndexVertexArray( + m_polygonIndexArray.size(), + &m_triFaceArray[0], + 3*sizeof(int), + m_vertexArray.size(), + (btScalar*) &m_vertexArray[0].x(), + sizeof(btVector3) + ); + // this shape will be shared and not deleted until shapeInfo is deleted - m_unscaledShape = new btBvhTriangleMeshShape( collisionMeshData, true ); + m_unscaledShape = new btBvhTriangleMeshShape( indexVertexArrays, true ); m_unscaledShape->recalcLocalAabb(); } collisionShape = new btScaledBvhTriangleMeshShape(m_unscaledShape, btVector3(1.0f,1.0f,1.0f)); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index deb3c0880e9..67dd82db5cc 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -167,6 +167,9 @@ public: std::vector m_polygonIndexArray; // Contains the array of polygon index in the // original mesh that correspond to shape triangles. // only set for concave mesh shape. + + std::vector m_triFaceArray; // Contains an array of triplets of face indicies + // quads turn into 2 tris void setVertexWeldingThreshold(float threshold) { @@ -185,7 +188,7 @@ protected: // the actual shape is of type btScaledBvhTriangleMeshShape std::vector m_shapeArray; // for compound shapes bool m_useGimpact; //use gimpact for concave dynamic/moving collision detection - float m_weldingThreshold; //welding closeby vertices together can improve softbody stability etc. + float m_weldingThreshold; //welding closeby vertices together can improve softbody stability etc. // Not used at the moment, maybe remove? CcdShapeConstructionInfo* m_shapeProxy; // only used for PHY_SHAPE_PROXY, pointer to actual shape info }; diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.h b/source/gameengine/Rasterizer/RAS_MeshObject.h index 0d35a2f402b..404b7f16a59 100644 --- a/source/gameengine/Rasterizer/RAS_MeshObject.h +++ b/source/gameengine/Rasterizer/RAS_MeshObject.h @@ -147,6 +147,16 @@ public: /* polygon sorting by Z for alpha */ void SortPolygons(RAS_MeshSlot& ms, const MT_Transform &transform); + + bool HasColliderPolygon() { + int numpolys= NumPolygons(); + for (int p=0; pIsCollider()) + return true; + + return false; + } + /* for construction to find shared vertices */ struct SharedVertex { RAS_DisplayArray *m_darray; From c56188680945a61297d88d3ccc36cafe83c3c609 Mon Sep 17 00:00:00 2001 From: Stefan Gartner Date: Mon, 23 Mar 2009 17:50:41 +0000 Subject: [PATCH 011/201] irix/scons: use $LCGDIR/sdl instead of $LCGDIR/SDL. Fixed bug #18293: SDL files under lib for irix-6.5-mips are included twice --- config/irix6-config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/irix6-config.py b/config/irix6-config.py index 81a301fbb03..8be12d649bf 100644 --- a/config/irix6-config.py +++ b/config/irix6-config.py @@ -34,7 +34,7 @@ WITH_BF_STATICCXX = 'false' BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a' WITH_BF_SDL = 'true' -BF_SDL = LCGDIR+'/SDL' #$(shell sdl-config --prefix) +BF_SDL = LCGDIR+'/sdl' #$(shell sdl-config --prefix) BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIB = 'SDL audio iconv charset' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer BF_SDL_LIBPATH = '${BF_SDL}/lib' From 617bb7ac4598d281db6335520ae1bf423d87a1c6 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Mon, 23 Mar 2009 18:11:46 +0000 Subject: [PATCH 012/201] Another patch by GSR Just some minor cleanups. Kent --- source/creator/Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/creator/Makefile b/source/creator/Makefile index 97bfbeb5eb0..ee52ee90edf 100644 --- a/source/creator/Makefile +++ b/source/creator/Makefile @@ -1,3 +1,5 @@ +# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*- +# vim: tabstop=8 # # $Id$ # @@ -22,7 +24,7 @@ # # The Original Code is: all of this file. # -# Contributor(s): none yet. +# Contributor(s): GSR # # ***** END GPL LICENSE BLOCK ***** # @@ -43,6 +45,7 @@ CPPFLAGS += -I../blender/radiosity/extern/include # two needed for the kernel CPPFLAGS += -I../blender/imbuf CPPFLAGS += -I../blender/makesdna +CPPFLAGS += -I../blender/makesrna CPPFLAGS += -I../blender/blenlib CPPFLAGS += -I../blender/include CPPFLAGS += -I../blender/renderconverter @@ -56,14 +59,14 @@ CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include CPPFLAGS += -I$(NAN_GLEW)/include ifeq ($(WITH_QUICKTIME), true) - CPPFLAGS += -I$(NAN_QUICKTIME)/include -DWITH_QUICKTIME + CPPFLAGS += -I$(NAN_QUICKTIME)/include -DWITH_QUICKTIME endif ifeq ($(WITH_OPENJPEG), true) - CPPFLAGS += -DWITH_OPENJPEG + CPPFLAGS += -DWITH_OPENJPEG endif ifeq ($(WITH_BINRELOC), true) - CPPFLAGS += -I$(NANBLENDERHOME)/extern/binreloc/include -DWITH_BINRELOC + CPPFLAGS += -I$(NANBLENDERHOME)/extern/binreloc/include -DWITH_BINRELOC endif CPPFLAGS += -I$(OPENGL_HEADERS) From 80319e5b518c689a4ac37da84aa533f36b1a261a Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Mon, 23 Mar 2009 19:52:49 +0000 Subject: [PATCH 013/201] Added BF_PROFILE (same name as in scons files) option. Set it to true to build with -pg Also I added CCFLAGS to final link of targets. Not sure why it wasn't there before. Kent --- source/Makefile | 10 +++++----- source/nan_compile.mk | 5 +++++ source/nan_definitions.mk | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/source/Makefile b/source/Makefile index 8811ab86911..239ca9e0d1b 100644 --- a/source/Makefile +++ b/source/Makefile @@ -520,7 +520,7 @@ ifdef NAN_BUILDINFO $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"static"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin - $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderstatic $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(LLIBS) $(SADD) $(LOPTS) + $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderstatic $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(LLIBS) $(SADD) $(LOPTS) ifdef NAN_BUILDINFO /bin/rm $(BUILDINFO_O) endif @@ -534,7 +534,7 @@ ifdef NAN_BUILDINFO $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin - $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blender$(EXT) $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(LLIBS) $(DADD) $(LOPTS) + $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blender$(EXT) $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(LLIBS) $(DADD) $(LOPTS) ifdef NAN_BUILDINFO /bin/rm $(BUILDINFO_O) endif @@ -548,7 +548,7 @@ ifdef NAN_BUILDINFO $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin - $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) + $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) ifdef NAN_BUILDINFO /bin/rm $(BUILDINFO_O) endif @@ -562,7 +562,7 @@ ifdef NAN_BUILDINFO $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin - $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderdynplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) + $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderdynplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) ifdef NAN_BUILDINFO /bin/rm $(BUILDINFO_O) endif @@ -576,7 +576,7 @@ ifdef NAN_BUILDINFO $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin - $(CCC) $(DYNLDFLAGS) -o $@ $(PLUGAPPLIB_XPLINK) $(LOPTS) + $(CCC) $(CCFLAGS) $(DYNLDFLAGS) -o $@ $(PLUGAPPLIB_XPLINK) $(LOPTS) ifdef NAN_BUILDINFO /bin/rm $(BUILDINFO_O) endif diff --git a/source/nan_compile.mk b/source/nan_compile.mk index 19d833b5b0d..a6dcfc21b5f 100644 --- a/source/nan_compile.mk +++ b/source/nan_compile.mk @@ -47,6 +47,11 @@ else CPPFLAGS += -DNO_KETSJI endif +ifeq ($(BF_PROFILE), true) + CFLAGS += -pg + CCFLAGS += -pg +endif + ifeq ($(WITH_BF_OPENMP), true) CFLAGS += -fopenmp CCFLAGS += -fopenmp diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index cc7561ff9b1..7a709c11432 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -75,6 +75,7 @@ else export NAN_SOLID ?= $(LCGDIR)/solid export NAN_QHULL ?= $(LCGDIR)/qhull endif + export BF_PROFILE ?= false export NAN_USE_BULLET ?= true export NAN_BULLET2 ?= $(LCGDIR)/bullet2 export NAN_SUMO ?= $(SRCHOME)/gameengine/Physics/Sumo From 5e44eba342190fe39332591a1e897a35658951c8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Mar 2009 03:53:20 +0000 Subject: [PATCH 014/201] fix for [18443] Object.GetSelected() returns empty when run from command line --- source/blender/python/api2_2x/Object.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/source/blender/python/api2_2x/Object.c b/source/blender/python/api2_2x/Object.c index 1282b9bd82c..fd2301bfae4 100644 --- a/source/blender/python/api2_2x/Object.c +++ b/source/blender/python/api2_2x/Object.c @@ -945,17 +945,13 @@ static PyObject *M_Object_GetSelected( PyObject * self_unused ) PyObject *blen_object; PyObject *list; Base *base_iter; - + unsigned int lay = G.vd ? G.vd->lay : G.scene->lay; + list = PyList_New( 0 ); - - if( G.vd == NULL ) { - /* No 3d view has been initialized yet, simply return an empty list */ - return list; - } if( ( G.scene->basact ) && ( ( G.scene->basact->flag & SELECT ) && - ( G.scene->basact->lay & G.vd->lay ) ) ) { + ( G.scene->basact->lay & lay ) ) ) { /* Active object is first in the list. */ blen_object = Object_CreatePyObject( G.scene->basact->object ); @@ -970,7 +966,7 @@ static PyObject *M_Object_GetSelected( PyObject * self_unused ) base_iter = G.scene->base.first; while( base_iter ) { if( ( ( base_iter->flag & SELECT ) && - ( base_iter->lay & G.vd->lay ) ) && + ( base_iter->lay & lay ) ) && ( base_iter != G.scene->basact ) ) { blen_object = Object_CreatePyObject( base_iter->object ); From 688db0f25169a4270c2d7250a7eb200bf2ab0ae0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Mar 2009 09:09:10 +0000 Subject: [PATCH 015/201] [#18260] FMOD Removal from Jorg Muller (nexyon) also removed references to CVS in install --- config/darwin-config.py | 3 -- config/irix6-config.py | 3 -- config/linux2-config.py | 3 -- config/linuxcross-config.py | 3 -- config/openbsd3-config.py | 3 -- config/sunos5-config.py | 3 -- config/win32-mingw-config.py | 3 -- config/win32-vc-config.py | 3 -- intern/SoundSystem/Makefile | 1 - intern/SoundSystem/SND_DependKludge.h | 3 -- intern/SoundSystem/SoundDefines.h | 10 ---- intern/SoundSystem/dummy/SND_DummyDevice.cpp | 2 +- intern/SoundSystem/intern/Makefile | 2 - .../SoundSystem/intern/SND_DeviceManager.cpp | 15 ------ intern/SoundSystem/intern/SND_Scene.cpp | 23 -------- intern/SoundSystem/intern/SND_Utils.cpp | 32 ------------ .../SoundSystem/openal/SND_OpenALDevice.cpp | 2 +- release/windows/specific.sh | 4 -- source/Makefile | 2 +- source/blender/include/BIF_editsound.h | 1 - source/blender/src/buttons_scene.c | 8 +-- source/blender/src/editsound.c | 52 +------------------ source/nan_definitions.mk | 9 ---- tools/btools.py | 4 -- 24 files changed, 6 insertions(+), 188 deletions(-) diff --git a/config/darwin-config.py b/config/darwin-config.py index 39c9b9df4ff..04a44372383 100644 --- a/config/darwin-config.py +++ b/config/darwin-config.py @@ -106,9 +106,6 @@ BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer BF_SDL_LIBPATH = '${BF_SDL}/lib' -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = '${LCGDIR}/openexr' diff --git a/config/irix6-config.py b/config/irix6-config.py index 8be12d649bf..2c57a2bba8a 100644 --- a/config/irix6-config.py +++ b/config/irix6-config.py @@ -39,9 +39,6 @@ BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIB = 'SDL audio iconv charset' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer BF_SDL_LIBPATH = '${BF_SDL}/lib' -WITH_BF_FMOD = 'false' -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = 'false' WITH_BF_STATICOPENEXR = 'false' BF_OPENEXR = '/usr' diff --git a/config/linux2-config.py b/config/linux2-config.py index 102bb2e5e4c..b2f4066e0ed 100644 --- a/config/linux2-config.py +++ b/config/linux2-config.py @@ -34,9 +34,6 @@ BF_SDL = '/usr' #$(shell sdl-config --prefix) BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = '/usr' diff --git a/config/linuxcross-config.py b/config/linuxcross-config.py index 5981c8b96e5..ac9e8bc23a5 100644 --- a/config/linuxcross-config.py +++ b/config/linuxcross-config.py @@ -38,9 +38,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include' BF_PTHREADS_LIB = 'pthreadGC2' BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib' -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = LIBDIR + '/gcc/openexr' diff --git a/config/openbsd3-config.py b/config/openbsd3-config.py index 8fc334874f9..3a36f8df663 100644 --- a/config/openbsd3-config.py +++ b/config/openbsd3-config.py @@ -22,9 +22,6 @@ BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer BF_SDL_LIBPATH = '${BF_SDL}/lib' -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = False WITH_BF_STATICOPENEXR = False BF_OPENEXR = '/usr/local' diff --git a/config/sunos5-config.py b/config/sunos5-config.py index dda7d0ff2f3..6fa9529e1cd 100644 --- a/config/sunos5-config.py +++ b/config/sunos5-config.py @@ -28,9 +28,6 @@ BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags) BF_SDL_LIBPATH = '${BF_SDL}/lib' BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = '/usr/local' diff --git a/config/win32-mingw-config.py b/config/win32-mingw-config.py index b94747637e9..a102c423fb5 100644 --- a/config/win32-mingw-config.py +++ b/config/win32-mingw-config.py @@ -38,9 +38,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include' BF_PTHREADS_LIB = 'pthreadGC2' BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib' -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = LIBDIR + '/gcc/openexr' diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py index d4e9fa9b30e..6e56af2d95e 100644 --- a/config/win32-vc-config.py +++ b/config/win32-vc-config.py @@ -49,9 +49,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include' BF_PTHREADS_LIB = 'pthreadVC2' BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib' -WITH_BF_FMOD = False -BF_FMOD = LIBDIR + '/fmod' - WITH_BF_OPENEXR = True WITH_BF_STATICOPENEXR = False BF_OPENEXR = LIBDIR + '/openexr' diff --git a/intern/SoundSystem/Makefile b/intern/SoundSystem/Makefile index 051e2643a87..4e5a8363955 100644 --- a/intern/SoundSystem/Makefile +++ b/intern/SoundSystem/Makefile @@ -38,7 +38,6 @@ DIRS += dummy ifneq ($(NAN_NO_OPENAL),true) ifeq ($(OS),windows) - DIRS += fmod DIRS += openal sdl endif ifeq ($(OS),darwin) diff --git a/intern/SoundSystem/SND_DependKludge.h b/intern/SoundSystem/SND_DependKludge.h index 1a95f977abe..06d4ec9c0c9 100644 --- a/intern/SoundSystem/SND_DependKludge.h +++ b/intern/SoundSystem/SND_DependKludge.h @@ -43,9 +43,6 @@ # ifdef USE_OPENAL # undef USE_OPENAL # endif -# ifdef USE_FMOD -# undef USE_FMOD -# endif #endif #endif /* NO_SOUND */ diff --git a/intern/SoundSystem/SoundDefines.h b/intern/SoundSystem/SoundDefines.h index 450fde187b5..5238507c866 100644 --- a/intern/SoundSystem/SoundDefines.h +++ b/intern/SoundSystem/SoundDefines.h @@ -38,7 +38,6 @@ enum { snd_e_dummydevice = 0, - snd_e_fmoddevice, snd_e_openaldevice }; @@ -49,15 +48,6 @@ enum /* openal related stuff */ #define AL_LOOPING 0x1007 -/* fmod related stuff */ -#ifdef WIN32 -#define MIXRATE 22050 -#else -#define MIXRATE 44100 -#endif -#define NUM_FMOD_MIN_HW_CHANNELS 16 -#define NUM_FMOD_MAX_HW_CHANNELS 16 - /* activelist defines */ enum { diff --git a/intern/SoundSystem/dummy/SND_DummyDevice.cpp b/intern/SoundSystem/dummy/SND_DummyDevice.cpp index 3e5874f02ca..672c73e9c52 100644 --- a/intern/SoundSystem/dummy/SND_DummyDevice.cpp +++ b/intern/SoundSystem/dummy/SND_DummyDevice.cpp @@ -25,7 +25,7 @@ * Contributor(s): none yet. * * ***** END GPL LICENSE BLOCK ***** - * SND_FmodDevice derived from SND_IAudioDevice + * SND_DummyDevice derived from SND_IAudioDevice */ #ifdef HAVE_CONFIG_H diff --git a/intern/SoundSystem/intern/Makefile b/intern/SoundSystem/intern/Makefile index c52be01f69f..7684b6b0bca 100644 --- a/intern/SoundSystem/intern/Makefile +++ b/intern/SoundSystem/intern/Makefile @@ -35,12 +35,10 @@ include nan_compile.mk CCFLAGS += $(LEVEL_1_CPP_WARNINGS) -CPPFLAGS += -I$(NAN_FMOD)/include CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_MOTO)/include CPPFLAGS += -I../../../source/blender/include CPPFLAGS += -I../dummy -CPPFLAGS += -I../fmod CPPFLAGS += -I../openal CPPFLAGS += -I.. CPPFLAGS += -I. diff --git a/intern/SoundSystem/intern/SND_DeviceManager.cpp b/intern/SoundSystem/intern/SND_DeviceManager.cpp index 215c0f5b6fa..c4bc887dffe 100644 --- a/intern/SoundSystem/intern/SND_DeviceManager.cpp +++ b/intern/SoundSystem/intern/SND_DeviceManager.cpp @@ -38,9 +38,6 @@ #include "SND_DeviceManager.h" #include "SND_DependKludge.h" #include "SND_DummyDevice.h" -#ifdef USE_FMOD -#include "SND_FmodDevice.h" -#endif #ifdef USE_OPENAL #include "SND_OpenALDevice.h" #endif @@ -51,11 +48,7 @@ int SND_DeviceManager::m_subscriptions = 0; #ifdef USE_OPENAL int SND_DeviceManager::m_device_type = snd_e_openaldevice; #else -# ifdef USE_FMOD -int SND_DeviceManager::m_device_type = snd_e_fmoddevice; -# else int SND_DeviceManager::m_device_type = snd_e_dummydevice; -# endif #endif void SND_DeviceManager::Subscribe() @@ -115,14 +108,6 @@ void SND_DeviceManager::SetDeviceType(int device_type) // let's create the chosen device switch (device_type) { -#ifdef USE_FMOD - case snd_e_fmoddevice: - { - m_instance = new SND_FmodDevice(); - m_device_type = device_type; - break; - } -#endif #ifdef USE_OPENAL case snd_e_openaldevice: { diff --git a/intern/SoundSystem/intern/SND_Scene.cpp b/intern/SoundSystem/intern/SND_Scene.cpp index 9d050a81161..af1b43a08aa 100644 --- a/intern/SoundSystem/intern/SND_Scene.cpp +++ b/intern/SoundSystem/intern/SND_Scene.cpp @@ -217,14 +217,8 @@ void SND_Scene::UpdateListener() if (m_listener.IsModified()) { m_audiodevice->SetListenerGain(m_listener.GetGain()); - - // fmod doesn't support dopplervelocity, so just use the dopplerfactor instead -#ifdef USE_FMOD - m_audiodevice->SetDopplerFactor(m_listener.GetDopplerVelocity()); -#else m_audiodevice->SetDopplerVelocity(m_listener.GetDopplerVelocity()); m_audiodevice->SetDopplerFactor(m_listener.GetDopplerFactor()); -#endif m_listener.SetModified(false); } } @@ -304,23 +298,6 @@ void SND_Scene::UpdateActiveObects() if (id >= 0) { -#ifdef USE_FMOD - // fmod wants these set before playing the sample - if (pObject->IsModified()) - { - m_audiodevice->SetObjectLoop(id, pObject->GetLoopMode()); - m_audiodevice->SetObjectLoopPoints(id, pObject->GetLoopStart(), pObject->GetLoopEnd()); - } - - // ok, properties Set. now see if it must play - if (pObject->GetPlaystate() == SND_MUST_PLAY) - { - m_audiodevice->PlayObject(id); - pObject->SetPlaystate(SND_PLAYING); - pObject->InitRunning(); -// printf("start play: %d\n", tijd); - } -#endif if (pObject->Is3D()) { // Get the global positions and velocity vectors diff --git a/intern/SoundSystem/intern/SND_Utils.cpp b/intern/SoundSystem/intern/SND_Utils.cpp index 26ce106a24e..7890d2a3d63 100644 --- a/intern/SoundSystem/intern/SND_Utils.cpp +++ b/intern/SoundSystem/intern/SND_Utils.cpp @@ -158,39 +158,7 @@ bool SND_IsSampleValid(const STR_String& name, void* memlocation) if (shortbuf == SND_WAVE_FORMAT_PCM) result = true; - - /* only fmod supports compressed wav */ -#ifdef USE_FMOD - switch (shortbuf) - { - case SND_WAVE_FORMAT_ADPCM: - case SND_WAVE_FORMAT_ALAW: - case SND_WAVE_FORMAT_MULAW: - case SND_WAVE_FORMAT_DIALOGIC_OKI_ADPCM: - case SND_WAVE_FORMAT_CONTROL_RES_VQLPC: - case SND_WAVE_FORMAT_GSM_610: - case SND_WAVE_FORMAT_MPEG3: - result = true; - break; - default: - { - break; - } - } -#endif } -#ifdef USE_FMOD - /* only valid publishers may use ogg vorbis */ - else if (!memcmp(buffer, "OggS", 4)) - { - result = true; - } - /* only valid publishers may use mp3 */ - else if (((!memcmp(buffer, "ID3", 3)) || (!memcmp(buffer, "ÿû", 2)))) - { - result = true; - } -#endif } if (loadedsample) { diff --git a/intern/SoundSystem/openal/SND_OpenALDevice.cpp b/intern/SoundSystem/openal/SND_OpenALDevice.cpp index 9ce30f985ac..3649cf6de5a 100644 --- a/intern/SoundSystem/openal/SND_OpenALDevice.cpp +++ b/intern/SoundSystem/openal/SND_OpenALDevice.cpp @@ -316,7 +316,7 @@ SND_OpenALDevice::SND_OpenALDevice() void SND_OpenALDevice::UseCD(void) const { - // only fmod has CD support, so only create it here + // we use SDL for CD, so we create the system SND_CDObject::CreateSystem(); } diff --git a/release/windows/specific.sh b/release/windows/specific.sh index e3ecfcb959f..5df90869914 100755 --- a/release/windows/specific.sh +++ b/release/windows/specific.sh @@ -60,10 +60,6 @@ chmod +x $DISTDIR/python$PVERS.dll #Add pthreads dll to package cp -f $NAN_PTHREADS/lib/pthreadGC2.dll $DISTDIR/pthreadGC2.dll -# Add fmod DLL to package -# cp -f $NAN_FMOD/lib/fmod.dll $DISTDIR/fmod.dll -# chmod +x $DISTDIR/fmod.dll - # Add gettext DLL to package cp -f $NAN_GETTEXT/lib/gnu_gettext.dll $DISTDIR/gnu_gettext.dll diff --git a/source/Makefile b/source/Makefile index 239ca9e0d1b..d8dee601998 100644 --- a/source/Makefile +++ b/source/Makefile @@ -337,7 +337,7 @@ ifeq ($(OS),solaris) SPLIB += $(NAN_ZLIB)/lib/libz.a endif -# OpenAL libs are already compiled as shared code! Check FMod if we switch to that. (nzc) +# OpenAL libs are already compiled as shared code! # Some vars to keep the rest of this section mostly readable # in an 80 char term diff --git a/source/blender/include/BIF_editsound.h b/source/blender/include/BIF_editsound.h index 6561b3e6849..e04bd43307e 100644 --- a/source/blender/include/BIF_editsound.h +++ b/source/blender/include/BIF_editsound.h @@ -39,7 +39,6 @@ struct hdaudio; void sound_init_audio(void); void sound_initialize_sounds(void); void sound_exit_audio(void); -int sound_get_mixrate(void); void* sound_get_audiodevice(void); void* sound_get_listener(void); diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index be988c5a68a..aa072285556 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -296,17 +296,11 @@ void do_soundbuts(unsigned short event) static void sound_panel_listener(void) { uiBlock *block; - int xco= 100, yco=100, mixrate; - char mixrateinfo[256]; + int xco= 100, yco=100; block= uiNewBlock(&curarea->uiblocks, "sound_panel_listener", UI_EMBOSS, UI_HELV, curarea->win); if(uiNewPanel(curarea, block, "Listener", "Sound", 320, 0, 318, 204)==0) return; - mixrate = sound_get_mixrate(); - sprintf(mixrateinfo, "Game Mixrate: %d Hz", mixrate); - uiDefBut(block, LABEL, 0, mixrateinfo, xco,yco,295,20, 0, 0, 0, 0, 0, ""); - - yco -= 30; uiDefBut(block, LABEL, 0, "Game listener settings:",xco,yco,195,20, 0, 0, 0, 0, 0, ""); yco -= 30; diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c index 95b3a3d3021..71187f6bd8b 100644 --- a/source/blender/src/editsound.c +++ b/source/blender/src/editsound.c @@ -530,38 +530,11 @@ static int sound_get_filetype_from_header(bSound *sound, PackedFile *pf) filetype = SAMPLE_WAV; } else - /* only fmod supports compressed wav */ -#ifdef USE_FMOD { - /* and only valid publishers may use compressed wav */ - switch (shortbuf) - { - case SND_WAVE_FORMAT_ADPCM: - case SND_WAVE_FORMAT_ALAW: - case SND_WAVE_FORMAT_MULAW: - case SND_WAVE_FORMAT_DIALOGIC_OKI_ADPCM: - case SND_WAVE_FORMAT_CONTROL_RES_VQLPC: - case SND_WAVE_FORMAT_GSM_610: - case SND_WAVE_FORMAT_MPEG3: - filetype = SAMPLE_WAV; - break; - default: -#endif - { - filetype = SAMPLE_INVALID; - if (G.f & G_DEBUG) printf("Unsupported wav compression\n"); - } - } -#ifdef USE_FMOD + filetype = SAMPLE_INVALID; + if (G.f & G_DEBUG) printf("Unsupported wav compression\n"); } } - else if (!memcmp(buffer, "OggS", 4)) { - filetype = SAMPLE_OGG_VORBIS; - } - else if ((!memcmp(buffer, "ID3", 3)) || (!memcmp(buffer, "", 2))) { - filetype = SAMPLE_MP3; - } -#endif else { filetype = SAMPLE_INVALID; if (G.f & G_DEBUG) printf("Unsupported sound format: %s\n", sound->name); @@ -583,21 +556,6 @@ static int check_filetype(bSound *sound, PackedFile *pf) // a simple check to see what kind of sample we're dealing with if (stricmp(pdest, ".wav") == 0) sound->sample->type = SAMPLE_WAV; - -#ifdef USE_FMOD - if (stricmp(pdest, ".mp2") == 0) - sound->sample->type = SAMPLE_MP2; - if (stricmp(pdest, ".mp3") == 0) - sound->sample->type = SAMPLE_MP3; - if (stricmp(pdest, ".ogg") == 0) - sound->sample->type = SAMPLE_OGG_VORBIS; - if (stricmp(pdest, ".raw") == 0) - sound->sample->type = SAMPLE_RAW; - if (stricmp(pdest, ".wma") == 0) - sound->sample->type = SAMPLE_WMA; - if (stricmp(pdest, ".asf") == 0) - sound->sample->type = SAMPLE_ASF; -#endif */ sound->sample->type = sound_get_filetype_from_header(sound, pf); @@ -1061,12 +1019,6 @@ void sound_init_audio(void) } -int sound_get_mixrate(void) -{ - return MIXRATE; -} - - void sound_exit_audio(void) { if(ghSoundScene) { diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index 7a709c11432..70fef129867 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -185,7 +185,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff @@ -239,7 +238,6 @@ endif endif export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff @@ -297,7 +295,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= /usr/local - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= /usr/local export NAN_PNG ?= /usr/local export NAN_TIFF ?= /usr/local @@ -342,7 +339,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a -lpthread export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff @@ -392,7 +388,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= /usr - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= /usr export NAN_PNG ?= /usr export NAN_TIFF ?= /usr @@ -450,7 +445,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff @@ -493,7 +487,6 @@ endif export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= /usr @@ -550,7 +543,6 @@ endif export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include endif export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff @@ -594,7 +586,6 @@ endif export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a export NAN_OPENAL ?= $(LCGDIR)/openal - export NAN_FMOD ?= $(LCGDIR)/fmod export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= $(LCGDIR)/tiff diff --git a/tools/btools.py b/tools/btools.py index 79f4717a262..911376856ad 100755 --- a/tools/btools.py +++ b/tools/btools.py @@ -31,7 +31,6 @@ def validate_arguments(args, bc): 'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC', 'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH', 'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH', - 'WITH_BF_FMOD', 'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC', 'WITH_BF_DDS', 'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG', 'BF_FFMPEG_INC', @@ -190,9 +189,6 @@ def read_opts(cfg, args): ('BF_PTHREADS_LIB', 'Pthreads library', ''), ('BF_PTHREADS_LIBPATH', 'Pthreads library path', ''), - (BoolVariable('WITH_BF_FMOD', 'Use FMOD if true', False)), - # BF_FMOD = $(LCGDIR)/fmod - (BoolVariable('WITH_BF_OPENEXR', 'Use OPENEXR if true', True)), (BoolVariable('WITH_BF_STATICOPENEXR', 'Staticly link to OpenEXR', False)), ('BF_OPENEXR', 'OPENEXR base path', ''), From dbe675195d8f78fb3a5f9b89d0c6b89a47513198 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 24 Mar 2009 13:39:50 +0000 Subject: [PATCH 016/201] Fix for bug #18438: TEX_valToNormal.c array size error. Error pointed out by Dan Eicher, thanks! --- source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c index f63f5682030..0d24652a8f6 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c @@ -45,7 +45,7 @@ static void normalfn(float *out, float *coord, bNode *node, bNodeStack **in, sho float nabla = tex_input_value(in[1], coord, thread); float val; - float nor[2]; + float nor[3]; val = tex_input_value(in[0], coord, thread); From ce8badeb187931cc24d29730d0d10a7242bb7969 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 24 Mar 2009 15:45:08 +0000 Subject: [PATCH 017/201] Fix for bug #18423: BGE lights in overlay scene also affected other scenes, for texture face / multitexture materials. Fix for bug #18428: BGE lights on hidden layers were still used, for all material types, now they have no effect --- .../BlenderRoutines/KX_BlenderRenderTools.cpp | 168 ++++++++++-------- .../BlenderRoutines/KX_BlenderRenderTools.h | 3 +- .../GamePlayer/common/GPC_RenderTools.cpp | 168 ++++++++++-------- .../GamePlayer/common/GPC_RenderTools.h | 3 +- source/gameengine/Ketsji/BL_BlenderShader.cpp | 2 +- source/gameengine/Ketsji/KX_Light.cpp | 1 + .../gameengine/Rasterizer/RAS_IRenderTools.h | 6 +- .../gameengine/Rasterizer/RAS_LightObject.h | 1 + .../Rasterizer/RAS_MaterialBucket.cpp | 10 +- 9 files changed, 197 insertions(+), 165 deletions(-) diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp index 42ad7769cbd..9dbda3f195b 100644 --- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp +++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp @@ -28,6 +28,8 @@ #include "GL/glew.h" +#include "DNA_scene_types.h" + #include "RAS_IRenderTools.h" #include "RAS_IRasterizer.h" #include "RAS_LightObject.h" @@ -67,6 +69,7 @@ void KX_BlenderRenderTools::BeginFrame(RAS_IRasterizer* rasty) m_clientobject = NULL; m_lastlightlayer = -1; m_lastlighting = false; + m_lastauxinfo = NULL; DisableOpenGLLights(); } @@ -80,25 +83,27 @@ void KX_BlenderRenderTools::EndFrame(RAS_IRasterizer* rasty) * has a maximum of 8 lights (simultaneous), so 20 * 8 lights are possible in * a scene. */ -void KX_BlenderRenderTools::ProcessLighting(RAS_IRasterizer *rasty, int layer, const MT_Transform& viewmat) +void KX_BlenderRenderTools::ProcessLighting(RAS_IRasterizer *rasty, bool uselights, const MT_Transform& viewmat) { - if(m_lastlightlayer == layer) + bool enable = false; + int layer= -1; + + /* find the layer */ + if(uselights) { + if(m_clientobject) + layer = static_cast(m_clientobject)->GetLayer(); + } + + /* avoid state switching */ + if(m_lastlightlayer == layer && m_lastauxinfo == m_auxilaryClientInfo) return; m_lastlightlayer = layer; + m_lastauxinfo = m_auxilaryClientInfo; - bool enable = false; - - if (layer >= 0) - { - if (m_clientobject) - { - if (layer == RAS_LIGHT_OBJECT_LAYER) - layer = static_cast(m_clientobject)->GetLayer(); - - enable = applyLights(layer, viewmat); - } - } + /* enable/disable lights as needed */ + if(layer >= 0) + enable = applyLights(layer, viewmat); if(enable) EnableOpenGLLights(rasty); @@ -324,11 +329,16 @@ void KX_BlenderRenderTools::PopMatrix() int KX_BlenderRenderTools::applyLights(int objectlayer, const MT_Transform& viewmat) { // taken from blender source, incompatibility between Blender Object / GameObject + KX_Scene* kxscene = (KX_Scene*)m_auxilaryClientInfo; + int scenelayer = ~0; float glviewmat[16]; unsigned int count; float vec[4]; vec[3]= 1.0; + + if(kxscene && kxscene->GetBlenderScene()) + scenelayer = kxscene->GetBlenderScene()->lay; for(count=0; countm_layer & objectlayer) - { - vec[0] = (*(lightdata->m_worldmatrix))(0,3); - vec[1] = (*(lightdata->m_worldmatrix))(1,3); - vec[2] = (*(lightdata->m_worldmatrix))(2,3); - vec[3] = 1; + KX_Scene* lightscene = (KX_Scene*)lightdata->m_scene; - if(lightdata->m_type==RAS_LightObject::LIGHT_SUN) { - - vec[0] = (*(lightdata->m_worldmatrix))(0,2); - vec[1] = (*(lightdata->m_worldmatrix))(1,2); - vec[2] = (*(lightdata->m_worldmatrix))(2,2); - //vec[0]= base->object->obmat[2][0]; - //vec[1]= base->object->obmat[2][1]; - //vec[2]= base->object->obmat[2][2]; - vec[3]= 0.0; - glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); - } - else { - //vec[3]= 1.0; - glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); - glLightf((GLenum)(GL_LIGHT0+count), GL_CONSTANT_ATTENUATION, 1.0); - glLightf((GLenum)(GL_LIGHT0+count), GL_LINEAR_ATTENUATION, lightdata->m_att1/lightdata->m_distance); - // without this next line it looks backward compatible. - //attennuation still is acceptable - glLightf((GLenum)(GL_LIGHT0+count), GL_QUADRATIC_ATTENUATION, lightdata->m_att2/(lightdata->m_distance*lightdata->m_distance)); - - if(lightdata->m_type==RAS_LightObject::LIGHT_SPOT) { - vec[0] = -(*(lightdata->m_worldmatrix))(0,2); - vec[1] = -(*(lightdata->m_worldmatrix))(1,2); - vec[2] = -(*(lightdata->m_worldmatrix))(2,2); - //vec[0]= -base->object->obmat[2][0]; - //vec[1]= -base->object->obmat[2][1]; - //vec[2]= -base->object->obmat[2][2]; - glLightfv((GLenum)(GL_LIGHT0+count), GL_SPOT_DIRECTION, vec); - glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, lightdata->m_spotsize/2.0); - glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_EXPONENT, 128.0*lightdata->m_spotblend); - } - else glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, 180.0); - } + /* only use lights in the same layer as the object */ + if(!(lightdata->m_layer & objectlayer)) + continue; + /* only use lights in the same scene, and in a visible layer */ + if(kxscene != lightscene || !(lightdata->m_layer & scenelayer)) + continue; + + vec[0] = (*(lightdata->m_worldmatrix))(0,3); + vec[1] = (*(lightdata->m_worldmatrix))(1,3); + vec[2] = (*(lightdata->m_worldmatrix))(2,3); + vec[3] = 1; + + if(lightdata->m_type==RAS_LightObject::LIGHT_SUN) { - if (lightdata->m_nodiffuse) - { - vec[0] = vec[1] = vec[2] = vec[3] = 0.0; - } else { - vec[0]= lightdata->m_energy*lightdata->m_red; - vec[1]= lightdata->m_energy*lightdata->m_green; - vec[2]= lightdata->m_energy*lightdata->m_blue; - vec[3]= 1.0; - } - glLightfv((GLenum)(GL_LIGHT0+count), GL_DIFFUSE, vec); - if (lightdata->m_nospecular) - { - vec[0] = vec[1] = vec[2] = vec[3] = 0.0; - } else if (lightdata->m_nodiffuse) { - vec[0]= lightdata->m_energy*lightdata->m_red; - vec[1]= lightdata->m_energy*lightdata->m_green; - vec[2]= lightdata->m_energy*lightdata->m_blue; - vec[3]= 1.0; - } - glLightfv((GLenum)(GL_LIGHT0+count), GL_SPECULAR, vec); - glEnable((GLenum)(GL_LIGHT0+count)); - - count++; + vec[0] = (*(lightdata->m_worldmatrix))(0,2); + vec[1] = (*(lightdata->m_worldmatrix))(1,2); + vec[2] = (*(lightdata->m_worldmatrix))(2,2); + //vec[0]= base->object->obmat[2][0]; + //vec[1]= base->object->obmat[2][1]; + //vec[2]= base->object->obmat[2][2]; + vec[3]= 0.0; + glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); } + else { + //vec[3]= 1.0; + glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); + glLightf((GLenum)(GL_LIGHT0+count), GL_CONSTANT_ATTENUATION, 1.0); + glLightf((GLenum)(GL_LIGHT0+count), GL_LINEAR_ATTENUATION, lightdata->m_att1/lightdata->m_distance); + // without this next line it looks backward compatible. + //attennuation still is acceptable + glLightf((GLenum)(GL_LIGHT0+count), GL_QUADRATIC_ATTENUATION, lightdata->m_att2/(lightdata->m_distance*lightdata->m_distance)); + + if(lightdata->m_type==RAS_LightObject::LIGHT_SPOT) { + vec[0] = -(*(lightdata->m_worldmatrix))(0,2); + vec[1] = -(*(lightdata->m_worldmatrix))(1,2); + vec[2] = -(*(lightdata->m_worldmatrix))(2,2); + //vec[0]= -base->object->obmat[2][0]; + //vec[1]= -base->object->obmat[2][1]; + //vec[2]= -base->object->obmat[2][2]; + glLightfv((GLenum)(GL_LIGHT0+count), GL_SPOT_DIRECTION, vec); + glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, lightdata->m_spotsize/2.0); + glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_EXPONENT, 128.0*lightdata->m_spotblend); + } + else glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, 180.0); + } + + if (lightdata->m_nodiffuse) + { + vec[0] = vec[1] = vec[2] = vec[3] = 0.0; + } else { + vec[0]= lightdata->m_energy*lightdata->m_red; + vec[1]= lightdata->m_energy*lightdata->m_green; + vec[2]= lightdata->m_energy*lightdata->m_blue; + vec[3]= 1.0; + } + glLightfv((GLenum)(GL_LIGHT0+count), GL_DIFFUSE, vec); + if (lightdata->m_nospecular) + { + vec[0] = vec[1] = vec[2] = vec[3] = 0.0; + } else if (lightdata->m_nodiffuse) { + vec[0]= lightdata->m_energy*lightdata->m_red; + vec[1]= lightdata->m_energy*lightdata->m_green; + vec[2]= lightdata->m_energy*lightdata->m_blue; + vec[3]= 1.0; + } + glLightfv((GLenum)(GL_LIGHT0+count), GL_SPECULAR, vec); + glEnable((GLenum)(GL_LIGHT0+count)); + + count++; } glPopMatrix(); diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h index ebf7562503f..60130e6bfc9 100644 --- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h +++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h @@ -51,6 +51,7 @@ class KX_BlenderRenderTools : public RAS_IRenderTools { int m_lastlightlayer; bool m_lastlighting; + void *m_lastauxinfo; static unsigned int m_numgllights; public: @@ -62,7 +63,7 @@ public: void EnableOpenGLLights(RAS_IRasterizer *rasty); void DisableOpenGLLights(); - void ProcessLighting(RAS_IRasterizer *rasty, int layer, const MT_Transform& viewmat); + void ProcessLighting(RAS_IRasterizer *rasty, bool uselights, const MT_Transform& viewmat); void RenderText2D(RAS_TEXT_RENDER_MODE mode, const char* text, diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp index c0d6248a3ca..8135635ddb3 100644 --- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp +++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp @@ -29,6 +29,8 @@ #include "GL/glew.h" +#include "DNA_scene_types.h" + #include "RAS_IRenderTools.h" #include "RAS_IRasterizer.h" #include "RAS_LightObject.h" @@ -72,6 +74,7 @@ void GPC_RenderTools::BeginFrame(RAS_IRasterizer* rasty) m_clientobject = NULL; m_lastlightlayer = -1; m_lastlighting = false; + m_lastauxinfo = NULL; DisableOpenGLLights(); } @@ -85,25 +88,27 @@ void GPC_RenderTools::EndFrame(RAS_IRasterizer* rasty) * has a maximum of 8 lights (simultaneous), so 20 * 8 lights are possible in * a scene. */ -void GPC_RenderTools::ProcessLighting(RAS_IRasterizer *rasty, int layer, const MT_Transform& viewmat) +void GPC_RenderTools::ProcessLighting(RAS_IRasterizer *rasty, bool uselights, const MT_Transform& viewmat) { - if(m_lastlightlayer == layer) + bool enable = false; + int layer= -1; + + /* find the layer */ + if(uselights) { + if(m_clientobject) + layer = static_cast(m_clientobject)->GetLayer(); + } + + /* avoid state switching */ + if(m_lastlightlayer == layer && m_lastauxinfo == m_auxilaryClientInfo) return; m_lastlightlayer = layer; + m_lastauxinfo = m_auxilaryClientInfo; - bool enable = false; - - if (layer >= 0) - { - if (m_clientobject) - { - if (layer == RAS_LIGHT_OBJECT_LAYER) - layer = static_cast(m_clientobject)->GetLayer(); - - enable = applyLights(layer, viewmat); - } - } + /* enable/disable lights as needed */ + if(layer >= 0) + enable = applyLights(layer, viewmat); if(enable) EnableOpenGLLights(rasty); @@ -392,11 +397,16 @@ void GPC_RenderTools::PopMatrix() int GPC_RenderTools::applyLights(int objectlayer, const MT_Transform& viewmat) { // taken from blender source, incompatibility between Blender Object / GameObject + KX_Scene* kxscene = (KX_Scene*)m_auxilaryClientInfo; + int scenelayer = ~0; float glviewmat[16]; unsigned int count; float vec[4]; vec[3]= 1.0; + + if(kxscene && kxscene->GetBlenderScene()) + scenelayer = kxscene->GetBlenderScene()->lay; for(count=0; countm_layer & objectlayer) - { - vec[0] = (*(lightdata->m_worldmatrix))(0,3); - vec[1] = (*(lightdata->m_worldmatrix))(1,3); - vec[2] = (*(lightdata->m_worldmatrix))(2,3); - vec[3] = 1; + KX_Scene* lightscene = (KX_Scene*)lightdata->m_scene; - if(lightdata->m_type==RAS_LightObject::LIGHT_SUN) { - - vec[0] = (*(lightdata->m_worldmatrix))(0,2); - vec[1] = (*(lightdata->m_worldmatrix))(1,2); - vec[2] = (*(lightdata->m_worldmatrix))(2,2); - //vec[0]= base->object->obmat[2][0]; - //vec[1]= base->object->obmat[2][1]; - //vec[2]= base->object->obmat[2][2]; - vec[3]= 0.0; - glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); - } - else { - //vec[3]= 1.0; - glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); - glLightf((GLenum)(GL_LIGHT0+count), GL_CONSTANT_ATTENUATION, 1.0); - glLightf((GLenum)(GL_LIGHT0+count), GL_LINEAR_ATTENUATION, lightdata->m_att1/lightdata->m_distance); - // without this next line it looks backward compatible. - //attennuation still is acceptable - glLightf((GLenum)(GL_LIGHT0+count), GL_QUADRATIC_ATTENUATION, lightdata->m_att2/(lightdata->m_distance*lightdata->m_distance)); - - if(lightdata->m_type==RAS_LightObject::LIGHT_SPOT) { - vec[0] = -(*(lightdata->m_worldmatrix))(0,2); - vec[1] = -(*(lightdata->m_worldmatrix))(1,2); - vec[2] = -(*(lightdata->m_worldmatrix))(2,2); - //vec[0]= -base->object->obmat[2][0]; - //vec[1]= -base->object->obmat[2][1]; - //vec[2]= -base->object->obmat[2][2]; - glLightfv((GLenum)(GL_LIGHT0+count), GL_SPOT_DIRECTION, vec); - glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, lightdata->m_spotsize/2.0); - glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_EXPONENT, 128.0*lightdata->m_spotblend); - } - else glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, 180.0); - } + /* only use lights in the same layer as the object */ + if(!(lightdata->m_layer & objectlayer)) + continue; + /* only use lights in the same scene, and in a visible layer */ + if(kxscene != lightscene || !(lightdata->m_layer & scenelayer)) + continue; + + vec[0] = (*(lightdata->m_worldmatrix))(0,3); + vec[1] = (*(lightdata->m_worldmatrix))(1,3); + vec[2] = (*(lightdata->m_worldmatrix))(2,3); + vec[3] = 1; + + if(lightdata->m_type==RAS_LightObject::LIGHT_SUN) { - if (lightdata->m_nodiffuse) - { - vec[0] = vec[1] = vec[2] = vec[3] = 0.0; - } else { - vec[0]= lightdata->m_energy*lightdata->m_red; - vec[1]= lightdata->m_energy*lightdata->m_green; - vec[2]= lightdata->m_energy*lightdata->m_blue; - vec[3]= 1.0; - } - glLightfv((GLenum)(GL_LIGHT0+count), GL_DIFFUSE, vec); - if (lightdata->m_nospecular) - { - vec[0] = vec[1] = vec[2] = vec[3] = 0.0; - } else if (lightdata->m_nodiffuse) { - vec[0]= lightdata->m_energy*lightdata->m_red; - vec[1]= lightdata->m_energy*lightdata->m_green; - vec[2]= lightdata->m_energy*lightdata->m_blue; - vec[3]= 1.0; - } - glLightfv((GLenum)(GL_LIGHT0+count), GL_SPECULAR, vec); - glEnable((GLenum)(GL_LIGHT0+count)); - - count++; + vec[0] = (*(lightdata->m_worldmatrix))(0,2); + vec[1] = (*(lightdata->m_worldmatrix))(1,2); + vec[2] = (*(lightdata->m_worldmatrix))(2,2); + //vec[0]= base->object->obmat[2][0]; + //vec[1]= base->object->obmat[2][1]; + //vec[2]= base->object->obmat[2][2]; + vec[3]= 0.0; + glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); } + else { + //vec[3]= 1.0; + glLightfv((GLenum)(GL_LIGHT0+count), GL_POSITION, vec); + glLightf((GLenum)(GL_LIGHT0+count), GL_CONSTANT_ATTENUATION, 1.0); + glLightf((GLenum)(GL_LIGHT0+count), GL_LINEAR_ATTENUATION, lightdata->m_att1/lightdata->m_distance); + // without this next line it looks backward compatible. + //attennuation still is acceptable + glLightf((GLenum)(GL_LIGHT0+count), GL_QUADRATIC_ATTENUATION, lightdata->m_att2/(lightdata->m_distance*lightdata->m_distance)); + + if(lightdata->m_type==RAS_LightObject::LIGHT_SPOT) { + vec[0] = -(*(lightdata->m_worldmatrix))(0,2); + vec[1] = -(*(lightdata->m_worldmatrix))(1,2); + vec[2] = -(*(lightdata->m_worldmatrix))(2,2); + //vec[0]= -base->object->obmat[2][0]; + //vec[1]= -base->object->obmat[2][1]; + //vec[2]= -base->object->obmat[2][2]; + glLightfv((GLenum)(GL_LIGHT0+count), GL_SPOT_DIRECTION, vec); + glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, lightdata->m_spotsize/2.0); + glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_EXPONENT, 128.0*lightdata->m_spotblend); + } + else glLightf((GLenum)(GL_LIGHT0+count), GL_SPOT_CUTOFF, 180.0); + } + + if (lightdata->m_nodiffuse) + { + vec[0] = vec[1] = vec[2] = vec[3] = 0.0; + } else { + vec[0]= lightdata->m_energy*lightdata->m_red; + vec[1]= lightdata->m_energy*lightdata->m_green; + vec[2]= lightdata->m_energy*lightdata->m_blue; + vec[3]= 1.0; + } + glLightfv((GLenum)(GL_LIGHT0+count), GL_DIFFUSE, vec); + if (lightdata->m_nospecular) + { + vec[0] = vec[1] = vec[2] = vec[3] = 0.0; + } else if (lightdata->m_nodiffuse) { + vec[0]= lightdata->m_energy*lightdata->m_red; + vec[1]= lightdata->m_energy*lightdata->m_green; + vec[2]= lightdata->m_energy*lightdata->m_blue; + vec[3]= 1.0; + } + glLightfv((GLenum)(GL_LIGHT0+count), GL_SPECULAR, vec); + glEnable((GLenum)(GL_LIGHT0+count)); + + count++; } glPopMatrix(); diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.h b/source/gameengine/GamePlayer/common/GPC_RenderTools.h index 2a1b66a3aa9..316860a7d43 100644 --- a/source/gameengine/GamePlayer/common/GPC_RenderTools.h +++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.h @@ -54,6 +54,7 @@ class GPC_RenderTools : public RAS_IRenderTools { int m_lastlightlayer; bool m_lastlighting; + void *m_lastauxinfo; static unsigned int m_numgllights; BMF_Font* m_font; @@ -67,7 +68,7 @@ public: void EnableOpenGLLights(RAS_IRasterizer *rasty); void DisableOpenGLLights(); - void ProcessLighting(RAS_IRasterizer *rasty, int layer, const MT_Transform& viewmat); + void ProcessLighting(RAS_IRasterizer *rasty, bool uselights, const MT_Transform& viewmat); /* @attention mode is ignored here */ void RenderText2D(RAS_TEXT_RENDER_MODE mode, diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp index 8ec463be6ff..3df483b0598 100644 --- a/source/gameengine/Ketsji/BL_BlenderShader.cpp +++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp @@ -52,7 +52,7 @@ void BL_BlenderShader::SetProg(bool enable, double time) { if(VerifyShader()) { if(enable) - GPU_material_bind(GPU_material_from_blender(mBlenderScene, mMat), mLightLayer, ~0, time); + GPU_material_bind(GPU_material_from_blender(mBlenderScene, mMat), mLightLayer, mBlenderScene->lay, time); else GPU_material_unbind(GPU_material_from_blender(mBlenderScene, mMat)); } diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index a2e93ecdd36..487b8f30e0d 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -57,6 +57,7 @@ KX_LightObject::KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks, { m_lightobj = lightobj; m_lightobj.m_worldmatrix = GetOpenGLMatrixPtr(); + m_lightobj.m_scene = sgReplicationInfo; m_rendertools->AddLight(&m_lightobj); m_glsl = glsl; m_blenderscene = ((KX_Scene*)sgReplicationInfo)->GetBlenderScene(); diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.h b/source/gameengine/Rasterizer/RAS_IRenderTools.h index a289ffed492..52f6397cf6c 100644 --- a/source/gameengine/Rasterizer/RAS_IRenderTools.h +++ b/source/gameengine/Rasterizer/RAS_IRenderTools.h @@ -58,10 +58,6 @@ public: RAS_TEXT_PADDED, RAS_TEXT_MAX }; - enum RAS_LIGHT_MODE { - RAS_LIGHT_NONE = -1, - RAS_LIGHT_OBJECT_LAYER = 0 - }; RAS_IRenderTools( ) : @@ -135,7 +131,7 @@ public: void ProcessLighting( RAS_IRasterizer *rasty, - int layer, + bool uselights, const MT_Transform& trans )=0; diff --git a/source/gameengine/Rasterizer/RAS_LightObject.h b/source/gameengine/Rasterizer/RAS_LightObject.h index 4c54857dc39..6b63a891981 100644 --- a/source/gameengine/Rasterizer/RAS_LightObject.h +++ b/source/gameengine/Rasterizer/RAS_LightObject.h @@ -40,6 +40,7 @@ struct RAS_LightObject }; bool m_modified; int m_layer; + void *m_scene; float m_energy; float m_distance; diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index d8631c1edf6..20a8e9c3574 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -513,13 +513,13 @@ list::iterator RAS_MaterialBucket::msEnd() bool RAS_MaterialBucket::ActivateMaterial(const MT_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools *rendertools) { - if (!rasty->SetMaterial(*m_material)) + bool uselights; + + if(!rasty->SetMaterial(*m_material)) return false; - if (m_material->UsesLighting(rasty)) - rendertools->ProcessLighting(rasty, RAS_IRenderTools::RAS_LIGHT_OBJECT_LAYER, cameratrans); - else - rendertools->ProcessLighting(rasty, -1, cameratrans); + uselights= m_material->UsesLighting(rasty); + rendertools->ProcessLighting(rasty, uselights, cameratrans); return true; } From 5d48e0430763e1d6cb790606e1c06d7a2190ca88 Mon Sep 17 00:00:00 2001 From: Robin Allen Date: Tue, 24 Mar 2009 18:51:21 +0000 Subject: [PATCH 018/201] Renumbered the texture nodes because they were clashing with the other nodes. This will break compatibility with previous texnode testing builds (but not with any released versions) --- source/blender/blenkernel/BKE_node.h | 48 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 3f04330f2a3..184b28b2cd2 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -385,32 +385,32 @@ void free_compbuf(struct CompBuf *cbuf); /* internal...*/ struct TexResult; -#define TEX_NODE_OUTPUT 101 -#define TEX_NODE_CHECKER 102 -#define TEX_NODE_TEXTURE 103 -#define TEX_NODE_BRICKS 104 -#define TEX_NODE_MATH 105 -#define TEX_NODE_MIX_RGB 106 -#define TEX_NODE_RGBTOBW 107 -#define TEX_NODE_VALTORGB 108 -#define TEX_NODE_IMAGE 109 -#define TEX_NODE_CURVE_RGB 110 -#define TEX_NODE_INVERT 111 -#define TEX_NODE_HUE_SAT 112 -#define TEX_NODE_CURVE_TIME 113 -#define TEX_NODE_ROTATE 114 -#define TEX_NODE_VIEWER 115 -#define TEX_NODE_TRANSLATE 116 -#define TEX_NODE_COORD 117 -#define TEX_NODE_DISTANCE 118 -#define TEX_NODE_COMPOSE 119 -#define TEX_NODE_DECOMPOSE 120 -#define TEX_NODE_VALTONOR 121 -#define TEX_NODE_SCALE 122 +#define TEX_NODE_OUTPUT 401 +#define TEX_NODE_CHECKER 402 +#define TEX_NODE_TEXTURE 403 +#define TEX_NODE_BRICKS 404 +#define TEX_NODE_MATH 405 +#define TEX_NODE_MIX_RGB 406 +#define TEX_NODE_RGBTOBW 407 +#define TEX_NODE_VALTORGB 408 +#define TEX_NODE_IMAGE 409 +#define TEX_NODE_CURVE_RGB 410 +#define TEX_NODE_INVERT 411 +#define TEX_NODE_HUE_SAT 412 +#define TEX_NODE_CURVE_TIME 413 +#define TEX_NODE_ROTATE 414 +#define TEX_NODE_VIEWER 415 +#define TEX_NODE_TRANSLATE 416 +#define TEX_NODE_COORD 417 +#define TEX_NODE_DISTANCE 418 +#define TEX_NODE_COMPOSE 419 +#define TEX_NODE_DECOMPOSE 420 +#define TEX_NODE_VALTONOR 421 +#define TEX_NODE_SCALE 422 /* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */ -#define TEX_NODE_PROC 200 -#define TEX_NODE_PROC_MAX 300 +#define TEX_NODE_PROC 500 +#define TEX_NODE_PROC_MAX 600 extern struct ListBase node_all_textures; From c78b460fce4b1da228bd60809e281eea358cf2c9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Mar 2009 19:37:17 +0000 Subject: [PATCH 019/201] Use Benoits attributes in KX_GameObject. Deprecated.. getPosition, setPosition, getOrientation, setOrientation, getState, setState, getParent, getVisible, getMass * swapped set/get to get/set in KX_PYATTRIBUTE_RW_FUNCTION macro to match pythons getsetattrs. * deprecation warnings in the api and notes in epydocs. * added 'state' attribute * gameob.mass = 10 # now works because its not checking only for float values. * dir(gameob) # includes attributes now --- source/gameengine/Expressions/PyObjectPlus.h | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 418 +++++++++++-------- source/gameengine/Ketsji/KX_GameObject.h | 20 + source/gameengine/PyDoc/KX_GameObject.py | 26 +- 4 files changed, 281 insertions(+), 187 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 28b0e28b815..6ba80255aa3 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -327,11 +327,11 @@ typedef struct KX_PYATTRIBUTE_DEF { #define KX_PYATTRIBUTE_STRING_RO(name,object,field) \ { name, KX_PYATTRIBUTE_TYPE_STRING, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, offsetof(object,field), 0, 1 , NULL, NULL, NULL, {NULL, NULL, NULL, NULL, &((object *)0)->field} } -#define KX_PYATTRIBUTE_RW_FUNCTION(name,object,setfunction,getfunction) \ +#define KX_PYATTRIBUTE_RW_FUNCTION(name,object,getfunction,setfunction) \ { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RW, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, &object::setfunction, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_RO_FUNCTION(name,object,getfunction) \ { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0.f, false, 0, 0, 1, NULL, NULL, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } -#define KX_PYATTRIBUTE_ARRAY_RW_FUNCTION(name,object,length,setfunction,getfunction) \ +#define KX_PYATTRIBUTE_ARRAY_RW_FUNCTION(name,object,length,getfunction,setfunction) \ { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RW, 0, 0, 0.f, 0,f, false, 0, 0, length, NULL, &object::setfunction, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } #define KX_PYATTRIBUTE_ARRAY_RO_FUNCTION(name,object,length,getfunction) \ { name, KX_PYATTRIBUTE_TYPE_FUNCTION, KX_PYATTRIBUTE_RO, 0, 0, 0.f, 0,f, false, 0, 0, length, NULL, NULL, &object::getfunction, {NULL, NULL, NULL, NULL, NULL} } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 95df9d51a26..bbfa2ad324f 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -984,12 +984,7 @@ void KX_GameObject::Suspend() /* ------- python stuff ---------------------------------------------------*/ - - - PyMethodDef KX_GameObject::Methods[] = { - {"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS}, - {"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O}, {"setWorldPosition", (PyCFunction) KX_GameObject::sPySetWorldPosition, METH_O}, {"applyForce", (PyCFunction) KX_GameObject::sPyApplyForce, METH_VARARGS}, {"applyTorque", (PyCFunction) KX_GameObject::sPyApplyTorque, METH_VARARGS}, @@ -1000,14 +995,7 @@ PyMethodDef KX_GameObject::Methods[] = { {"getAngularVelocity", (PyCFunction) KX_GameObject::sPyGetAngularVelocity, METH_VARARGS}, {"setAngularVelocity", (PyCFunction) KX_GameObject::sPySetAngularVelocity, METH_VARARGS}, {"getVelocity", (PyCFunction) KX_GameObject::sPyGetVelocity, METH_VARARGS}, - {"getMass", (PyCFunction) KX_GameObject::sPyGetMass, METH_NOARGS}, {"getReactionForce", (PyCFunction) KX_GameObject::sPyGetReactionForce, METH_NOARGS}, - {"getOrientation", (PyCFunction) KX_GameObject::sPyGetOrientation, METH_NOARGS}, - {"setOrientation", (PyCFunction) KX_GameObject::sPySetOrientation, METH_O}, - {"getVisible",(PyCFunction) KX_GameObject::sPyGetVisible, METH_NOARGS}, - {"setVisible",(PyCFunction) KX_GameObject::sPySetVisible, METH_VARARGS}, - {"getState",(PyCFunction) KX_GameObject::sPyGetState, METH_NOARGS}, - {"setState",(PyCFunction) KX_GameObject::sPySetState, METH_O}, {"alignAxisToVect",(PyCFunction) KX_GameObject::sPyAlignAxisToVect, METH_VARARGS}, {"getAxisVect",(PyCFunction) KX_GameObject::sPyGetAxisVect, METH_O}, {"suspendDynamics", (PyCFunction)KX_GameObject::sPySuspendDynamics,METH_NOARGS}, @@ -1016,8 +1004,8 @@ PyMethodDef KX_GameObject::Methods[] = { {"disableRigidBody", (PyCFunction)KX_GameObject::sPyDisableRigidBody,METH_NOARGS}, {"applyImpulse", (PyCFunction) KX_GameObject::sPyApplyImpulse, METH_VARARGS}, {"setCollisionMargin", (PyCFunction) KX_GameObject::sPySetCollisionMargin, METH_O}, - {"getParent", (PyCFunction)KX_GameObject::sPyGetParent,METH_NOARGS}, {"setParent", (PyCFunction)KX_GameObject::sPySetParent,METH_O}, + {"setVisible",(PyCFunction) KX_GameObject::sPySetVisible, METH_VARARGS}, {"removeParent", (PyCFunction)KX_GameObject::sPyRemoveParent,METH_NOARGS}, {"getChildren", (PyCFunction)KX_GameObject::sPyGetChildren,METH_NOARGS}, {"getChildrenRecursive", (PyCFunction)KX_GameObject::sPyGetChildrenRecursive,METH_NOARGS}, @@ -1026,15 +1014,36 @@ PyMethodDef KX_GameObject::Methods[] = { {"getPropertyNames", (PyCFunction)KX_GameObject::sPyGetPropertyNames,METH_NOARGS}, {"replaceMesh",(PyCFunction) KX_GameObject::sPyReplaceMesh, METH_O}, {"endObject",(PyCFunction) KX_GameObject::sPyEndObject, METH_NOARGS}, + KX_PYMETHODTABLE(KX_GameObject, rayCastTo), KX_PYMETHODTABLE(KX_GameObject, rayCast), KX_PYMETHODTABLE_O(KX_GameObject, getDistanceTo), KX_PYMETHODTABLE_O(KX_GameObject, getVectTo), + + // deprecated + {"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS}, + {"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O}, + {"getOrientation", (PyCFunction) KX_GameObject::sPyGetOrientation, METH_NOARGS}, + {"setOrientation", (PyCFunction) KX_GameObject::sPySetOrientation, METH_O}, + {"getState",(PyCFunction) KX_GameObject::sPyGetState, METH_NOARGS}, + {"setState",(PyCFunction) KX_GameObject::sPySetState, METH_O}, + {"getParent", (PyCFunction)KX_GameObject::sPyGetParent,METH_NOARGS}, + {"getVisible",(PyCFunction) KX_GameObject::sPyGetVisible, METH_NOARGS}, + {"getMass", (PyCFunction) KX_GameObject::sPyGetMass, METH_NOARGS}, {NULL,NULL} //Sentinel }; PyAttributeDef KX_GameObject::Attributes[] = { - { NULL } //Sentinel + KX_PYATTRIBUTE_RO_FUNCTION("name", KX_GameObject, pyattr_get_name), + KX_PYATTRIBUTE_RO_FUNCTION("parent", KX_GameObject, pyattr_get_parent), + KX_PYATTRIBUTE_RW_FUNCTION("mass", KX_GameObject, pyattr_get_mass, pyattr_set_mass), + KX_PYATTRIBUTE_RW_FUNCTION("visible", KX_GameObject, pyattr_get_visible, pyattr_set_visible), + KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_position, pyattr_set_position), + KX_PYATTRIBUTE_RW_FUNCTION("orientation",KX_GameObject,pyattr_get_orientation,pyattr_set_orientation), + KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_scaling, pyattr_set_scaling), + KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), + KX_PYATTRIBUTE_RW_FUNCTION("state", KX_GameObject, pyattr_get_state, pyattr_set_state), + {NULL} //Sentinel }; @@ -1089,6 +1098,7 @@ PyObject* KX_GameObject::PyEndObject(PyObject* self) PyObject* KX_GameObject::PyGetPosition(PyObject* self) { + ShowDeprecationWarning("getPosition()", "the position property"); return PyObjectFrom(NodeGetWorldPosition()); } @@ -1122,176 +1132,230 @@ PyParentObject KX_GameObject::Parents[] = { NULL }; +PyObject* KX_GameObject::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + return PyString_FromString(self->GetName().ReadPtr()); +} + +PyObject* KX_GameObject::pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + KX_GameObject* parent = self->GetParent(); + if (parent) + return parent->AddRef(); + Py_RETURN_NONE; +} + +PyObject* KX_GameObject::pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + return PyFloat_FromDouble(spc ? spc->GetMass() : 0.0f); +} + +int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + MT_Scalar val = PyFloat_AsDouble(value); + if (val < 0.0f) { /* also accounts for non float */ + PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + return 1; + } + + if (spc) + spc->SetMass(val); + + return 0; +} + +PyObject* KX_GameObject::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + return PyBool_FromLong(self->GetVisible()); +} + +int KX_GameObject::pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + int param = PyObject_IsTrue( value ); + if (param == -1) { + PyErr_SetString(PyExc_AttributeError, "expected True or False"); + return 1; + } + + self->SetVisible(param, false); + self->UpdateBuckets(false); + return 0; +} + +PyObject* KX_GameObject::pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + return PyObjectFrom(self->NodeGetWorldPosition()); +} + +int KX_GameObject::pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + MT_Point3 pos; + if (!PyVecTo(value, pos)) + return 1; + + self->NodeSetLocalPosition(pos); + self->NodeUpdateGS(0.f,true); + return 0; +} +PyObject* KX_GameObject::pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + return PyObjectFrom(self->NodeGetWorldOrientation()); +} + +int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + if (!PySequence_Check(value)) { + PyErr_SetString(PyExc_AttributeError, "'orientation' attribute needs to be a sequence"); + return 1; + } + + MT_Matrix3x3 rot; + if (PyObject_IsMT_Matrix(value, 3)) + { + if (PyMatTo(value, rot)) + { + self->NodeSetLocalOrientation(rot); + self->NodeUpdateGS(0.f,true); + return 0; + } + return 1; + } + + if (PySequence_Size(value) == 4) + { + MT_Quaternion qrot; + if (PyVecTo(value, qrot)) + { + rot.setRotation(qrot); + self->NodeSetLocalOrientation(rot); + self->NodeUpdateGS(0.f,true); + return 0; + } + return 1; + } + + if (PySequence_Size(value) == 3) + { + MT_Vector3 erot; + if (PyVecTo(value, erot)) + { + rot.setEuler(erot); + self->NodeSetLocalOrientation(rot); + self->NodeUpdateGS(0.f,true); + return 0; + } + return 1; + } + + PyErr_SetString(PyExc_AttributeError, "could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); + return 1; +} + +PyObject* KX_GameObject::pyattr_get_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + return PyObjectFrom(self->NodeGetWorldScaling()); +} + +int KX_GameObject::pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + MT_Vector3 scale; + if (!PyVecTo(value, scale)) + return 1; + + self->NodeSetLocalScale(scale); + self->NodeUpdateGS(0.f,true); + return 0; +} + +PyObject* KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); + if (sg_parent && sg_parent->IsSlowParent()) { + return PyFloat_FromDouble(static_cast(sg_parent->GetParentRelation())->GetTimeOffset()); + } else { + return PyFloat_FromDouble(0.0); + } +} + +int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + MT_Scalar val = PyFloat_AsDouble(value); + SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); + if (val < 0.0f) { /* also accounts for non float */ + PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + return 1; + } + + if (sg_parent && sg_parent->IsSlowParent()) + static_cast(sg_parent->GetParentRelation())->SetTimeOffset(val); + + return 0; +} + +PyObject* KX_GameObject::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + int state = 0; + state |= self->GetState(); + return PyInt_FromLong(state); +} + +int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + int state_i = PyInt_AsLong(value); + unsigned int state = 0; + + if (state_i == -1 && PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, "expected an int bit field"); + return 1; + } + + state |= state_i; + if ((state & ((1<<30)-1)) == 0) { + PyErr_SetString(PyExc_AttributeError, "The state bitfield was not between 0 and 30 (1<<0 and 1<<29)"); + return 1; + } + self->SetState(state); + return 0; +} PyObject* KX_GameObject::_getattr(const char *attr) { - if (m_pPhysicsController1) - { - if (!strcmp(attr, "mass")) - return PyFloat_FromDouble(m_pPhysicsController1->GetMass()); + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + + if (!strcmp(attr, "__dict__")) { /* python 3.0 uses .__dir__()*/ + return _getattr_dict(SCA_IObject::_getattr(attr), Methods, Attributes); } - - if (!strcmp(attr, "parent")) - { - KX_GameObject* parent = GetParent(); - if (parent) - return parent->AddRef(); - Py_RETURN_NONE; - } - - if (!strcmp(attr, "visible")) - return PyInt_FromLong(m_bVisible); - - if (!strcmp(attr, "position")) - return PyObjectFrom(NodeGetWorldPosition()); - - if (!strcmp(attr, "orientation")) - return PyObjectFrom(NodeGetWorldOrientation()); - - if (!strcmp(attr, "scaling")) - return PyObjectFrom(NodeGetWorldScaling()); - - if (!strcmp(attr, "name")) - return PyString_FromString(m_name.ReadPtr()); - - if (!strcmp(attr, "timeOffset")) - { - if (m_pSGNode->GetSGParent()->IsSlowParent()) { - return PyFloat_FromDouble(static_cast(m_pSGNode->GetSGParent()->GetParentRelation())->GetTimeOffset()); - } else { - return PyFloat_FromDouble(0.0); - } - } - _getattr_up(SCA_IObject); } int KX_GameObject::_setattr(const char *attr, PyObject *value) // _setattr method { - - if (!strcmp(attr, "parent")) { - PyErr_SetString(PyExc_AttributeError, "attribute \"parent\" is read only\nUse setParent()"); - return 1; - } - - if (PyInt_Check(value)) - { - int val = PyInt_AsLong(value); - if (!strcmp(attr, "visible")) - { - SetVisible(val != 0, false); - UpdateBuckets(false); - return 0; - } - } - - if (PyFloat_Check(value)) - { - MT_Scalar val = PyFloat_AsDouble(value); - if (!strcmp(attr, "timeOffset")) { - if (m_pSGNode->GetSGParent() && m_pSGNode->GetSGParent()->IsSlowParent()) { - static_cast(m_pSGNode->GetSGParent()->GetParentRelation())->SetTimeOffset(val); - return 0; - } else { - return 0; - } - } - if (!strcmp(attr, "mass")) { - if (m_pPhysicsController1) - m_pPhysicsController1->SetMass(val); - return 0; - } - } - - if (PySequence_Check(value)) - { - if (!strcmp(attr, "orientation")) - { - MT_Matrix3x3 rot; - if (PyObject_IsMT_Matrix(value, 3)) - { - if (PyMatTo(value, rot)) - { - NodeSetLocalOrientation(rot); - NodeUpdateGS(0.f,true); - return 0; - } - return 1; - } - - if (PySequence_Size(value) == 4) - { - MT_Quaternion qrot; - if (PyVecTo(value, qrot)) - { - rot.setRotation(qrot); - NodeSetLocalOrientation(rot); - NodeUpdateGS(0.f,true); - return 0; - } - return 1; - } - - if (PySequence_Size(value) == 3) - { - MT_Vector3 erot; - if (PyVecTo(value, erot)) - { - rot.setEuler(erot); - NodeSetLocalOrientation(rot); - NodeUpdateGS(0.f,true); - return 0; - } - return 1; - } - PyErr_SetString(PyExc_AttributeError, "could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); - return 1; - } - - if (!strcmp(attr, "position")) - { - MT_Point3 pos; - if (PyVecTo(value, pos)) - { - NodeSetLocalPosition(pos); - NodeUpdateGS(0.f,true); - return 0; - } - return 1; - } - - if (!strcmp(attr, "scaling")) - { - MT_Vector3 scale; - if (PyVecTo(value, scale)) - { - NodeSetLocalScale(scale); - NodeUpdateGS(0.f,true); - return 0; - } - return 1; - } - } - - if (PyString_Check(value)) - { - if (!strcmp(attr, "name")) - { -#if 0 // was added in revision 2832, but never took into account Object name mappings from revision 2 - // unlikely anyone ever used this successfully , removing. - m_name = PyString_AsString(value); - return 0; -#else - PyErr_SetString(PyExc_AttributeError, "object name readonly"); - return 1; -#endif - } - } - - /* Need to have parent settable here too */ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; return SCA_IObject::_setattr(attr, value); } @@ -1428,11 +1492,13 @@ PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* args) PyObject* KX_GameObject::PyGetVisible(PyObject* self) { + ShowDeprecationWarning("getVisible()", "the visible property"); return PyInt_FromLong(m_bVisible); } PyObject* KX_GameObject::PyGetState(PyObject* self) { + ShowDeprecationWarning("getState()", "the state property"); int state = 0; state |= GetState(); return PyInt_FromLong(state); @@ -1440,6 +1506,7 @@ PyObject* KX_GameObject::PyGetState(PyObject* self) PyObject* KX_GameObject::PySetState(PyObject* self, PyObject* value) { + ShowDeprecationWarning("setState()", "the state property"); int state_i = PyInt_AsLong(value); unsigned int state = 0; @@ -1458,8 +1525,6 @@ PyObject* KX_GameObject::PySetState(PyObject* self, PyObject* value) Py_RETURN_NONE; } - - PyObject* KX_GameObject::PyGetVelocity(PyObject* self, PyObject* args) { // only can get the velocity if we have a physics object connected to us... @@ -1488,6 +1553,7 @@ PyObject* KX_GameObject::PyGetVelocity(PyObject* self, PyObject* args) PyObject* KX_GameObject::PyGetMass(PyObject* self) { + ShowDeprecationWarning("getMass()", "the mass property"); return PyFloat_FromDouble(GetPhysicsController()->GetMass()); } @@ -1521,6 +1587,7 @@ PyObject* KX_GameObject::PyDisableRigidBody(PyObject* self) PyObject* KX_GameObject::PyGetParent(PyObject* self) { + ShowDeprecationWarning("getParent()", "the parent property"); KX_GameObject* parent = this->GetParent(); if (parent) return parent->AddRef(); @@ -1673,6 +1740,7 @@ PyObject* KX_GameObject::PyRestoreDynamics(PyObject* self) PyObject* KX_GameObject::PyGetOrientation(PyObject* self) //keywords { + ShowDeprecationWarning("getOrientation()", "the orientation property"); return PyObjectFrom(NodeGetWorldOrientation()); } @@ -1680,6 +1748,7 @@ PyObject* KX_GameObject::PyGetOrientation(PyObject* self) //keywords PyObject* KX_GameObject::PySetOrientation(PyObject* self, PyObject* value) { + ShowDeprecationWarning("setOrientation()", "the orientation property"); MT_Matrix3x3 matrix; if (PyObject_IsMT_Matrix(value, 3) && PyMatTo(value, matrix)) { @@ -1733,6 +1802,7 @@ PyObject* KX_GameObject::PyGetAxisVect(PyObject* self, PyObject* value) PyObject* KX_GameObject::PySetPosition(PyObject* self, PyObject* value) { + ShowDeprecationWarning("setPosition()", "the position property"); MT_Point3 pos; if (PyVecTo(value, pos)) { diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 211c9b7ca7d..326b3700ad7 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -802,7 +802,27 @@ public: KX_PYMETHOD_DOC(KX_GameObject,rayCast); KX_PYMETHOD_DOC_O(KX_GameObject,getDistanceTo); KX_PYMETHOD_DOC_O(KX_GameObject,getVectTo); + + /* attributes */ + static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + static PyObject* pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + private : /** diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 4f389a1ae4f..694fe02a7cc 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -24,6 +24,8 @@ class KX_GameObject: @type scaling: list [sx, sy, sz] @ivar timeOffset: adjust the slowparent delay at runtime. @type timeOffset: float + @ivar state: the game object's state bitmask. + @type state: int """ def endObject(visible): """ @@ -37,33 +39,35 @@ class KX_GameObject: """ def getVisible(): """ - Gets the game object's visible flag. + Gets the game object's visible flag. (B{deprecated}) @rtype: boolean """ - def setVisible(visible): + def setVisible(visible, recursive): """ Sets the game object's visible flag. @type visible: boolean + @type recursive: boolean + @param recursive: optional argument to set all childrens visibility flag too. """ def getState(): """ - Gets the game object's state bitmask. + Gets the game object's state bitmask. (B{deprecated}) @rtype: int @return: the objects state. """ def setState(state): """ - Sets the game object's state flag. - The bitmasks for states from 1 to 30 can be set with (1<<0, 1<<1, 1<<2 ... 1<<29) + Sets the game object's state flag. (B{deprecated}). + The bitmasks for states from 1 to 30 can be set with (1<<0, 1<<1, 1<<2 ... 1<<29) @type state: integer """ def setPosition(pos): """ - Sets the game object's position. + Sets the game object's position. (B{deprecated}) Global coordinates for root object, local for child objects. @@ -79,14 +83,14 @@ class KX_GameObject: """ def getPosition(): """ - Gets the game object's position. + Gets the game object's position. (B{deprecated}) @rtype: list [x, y, z] @return: the object's position in world coordinates. """ def setOrientation(orn): """ - Sets the game object's orientation. + Sets the game object's orientation. (B{deprecated}) @type orn: 3x3 rotation matrix, or Quaternion. @param orn: a rotation matrix specifying the new rotation. @@ -117,7 +121,7 @@ class KX_GameObject: """ def getOrientation(): """ - Gets the game object's orientation. + Gets the game object's orientation. (B{deprecated}) @rtype: 3x3 rotation matrix @return: The game object's rotation matrix @@ -231,7 +235,7 @@ class KX_GameObject: """ def getMass(): """ - Gets the game object's mass. + Gets the game object's mass. (B{deprecated}) @rtype: float @return: the object's mass. @@ -280,7 +284,7 @@ class KX_GameObject: """ def getParent(): """ - Gets this object's parent. + Gets this object's parent. (B{deprecated}) @rtype: L{KX_GameObject} @return: this object's parent object, or None if this object has no parent. From 6020d2cb45322c0dfa3d9548cca62318b7a6491c Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Tue, 24 Mar 2009 19:39:02 +0000 Subject: [PATCH 020/201] Changed missing line ending style for TEX_ files in sculptmode.c move initalization of a var to fix an issue where index of array could be -1. Found by coverity. Kent --- source/blender/src/sculptmode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/src/sculptmode.c b/source/blender/src/sculptmode.c index c534a8b3cab..ca049523928 100644 --- a/source/blender/src/sculptmode.c +++ b/source/blender/src/sculptmode.c @@ -1175,7 +1175,7 @@ void sculptmode_update_tex() { SculptData *sd= sculpt_data(); SculptSession *ss= sculpt_session(); - MTex *mtex = sd->mtex[sd->texact]; + MTex *mtex; TexResult texres = {0}; float x, y, step=2.0/TC_SIZE, co[3]; int hasrgb, ix, iy; @@ -1183,6 +1183,8 @@ void sculptmode_update_tex() /* Skip Default brush shape and non-textures */ if(sd->texact == -1 || !sd->mtex[sd->texact]) return; + mtex = sd->mtex[sd->texact]; + if(ss->texcache) { MEM_freeN(ss->texcache); ss->texcache= NULL; From 616897d0db674275b0f8d962f220f8d722a976d5 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 24 Mar 2009 19:39:43 +0000 Subject: [PATCH 021/201] Bad crash in volume snapping code when duplis where involved. Found out using Coverity's scan report. --- source/blender/src/transform_snap.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/source/blender/src/transform_snap.c b/source/blender/src/transform_snap.c index bedfaf60b77..b43984af1a6 100644 --- a/source/blender/src/transform_snap.c +++ b/source/blender/src/transform_snap.c @@ -1563,11 +1563,21 @@ int peelObjects(ListBase *depth_peels, short mval[2]) Object *ob = dupli_ob->ob; if (ob->type == OB_MESH) { - DerivedMesh *dm; - int editmesh = 0; + DerivedMesh *dm = NULL; int val; - val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + if (ob != G.obedit) + { + dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH); + + val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + } + else + { + dm = editmesh_get_derived_cage(CD_MASK_BAREMESH); + + val = peelDerivedMesh(ob, dm, dupli_ob->mat, ray_start, ray_normal, mval, depth_peels); + } retval = retval || val; From c53577a1189dd71efe6a2bdd589dab7896deb946 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Wed, 25 Mar 2009 23:09:17 +0000 Subject: [PATCH 022/201] scons+msvc update for the FFMpeg recent updates --- SConstruct | 8 ++++---- config/win32-vc-config.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SConstruct b/SConstruct index 20d8f8fd2ec..7366149c593 100644 --- a/SConstruct +++ b/SConstruct @@ -557,14 +557,14 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'): if env['WITH_BF_ICONV']: dllsources += ['${BF_ICONV_LIBPATH}/iconv.dll'] if env['WITH_BF_FFMPEG']: - dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-51.dll', + dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-52.dll', '${LCGDIR}/ffmpeg/lib/avformat-52.dll', '${LCGDIR}/ffmpeg/lib/avdevice-52.dll', - '${LCGDIR}/ffmpeg/lib/avutil-49.dll', - '${LCGDIR}/ffmpeg/lib/libfaad-0.dll', + '${LCGDIR}/ffmpeg/lib/avutil-50.dll', + '${LCGDIR}/ffmpeg/lib/libfaad-2.dll', '${LCGDIR}/ffmpeg/lib/libfaac-0.dll', '${LCGDIR}/ffmpeg/lib/libmp3lame-0.dll', - '${LCGDIR}/ffmpeg/lib/libx264-59.dll', + '${LCGDIR}/ffmpeg/lib/libx264-67.dll', '${LCGDIR}/ffmpeg/lib/xvidcore.dll', '${LCGDIR}/ffmpeg/lib/swscale-0.dll'] windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources) diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py index 6e56af2d95e..4ffffc46167 100644 --- a/config/win32-vc-config.py +++ b/config/win32-vc-config.py @@ -9,7 +9,7 @@ WITH_BF_FFMPEG = True # -DWITH_FFMPEG BF_FFMPEG = LIBDIR +'/ffmpeg' BF_FFMPEG_INC = '${BF_FFMPEG}/include' BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib' -BF_FFMPEG_LIB = 'avformat-52.lib avcodec-51.lib avdevice-52.lib avutil-49.lib swscale-0.lib' +BF_FFMPEG_LIB = 'avformat-52.lib avcodec-52.lib avdevice-52.lib avutil-50.lib swscale-0.lib' BF_PYTHON = LIBDIR + '/python' BF_PYTHON_VERSION = '2.5' From bba2bdf41e064c4c6602aa5e6c6c79364f51b08d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 26 Mar 2009 01:42:01 +0000 Subject: [PATCH 023/201] Added attributes for Ipo Actuator settings (replacing all methods) --- .../render/intern/source/convertblender.c | 4 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 65 ++++++++++++++++--- source/gameengine/Ketsji/KX_IpoActuator.h | 6 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 1 + source/gameengine/PyDoc/KX_IpoActuator.py | 47 ++++++++++---- 5 files changed, 96 insertions(+), 27 deletions(-) diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 4e4e27fe286..601acc881de 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1988,12 +1988,12 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem part->bb_align,part->draw&PART_DRAW_BB_LOCK, a,totpart+totchild,part->bb_uv_split,part->bb_anim,part->bb_split_offset,random,pa_time,part->bb_offset,uv); } - else if(strandbuf) { + else if(strandbuf) { if(svert) { VECCOPY(svert->co, loc); svert->strandco= -1.0f + 2.0f*time; svert++; strand->totvert++; - } + } } else{ if(k==1){ VECSUB(loc0,loc1,loc); diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 623a939bf62..f6fdce9de0f 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -84,7 +84,7 @@ KX_IpoActuator::KX_IpoActuator(SCA_IObject* gameobj, m_ipo_as_force(ipo_as_force), m_ipo_add(ipo_add), m_ipo_local(ipo_local), - m_type((IpoActType)acttype) + m_type(acttype) { m_starttime = -2.0*fabs(m_endframe - m_startframe) - 1.0; m_bIpoPlaying = false; @@ -190,7 +190,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame) } } - switch (m_type) + switch ((IpoActType)m_type) { case KX_ACT_IPO_PLAY: @@ -383,7 +383,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame) return result; } -KX_IpoActuator::IpoActType KX_IpoActuator::string2mode(char* modename) { +int KX_IpoActuator::string2mode(char* modename) { IpoActType res = KX_ACT_IPO_NODEF; if (modename == S_KX_ACT_IPO_PLAY_STRING) { @@ -441,6 +441,8 @@ PyParentObject KX_IpoActuator::Parents[] = { PyMethodDef KX_IpoActuator::Methods[] = { {"set", (PyCFunction) KX_IpoActuator::sPySet, METH_VARARGS, (PY_METHODCHAR)Set_doc}, + + // deprecated {"setProperty", (PyCFunction) KX_IpoActuator::sPySetProperty, METH_VARARGS, (PY_METHODCHAR)SetProperty_doc}, {"setStart", (PyCFunction) KX_IpoActuator::sPySetStart, METH_VARARGS, (PY_METHODCHAR)SetStart_doc}, {"getStart", (PyCFunction) KX_IpoActuator::sPyGetStart, METH_NOARGS, (PY_METHODCHAR)GetStart_doc}, @@ -450,22 +452,47 @@ PyMethodDef KX_IpoActuator::Methods[] = { {"getIpoAsForce", (PyCFunction) KX_IpoActuator::sPyGetIpoAsForce, METH_NOARGS, (PY_METHODCHAR)GetIpoAsForce_doc}, {"setIpoAdd", (PyCFunction) KX_IpoActuator::sPySetIpoAdd, METH_VARARGS, (PY_METHODCHAR)SetIpoAdd_doc}, {"getIpoAdd", (PyCFunction) KX_IpoActuator::sPyGetIpoAdd, METH_NOARGS, (PY_METHODCHAR)GetIpoAdd_doc}, - {"setType", (PyCFunction) KX_IpoActuator::sPySetType, METH_VARARGS, (PY_METHODCHAR)SetType_doc}, - {"getType", (PyCFunction) KX_IpoActuator::sPyGetType, METH_NOARGS, (PY_METHODCHAR)GetType_doc}, {"setForceIpoActsLocal", (PyCFunction) KX_IpoActuator::sPySetForceIpoActsLocal, METH_VARARGS, (PY_METHODCHAR)SetForceIpoActsLocal_doc}, {"getForceIpoActsLocal", (PyCFunction) KX_IpoActuator::sPyGetForceIpoActsLocal, METH_NOARGS, (PY_METHODCHAR)GetForceIpoActsLocal_doc}, + {"setType", (PyCFunction) KX_IpoActuator::sPySetType, METH_VARARGS, (PY_METHODCHAR)SetType_doc}, + {"getType", (PyCFunction) KX_IpoActuator::sPyGetType, METH_NOARGS, (PY_METHODCHAR)GetType_doc}, {NULL,NULL} //Sentinel }; PyAttributeDef KX_IpoActuator::Attributes[] = { + KX_PYATTRIBUTE_FLOAT_RW("startFrame", 0, 300000, KX_IpoActuator, m_startframe), + KX_PYATTRIBUTE_FLOAT_RW("endFrame", 0, 300000, KX_IpoActuator, m_endframe), + KX_PYATTRIBUTE_STRING_RW("propName", 0, 64, false, KX_IpoActuator, m_propname), + KX_PYATTRIBUTE_STRING_RW("framePropName", 0, 64, false, KX_IpoActuator, m_framepropname), + KX_PYATTRIBUTE_INT_RW("type", KX_ACT_IPO_NODEF+1, KX_ACT_IPO_MAX-1, true, KX_IpoActuator, m_type), + KX_PYATTRIBUTE_BOOL_RW("useIpoAsForce", KX_IpoActuator, m_ipo_as_force), + KX_PYATTRIBUTE_BOOL_RW("useIpoAdd", KX_IpoActuator, m_ipo_add), + KX_PYATTRIBUTE_BOOL_RW("useIpoLocal", KX_IpoActuator, m_ipo_local), + KX_PYATTRIBUTE_BOOL_RW("useChildren", KX_IpoActuator, m_recurse), + { NULL } //Sentinel }; PyObject* KX_IpoActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + + if (!strcmp(attr, "__dict__")) { /* python 3.0 uses .__dir__()*/ + return _getattr_dict(SCA_IActuator::_getattr(attr), Methods, Attributes); + } + _getattr_up(SCA_IActuator); } - +int KX_IpoActuator::_setattr(const char *attr, PyObject *value) // _setattr method +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + + return SCA_IActuator::_setattr(attr, value); +} /* set --------------------------------------------------------------------- */ const char KX_IpoActuator::Set_doc[] = @@ -478,12 +505,15 @@ const char KX_IpoActuator::Set_doc[] = PyObject* KX_IpoActuator::PySet(PyObject* self, PyObject* args, PyObject* kwds) { + + ShowDeprecationWarning("set()", "a number properties"); + /* sets modes PLAY, PINGPONG, FLIPPER, LOOPSTOP, LOOPEND */ /* arg 1 = mode string, arg 2 = startframe, arg3 = stopframe, */ /* arg4 = force toggle */ char* mode; int forceToggle; - IpoActType modenum; + int modenum; int startFrame, stopFrame; if(!PyArg_ParseTuple(args, "siii", &mode, &startFrame, &stopFrame, &forceToggle)) { @@ -518,6 +548,9 @@ const char KX_IpoActuator::SetProperty_doc[] = PyObject* KX_IpoActuator::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) { + + ShowDeprecationWarning("setProperty()", "the propName property"); + /* mode is implicit here, but not supported yet... */ /* args: property */ char *propertyName; @@ -538,6 +571,9 @@ const char KX_IpoActuator::SetStart_doc[] = PyObject* KX_IpoActuator::PySetStart(PyObject* self, PyObject* args, PyObject* kwds) { + + ShowDeprecationWarning("setStart()", "the startFrame property"); + float startArg; if(!PyArg_ParseTuple(args, "f", &startArg)) { return NULL; @@ -552,6 +588,7 @@ const char KX_IpoActuator::GetStart_doc[] = "getStart()\n" "\tReturns the frame from which the ipo starts playing.\n"; PyObject* KX_IpoActuator::PyGetStart(PyObject* self) { + ShowDeprecationWarning("getStart()", "the startFrame property"); return PyFloat_FromDouble(m_startframe); } @@ -563,6 +600,7 @@ const char KX_IpoActuator::SetEnd_doc[] = PyObject* KX_IpoActuator::PySetEnd(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setEnd()", "the endFrame property"); float endArg; if(!PyArg_ParseTuple(args, "f", &endArg)) { return NULL; @@ -577,6 +615,7 @@ const char KX_IpoActuator::GetEnd_doc[] = "getEnd()\n" "\tReturns the frame at which the ipo stops playing.\n"; PyObject* KX_IpoActuator::PyGetEnd(PyObject* self) { + ShowDeprecationWarning("getEnd()", "the endFrame property"); return PyFloat_FromDouble(m_endframe); } @@ -588,6 +627,7 @@ const char KX_IpoActuator::SetIpoAsForce_doc[] = PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setIpoAsForce()", "the useIpoAsForce property"); int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { @@ -605,6 +645,7 @@ const char KX_IpoActuator::GetIpoAsForce_doc[] = "getIpoAsForce()\n" "\tReturns whether to interpret the ipo as a force rather than a displacement.\n"; PyObject* KX_IpoActuator::PyGetIpoAsForce(PyObject* self) { + ShowDeprecationWarning("getIpoAsForce()", "the useIpoAsForce property"); return BoolToPyArg(m_ipo_as_force); } @@ -616,6 +657,7 @@ const char KX_IpoActuator::SetIpoAdd_doc[] = PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setIpoAdd()", "the useIpoAdd property"); int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { @@ -633,6 +675,7 @@ const char KX_IpoActuator::GetIpoAdd_doc[] = "getIpoAsAdd()\n" "\tReturns whether to interpret the ipo as additive rather than absolute.\n"; PyObject* KX_IpoActuator::PyGetIpoAdd(PyObject* self) { + ShowDeprecationWarning("getIpoAdd()", "the useIpoAdd property"); return BoolToPyArg(m_ipo_add); } @@ -644,6 +687,7 @@ const char KX_IpoActuator::SetType_doc[] = PyObject* KX_IpoActuator::PySetType(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setType()", "the type property"); int typeArg; if (!PyArg_ParseTuple(args, "i", &typeArg)) { @@ -651,8 +695,8 @@ PyObject* KX_IpoActuator::PySetType(PyObject* self, } if ( (typeArg > KX_ACT_IPO_NODEF) - && (typeArg < KX_ACT_IPO_KEY2KEY) ) { - m_type = (IpoActType) typeArg; + && (typeArg < KX_ACT_IPO_MAX) ) { + m_type = typeArg; } Py_RETURN_NONE; @@ -662,6 +706,7 @@ const char KX_IpoActuator::GetType_doc[] = "getType()\n" "\tReturns the operation mode of the actuator.\n"; PyObject* KX_IpoActuator::PyGetType(PyObject* self) { + ShowDeprecationWarning("getType()", "the type property"); return PyInt_FromLong(m_type); } @@ -675,6 +720,7 @@ const char KX_IpoActuator::SetForceIpoActsLocal_doc[] = PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setForceIpoActsLocal()", "the useIpoLocal property"); int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { @@ -691,6 +737,7 @@ const char KX_IpoActuator::GetForceIpoActsLocal_doc[] = "\tReturn whether to apply the force in the object's local\n" "\tcoordinates rather than the world global coordinates.\n"; PyObject* KX_IpoActuator::PyGetForceIpoActsLocal(PyObject* self) { + ShowDeprecationWarning("getForceIpoActsLocal()", "the useIpoLocal property"); return BoolToPyArg(m_ipo_local); } diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h index 12e1835ab49..fa8e58ae861 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.h +++ b/source/gameengine/Ketsji/KX_IpoActuator.h @@ -108,9 +108,9 @@ public: static STR_String S_KX_ACT_IPO_KEY2KEY_STRING; static STR_String S_KX_ACT_IPO_FROM_PROP_STRING; - IpoActType string2mode(char* modename); + int string2mode(char* modename); - IpoActType m_type; + int m_type; KX_IpoActuator(SCA_IObject* gameobj, const STR_String& propname, @@ -142,6 +142,8 @@ public: /* --------------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + //KX_PYMETHOD_DOC KX_PYMETHOD_DOC(KX_IpoActuator,Set); KX_PYMETHOD_DOC(KX_IpoActuator,SetProperty); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index d974d67bf33..bc2111571ac 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -970,6 +970,7 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_IPOACT_FLIPPER, KX_IpoActuator::KX_ACT_IPO_FLIPPER); KX_MACRO_addTypesToDict(d, KX_IPOACT_LOOPSTOP, KX_IpoActuator::KX_ACT_IPO_LOOPSTOP); KX_MACRO_addTypesToDict(d, KX_IPOACT_LOOPEND, KX_IpoActuator::KX_ACT_IPO_LOOPEND); + KX_MACRO_addTypesToDict(d, KX_IPOACT_FROM_PROP,KX_IpoActuator::KX_ACT_IPO_FROM_PROP); /* 5. Random distribution types */ KX_MACRO_addTypesToDict(d, KX_RANDOMACT_BOOL_CONST, SCA_RandomActuator::KX_RANDOMACT_BOOL_CONST); diff --git a/source/gameengine/PyDoc/KX_IpoActuator.py b/source/gameengine/PyDoc/KX_IpoActuator.py index e2fe3b289e3..ebc0b855f0a 100644 --- a/source/gameengine/PyDoc/KX_IpoActuator.py +++ b/source/gameengine/PyDoc/KX_IpoActuator.py @@ -5,10 +5,29 @@ from SCA_IActuator import * class KX_IpoActuator(SCA_IActuator): """ IPO actuator activates an animation. + + @ivar startFrame: Start frame. + @type startFrame: float + @ivar endFrame: End frame. + @type endFrame: float + @ivar propName: Use this property to define the Ipo position + @type propName: string + @ivar framePropName: Assign this property this action current frame number + @type framePropName: string + @ivar type: Play mode for the ipo. (In GameLogic.KX_IPOACT_PLAY, KX_IPOACT_PINGPONG, KX_IPOACT_FLIPPER, KX_IPOACT_LOOPSTOP, KX_IPOACT_LOOPEND, KX_IPOACT_FROM_PROP) + @type type: int + @ivar useIpoAsForce: Apply Ipo as a global or local force depending on the local option (dynamic objects only) + @type useIpoAsForce: bool + @ivar useIpoAdd: Ipo is added to the current loc/rot/scale in global or local coordinate according to Local flag + @type useIpoAdd: bool + @ivar useIpoLocal: Let the ipo acts in local coordinates, used in Force and Add mode. + @type useIpoLocal: bool + @ivar useChildren: Update IPO on all children Objects as well + @type useChildren: bool """ def set(mode, startframe, endframe, force): """ - Sets the properties of the actuator. + Sets the properties of the actuator. (B{deprecated}) @param mode: "Play", "PingPong", "Flipper", "LoopStop", "LoopEnd" or "FromProp" @type mode: string @@ -21,70 +40,70 @@ class KX_IpoActuator(SCA_IActuator): """ def setProperty(property): """ - Sets the name of the property to be used in FromProp mode. + Sets the name of the property to be used in FromProp mode. (B{deprecated}) @type property: string """ def setStart(startframe): """ - Sets the frame from which the IPO starts playing. + Sets the frame from which the IPO starts playing. (B{deprecated}) @type startframe: integer """ def getStart(): """ - Returns the frame from which the IPO starts playing. + Returns the frame from which the IPO starts playing. (B{deprecated}) @rtype: integer """ def setEnd(endframe): """ - Sets the frame at which the IPO stops playing. + Sets the frame at which the IPO stops playing. (B{deprecated}) @type endframe: integer """ def getEnd(): """ - Returns the frame at which the IPO stops playing. + Returns the frame at which the IPO stops playing. (B{deprecated}) @rtype: integer """ def setIpoAsForce(force): """ - Set whether to interpret the ipo as a force rather than a displacement. + Set whether to interpret the ipo as a force rather than a displacement. (B{deprecated}) @type force: boolean @param force: KX_TRUE or KX_FALSE """ def getIpoAsForce(): """ - Returns whether to interpret the ipo as a force rather than a displacement. + Returns whether to interpret the ipo as a force rather than a displacement. (B{deprecated}) @rtype: boolean """ def setIpoAdd(add): """ - Set whether to interpret the ipo as additive rather than absolute. + Set whether to interpret the ipo as additive rather than absolute. (B{deprecated}) @type add: boolean @param add: KX_TRUE or KX_FALSE """ def getIpoAdd(): """ - Returns whether to interpret the ipo as additive rather than absolute. + Returns whether to interpret the ipo as additive rather than absolute. (B{deprecated}) @rtype: boolean """ def setType(mode): """ - Sets the operation mode of the actuator. + Sets the operation mode of the actuator. (B{deprecated}) @param mode: KX_IPOACT_PLAY, KX_IPOACT_PINGPONG, KX_IPOACT_FLIPPER, KX_IPOACT_LOOPSTOP, KX_IPOACT_LOOPEND @type mode: string """ def getType(): """ - Returns the operation mode of the actuator. + Returns the operation mode of the actuator. (B{deprecated}) @rtype: integer @return: KX_IPOACT_PLAY, KX_IPOACT_PINGPONG, KX_IPOACT_FLIPPER, KX_IPOACT_LOOPSTOP, KX_IPOACT_LOOPEND @@ -92,7 +111,7 @@ class KX_IpoActuator(SCA_IActuator): def setForceIpoActsLocal(local): """ Set whether to apply the force in the object's local - coordinates rather than the world global coordinates. + coordinates rather than the world global coordinates. (B{deprecated}) @param local: Apply the ipo-as-force in the object's local coordinates? (KX_TRUE, KX_FALSE) @@ -101,5 +120,5 @@ class KX_IpoActuator(SCA_IActuator): def getForceIpoActsLocal(): """ Return whether to apply the force in the object's local - coordinates rather than the world global coordinates. + coordinates rather than the world global coordinates. (B{deprecated}) """ From d585d85cc1692cee815518fac24d63a82880f686 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Thu, 26 Mar 2009 18:45:39 +0000 Subject: [PATCH 024/201] Some small cleanups and reorganization. --- source/nan_definitions.mk | 92 +++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index 70fef129867..866f6245eb9 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -1,4 +1,5 @@ -# +# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*- +# vim: tabstop=8 # $Id$ # # ***** BEGIN GPL LICENSE BLOCK ***** @@ -22,7 +23,7 @@ # # The Original Code is: all of this file. # -# Contributor(s): none yet. +# Contributor(s): GSR # # ***** END GPL LICENSE BLOCK ***** # @@ -102,13 +103,12 @@ endif export NAN_FTGL ?= $(LCGDIR)/gcc/ftgl export NAN_FFMPEG ?= $(LCGDIR)/gcc/ffmpeg export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libavdevice.a - export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg else export NAN_FTGL ?= $(LCGDIR)/ftgl export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a - export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg endif + export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg ifeq ($(WITH_VERSE), true) export NAN_VERSE ?= $(LCGDIR)/verse @@ -119,9 +119,7 @@ endif export WITH_OPENJPEG ?= true ifeq ($(OS),windows) - export NAN_WINTAB ?= $(LCGDIR)/wintab ifeq ($(FREE_WINDOWS), true) - export NAN_PTHREADS ?= $(LCGDIR)/pthreads export NAN_OPENEXR ?= $(LCGDIR)/gcc/openexr export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR @@ -141,9 +139,9 @@ endif else ifeq ($(OS),linux) ifeq ($(WITH_OPENEXR), true) - export NAN_OPENEXR?=$(shell pkg-config --variable=prefix OpenEXR ) - export NAN_OPENEXR_INC?=$(shell pkg-config --cflags OpenEXR ) - export NAN_OPENEXR_LIBS?=$(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" ))) + export NAN_OPENEXR ?= $(shell pkg-config --variable=prefix OpenEXR ) + export NAN_OPENEXR_INC ?= $(shell pkg-config --cflags OpenEXR ) + export NAN_OPENEXR_LIBS ?= $(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" ))) endif else ifeq ($(OS), solaris) @@ -163,9 +161,9 @@ endif endif endif endif - ifeq ($(WITH_OPENEXR), true) - export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR - endif + ifeq ($(WITH_OPENEXR), true) + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + endif endif # Platform Dependent settings go below: @@ -196,7 +194,7 @@ endif export NAN_FREETYPE ?= $(LCGDIR)/freetype export NAN_GETTEXT ?= $(LCGDIR)/gettext export NAN_SDL ?= $(shell sdl-config --prefix) - export NAN_SDLLIBS ?= $(shell sdl-config --libs) + export NAN_SDLLIBS ?= $(shell sdl-config --libs) export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags) # Uncomment the following line to use Mozilla inplace of netscape @@ -223,14 +221,14 @@ endif export ID = $(shell whoami) export HOST = $(shell hostname -s) - export PY_FRAMEWORK = 1 + export PY_FRAMEWORK ?= 1 ifdef PY_FRAMEWORK export NAN_PYTHON ?= /System/Library/Frameworks/Python.framework/Versions/2.3 export NAN_PYTHON_VERSION ?= 2.3 export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) - export NAN_PYTHON_LIB ?= -framework Python - else + export NAN_PYTHON_LIB ?= -framework Python + else export NAN_PYTHON ?= /sw export NAN_PYTHON_VERSION ?= 2.3 export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) @@ -259,7 +257,7 @@ endif # export NAN_NO_KETSJI=true ifeq ($(CPU), i386) - export NAN_NO_OPENAL=true + export NAN_NO_OPENAL=true endif # Uncomment the following line to use Mozilla inplace of netscape @@ -357,7 +355,7 @@ endif export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg export NAN_FFMPEGLIBS = $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a $(NAN_FFMPEG)/lib/libogg.a $(NAN_FFMPEG)/lib/libfaad.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libfaac.a $(NAN_ZLIB)/lib/libz.a export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg - + # Uncomment the following line to use Mozilla inplace of netscape # CPPFLAGS +=-DMOZ_NOT_NET # Location of MOZILLA/Netscape header files... @@ -430,7 +428,7 @@ endif # enable ffmpeg support ifndef NAN_NO_FFMPEG - export WITH_FFMPEG ?= true + export WITH_FFMPEG ?= true endif else @@ -486,7 +484,7 @@ endif export NAN_PYTHON_VERSION ?= 2.5 export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a - export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_OPENAL ?= $(LCGDIR)/openal export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png export NAN_TIFF ?= /usr @@ -527,21 +525,6 @@ endif export NAN_PYTHON ?= $(LCGDIR)/python export NAN_ICONV ?= $(LCGDIR)/iconv export NAN_PYTHON_VERSION ?= 2.5 - ifeq ($(FREE_WINDOWS), true) - export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) - export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/freepy.a - export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype - export NAN_ODE ?= $(LCGDIR)/gcc/ode - export NAN_SDL ?= $(LCGDIR)/gcc/sdl - export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include - else - export NAN_PYTHON_BINARY ?= python - export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python23.lib - export NAN_FREETYPE ?= $(LCGDIR)/freetype - export NAN_ODE ?= $(LCGDIR)/ode - export NAN_SDL ?= $(LCGDIR)/sdl - export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include - endif export NAN_OPENAL ?= $(LCGDIR)/openal export NAN_JPEG ?= $(LCGDIR)/jpeg export NAN_PNG ?= $(LCGDIR)/png @@ -552,11 +535,24 @@ endif export NAN_NSPR ?= $(LCGDIR)/nspr export NAN_GETTEXT ?= $(LCGDIR)/gettext ifeq ($(FREE_WINDOWS), true) - export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/freegettext.a $(NAN_ICONV)/lib/freeiconv.a + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/freegettext.a $(NAN_ICONV)/lib/freeiconv.a + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/freepy.a + export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype + export NAN_ODE ?= $(LCGDIR)/gcc/ode + export NAN_SDL ?= $(LCGDIR)/gcc/sdl + export NAN_PTHREADS ?= $(LCGDIR)/pthreads else - export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/gnu_gettext.lib $(NAN_ICONV)/lib/iconv.lib + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/gnu_gettext.lib $(NAN_ICONV)/lib/iconv.lib + export NAN_PYTHON_BINARY ?= python + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python23.lib + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_ODE ?= $(LCGDIR)/ode + export NAN_SDL ?= $(LCGDIR)/sdl endif + export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include + export NAN_WINTAB ?= $(LCGDIR)/wintab # Uncomment the following line to use Mozilla inplace of netscape # CPPFLAGS +=-DMOZ_NOT_NET # Location of MOZILLA/Netscape header files... @@ -564,7 +560,7 @@ endif export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB # if this is not set. - export NAN_PYTHON_BINARY ?= python + export NAN_PYTHON_BINARY ?= python export NAN_BUILDINFO ?= true # Be paranoid regarding library creation (do not update archives) export NAN_PARANOID ?= true @@ -619,16 +615,16 @@ endif # enable freetype2 support for text objects #export WITH_FREETYPE2 ?= true - endif + endif # windows + fallback + endif # solaris + endif # openbsd + endif # linux + endif # irix + endif # freebsd + endif # darwin + endif # beos -endif -endif -endif -endif -endif -endif -endif -endif +endif # CONFIG_GUESS # Don't want to build the gameengine? ifeq ($(NAN_NO_KETSJI), true) @@ -639,4 +635,4 @@ endif # INTERNATIONAL implies WITH_FREETYPE2 ifeq ($(INTERNATIONAL), true) export WITH_FREETYPE2=true -endif +endif From e392eb4d9c9eb98730a841cb4317835122d69287 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Fri, 27 Mar 2009 16:27:48 +0000 Subject: [PATCH 025/201] Fixed a couple of null issues spotted by coverity. CIDS: 42 and 470 Kent --- source/blender/blenkernel/intern/anim.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 731c2a18c55..87d7bfc4853 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -223,14 +223,16 @@ int where_on_path(Object *ob, float ctime, float *vec, float *dir) /* returns OK cu= ob->data; if(cu->path==NULL || cu->path->data==NULL) { printf("no path!\n"); + return 0; } path= cu->path; fp= path->data; /* test for cyclic */ bl= cu->bev.first; + if (!bl) return 0; if (!bl->nr) return 0; - if(bl && bl->poly> -1) cycl= 1; + if(bl->poly> -1) cycl= 1; ctime *= (path->len-1); From 059c2a10c4df53a7cd96689e8a60be2afd4b4d46 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Fri, 27 Mar 2009 21:54:16 +0000 Subject: [PATCH 026/201] BGE API cleanup: AddObject, DeleteObject and Scene actuator added. --- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 110 ++++++++++++------ .../Ketsji/KX_SCA_AddObjectActuator.h | 11 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 65 +++++++++++ source/gameengine/Ketsji/KX_SceneActuator.h | 4 + .../PyDoc/KX_SCA_AddObjectActuator.py | 15 +++ source/gameengine/PyDoc/KX_SceneActuator.py | 14 +++ 6 files changed, 179 insertions(+), 40 deletions(-) diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 68b704f4889..7c4f60a7f0a 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -38,7 +38,7 @@ #include "SCA_IScene.h" #include "KX_GameObject.h" #include "KX_IPhysicsController.h" - +#include "blendef.h" #include "PyObjectPlus.h" #ifdef HAVE_CONFIG_H @@ -53,9 +53,9 @@ KX_SCA_AddObjectActuator::KX_SCA_AddObjectActuator(SCA_IObject *gameobj, SCA_IObject *original, int time, SCA_IScene* scene, - const MT_Vector3& linvel, + const float *linvel, bool linv_local, - const MT_Vector3& angvel, + const float *angvel, bool angv_local, PyTypeObject* T) : @@ -63,12 +63,16 @@ KX_SCA_AddObjectActuator::KX_SCA_AddObjectActuator(SCA_IObject *gameobj, m_OriginalObject(original), m_scene(scene), - m_linear_velocity(linvel), m_localLinvFlag(linv_local), - - m_angular_velocity(angvel), m_localAngvFlag(angv_local) { + m_linear_velocity[0] = linvel[0]; + m_linear_velocity[1] = linvel[1]; + m_linear_velocity[2] = linvel[2]; + m_angular_velocity[0] = angvel[0]; + m_angular_velocity[1] = angvel[1]; + m_angular_velocity[2] = angvel[2]; + if (m_OriginalObject) m_OriginalObject->RegisterActuator(this); @@ -188,6 +192,7 @@ PyParentObject KX_SCA_AddObjectActuator::Parents[] = { NULL }; PyMethodDef KX_SCA_AddObjectActuator::Methods[] = { + // ---> deprecated {"setTime", (PyCFunction) KX_SCA_AddObjectActuator::sPySetTime, METH_O, (PY_METHODCHAR)SetTime_doc}, {"getTime", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetTime, METH_NOARGS, (PY_METHODCHAR)GetTime_doc}, {"getLinearVelocity", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetLinearVelocity, METH_NOARGS, (PY_METHODCHAR)GetLinearVelocity_doc}, @@ -196,8 +201,6 @@ PyMethodDef KX_SCA_AddObjectActuator::Methods[] = { {"setAngularVelocity", (PyCFunction) KX_SCA_AddObjectActuator::sPySetAngularVelocity, METH_VARARGS, (PY_METHODCHAR)SetAngularVelocity_doc}, {"getLastCreatedObject", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetLastCreatedObject, METH_NOARGS,"getLastCreatedObject() : get the object handle to the last created object\n"}, {"instantAddObject", (PyCFunction) KX_SCA_AddObjectActuator::sPyInstantAddObject, METH_NOARGS,"instantAddObject() : immediately add object without delay\n"}, - - // ---> deprecated {"setObject", (PyCFunction) KX_SCA_AddObjectActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc}, {"getObject", (PyCFunction) KX_SCA_AddObjectActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc}, @@ -205,41 +208,65 @@ PyMethodDef KX_SCA_AddObjectActuator::Methods[] = { }; PyAttributeDef KX_SCA_AddObjectActuator::Attributes[] = { + KX_PYATTRIBUTE_RW_FUNCTION("object",KX_SCA_AddObjectActuator,pyattr_get_object,pyattr_set_object), + KX_PYATTRIBUTE_RO_FUNCTION("objectLastCreated",KX_SCA_AddObjectActuator,pyattr_get_objectLastCreated), + KX_PYATTRIBUTE_INT_RW("time",0,2000,true,KX_SCA_AddObjectActuator,m_timeProp), + KX_PYATTRIBUTE_FLOAT_ARRAY_RW("linearVelocity",-MAXFLOAT,MAXFLOAT,KX_SCA_AddObjectActuator,m_linear_velocity,3), + KX_PYATTRIBUTE_FLOAT_ARRAY_RW("angularVelocity",-MAXFLOAT,MAXFLOAT,KX_SCA_AddObjectActuator,m_angular_velocity,3), { NULL } //Sentinel }; -PyObject* KX_SCA_AddObjectActuator::_getattr(const char *attr) +PyObject* KX_SCA_AddObjectActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) { - if (!strcmp(attr, "object")) { - if (!m_OriginalObject) Py_RETURN_NONE; - else return m_OriginalObject->AddRef(); - } else if (!strcmp(attr, "objectLastCreated")) { - if (!m_OriginalObject) Py_RETURN_NONE; - else return m_lastCreatedObject->AddRef(); - } - - _getattr_up(SCA_IActuator); + KX_SCA_AddObjectActuator* actuator = static_cast(self); + if (!actuator->m_OriginalObject) + Py_RETURN_NONE; + else + return actuator->m_OriginalObject->AddRef(); } -int KX_SCA_AddObjectActuator::_setattr(const char *attr, PyObject* value) { - - if (!strcmp(attr, "object")) { - KX_GameObject *gameobj; +int KX_SCA_AddObjectActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_SCA_AddObjectActuator* actuator = static_cast(self); + KX_GameObject *gameobj; - if (!ConvertPythonToGameObject(value, &gameobj, true)) - return 1; // ConvertPythonToGameObject sets the error + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return 1; // ConvertPythonToGameObject sets the error - if (m_OriginalObject != NULL) - m_OriginalObject->UnregisterActuator(this); + if (actuator->m_OriginalObject != NULL) + actuator->m_OriginalObject->UnregisterActuator(actuator); - m_OriginalObject = (SCA_IObject*)gameobj; + actuator->m_OriginalObject = (SCA_IObject*)gameobj; - if (m_OriginalObject) - m_OriginalObject->RegisterActuator(this); + if (actuator->m_OriginalObject) + actuator->m_OriginalObject->RegisterActuator(actuator); - return 0; - } - + return 0; +} + +PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SCA_AddObjectActuator* actuator = static_cast(self); + if (!actuator->m_lastCreatedObject) + Py_RETURN_NONE; + else + return actuator->m_lastCreatedObject->AddRef(); +} + + +PyObject* KX_SCA_AddObjectActuator::_getattr(const char *attr) +{ + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_IActuator); +} + +int KX_SCA_AddObjectActuator::_setattr(const char *attr, PyObject* value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; return SCA_IActuator::_setattr(attr, value); } @@ -280,6 +307,7 @@ const char KX_SCA_AddObjectActuator::SetTime_doc[] = PyObject* KX_SCA_AddObjectActuator::PySetTime(PyObject* self, PyObject* value) { + ShowDeprecationWarning("setTime()", "the time property"); int deltatime = PyInt_AsLong(value); if (deltatime==-1 && PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "expected an int"); @@ -296,12 +324,13 @@ PyObject* KX_SCA_AddObjectActuator::PySetTime(PyObject* self, PyObject* value) /* 3. getTime */ const char KX_SCA_AddObjectActuator::GetTime_doc[] = -"GetTime()\n" +"getTime()\n" "\tReturns the lifetime of the object that will be added.\n"; PyObject* KX_SCA_AddObjectActuator::PyGetTime(PyObject* self) { + ShowDeprecationWarning("getTime()", "the time property"); return PyInt_FromLong(m_timeProp); } @@ -339,6 +368,7 @@ const char KX_SCA_AddObjectActuator::GetLinearVelocity_doc[] = PyObject* KX_SCA_AddObjectActuator::PyGetLinearVelocity(PyObject* self) { + ShowDeprecationWarning("getLinearVelocity()", "the linearVelocity property"); PyObject *retVal = PyList_New(3); PyList_SET_ITEM(retVal, 0, PyFloat_FromDouble(m_linear_velocity[0])); @@ -361,12 +391,15 @@ const char KX_SCA_AddObjectActuator::SetLinearVelocity_doc[] = PyObject* KX_SCA_AddObjectActuator::PySetLinearVelocity(PyObject* self, PyObject* args) { + ShowDeprecationWarning("setLinearVelocity()", "the linearVelocity property"); float vecArg[3]; if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) return NULL; - m_linear_velocity.setValue(vecArg); + m_linear_velocity[0] = vecArg[0]; + m_linear_velocity[1] = vecArg[1]; + m_linear_velocity[2] = vecArg[2]; Py_RETURN_NONE; } @@ -378,6 +411,7 @@ const char KX_SCA_AddObjectActuator::GetAngularVelocity_doc[] = PyObject* KX_SCA_AddObjectActuator::PyGetAngularVelocity(PyObject* self) { + ShowDeprecationWarning("getAngularVelocity()", "the angularVelocity property"); PyObject *retVal = PyList_New(3); PyList_SET_ITEM(retVal, 0, PyFloat_FromDouble(m_angular_velocity[0])); @@ -400,12 +434,15 @@ const char KX_SCA_AddObjectActuator::SetAngularVelocity_doc[] = PyObject* KX_SCA_AddObjectActuator::PySetAngularVelocity(PyObject* self, PyObject* args) { + ShowDeprecationWarning("setAngularVelocity()", "the angularVelocity property"); float vecArg[3]; if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) return NULL; - m_angular_velocity.setValue(vecArg); + m_angular_velocity[0] = vecArg[0]; + m_angular_velocity[1] = vecArg[1]; + m_angular_velocity[2] = vecArg[2]; Py_RETURN_NONE; } @@ -417,7 +454,7 @@ void KX_SCA_AddObjectActuator::InstantAddObject() // Now it needs to be added to the current scene. SCA_IObject* replica = m_scene->AddReplicaObject(m_OriginalObject,GetParent(),m_timeProp ); KX_GameObject * game_obj = static_cast(replica); - game_obj->setLinearVelocity(m_linear_velocity,m_localLinvFlag); + game_obj->setLinearVelocity(m_linear_velocity ,m_localLinvFlag); game_obj->setAngularVelocity(m_angular_velocity,m_localAngvFlag); game_obj->ResolveCombinedVelocities(m_linear_velocity, m_angular_velocity, m_localLinvFlag, m_localAngvFlag); @@ -453,6 +490,7 @@ const char KX_SCA_AddObjectActuator::GetLastCreatedObject_doc[] = PyObject* KX_SCA_AddObjectActuator::PyGetLastCreatedObject(PyObject* self) { + ShowDeprecationWarning("getLastCreatedObject()", "the objectLastCreated property"); SCA_IObject* result = this->GetLastCreatedObject(); // if result->GetSGNode() is NULL diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h index 18298cbcb0c..c8cc7113347 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h @@ -59,12 +59,12 @@ class KX_SCA_AddObjectActuator : public SCA_IActuator SCA_IScene* m_scene; /// Linear velocity upon creation of the object. - MT_Vector3 m_linear_velocity; + float m_linear_velocity[3]; /// Apply the velocity locally bool m_localLinvFlag; /// Angular velocity upon creation of the object. - MT_Vector3 m_angular_velocity; + float m_angular_velocity[3]; /// Apply the velocity locally bool m_localAngvFlag; @@ -85,9 +85,9 @@ public: SCA_IObject *original, int time, SCA_IScene* scene, - const MT_Vector3& linvel, + const float *linvel, bool linv_local, - const MT_Vector3& angvel, + const float *angvel, bool angv_local, PyTypeObject* T=&Type ); @@ -140,6 +140,9 @@ public: /* 10. instantAddObject*/ KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,InstantAddObject); + static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); }; /* end of class KX_SCA_AddObjectActuator : public KX_EditObjectActuator */ diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 1cad4e21352..579c53974d5 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -259,24 +259,83 @@ PyParentObject KX_SceneActuator::Parents[] = PyMethodDef KX_SceneActuator::Methods[] = { + //Deprecated functions ------> {"setUseRestart", (PyCFunction) KX_SceneActuator::sPySetUseRestart, METH_VARARGS, (PY_METHODCHAR)SetUseRestart_doc}, {"setScene", (PyCFunction) KX_SceneActuator::sPySetScene, METH_VARARGS, (PY_METHODCHAR)SetScene_doc}, {"setCamera", (PyCFunction) KX_SceneActuator::sPySetCamera, METH_VARARGS, (PY_METHODCHAR)SetCamera_doc}, {"getUseRestart", (PyCFunction) KX_SceneActuator::sPyGetUseRestart, METH_VARARGS, (PY_METHODCHAR)GetUseRestart_doc}, {"getScene", (PyCFunction) KX_SceneActuator::sPyGetScene, METH_VARARGS, (PY_METHODCHAR)GetScene_doc}, {"getCamera", (PyCFunction) KX_SceneActuator::sPyGetCamera, METH_VARARGS, (PY_METHODCHAR)GetCamera_doc}, + //<----- Deprecated {NULL,NULL} //Sentinel }; PyAttributeDef KX_SceneActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("scene",0,32,true,KX_SceneActuator,m_nextSceneName), + KX_PYATTRIBUTE_RW_FUNCTION("camera",KX_SceneActuator,pyattr_get_camera,pyattr_set_camera), { NULL } //Sentinel }; PyObject* KX_SceneActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } +int KX_SceneActuator::_setattr(const char *attr, PyObject *value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} + +PyObject* KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SceneActuator* actuator = static_cast(self); + if (!actuator->m_camera) + Py_RETURN_NONE; + actuator->m_camera->AddRef(); + return actuator->m_camera; +} + +int KX_SceneActuator::pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_SceneActuator* actuator = static_cast(self); + KX_Camera *camOb; + + if (PyObject_TypeCheck(value, &KX_Camera::Type)) + { + camOb = static_cast(value); + if (actuator->m_camera) + actuator->m_camera->UnregisterActuator(actuator); + actuator->m_camera = camOb; + if (actuator->m_camera) + actuator->m_camera->RegisterActuator(actuator); + return 0; + } + + if (PyString_Check(value)) + { + char *camName = PyString_AsString(value); + + camOb = actuator->FindCamera(camName); + if (camOb) + { + if (actuator->m_camera) + actuator->m_camera->UnregisterActuator(actuator); + actuator->m_camera = camOb; + actuator->m_camera->RegisterActuator(actuator); + return 0; + } + PyErr_SetString(PyExc_TypeError, "not a valid camera name"); + return 1; + } + PyErr_SetString(PyExc_TypeError, "expected a string or a camera object reference"); + return 1; +} /* 2. setUseRestart--------------------------------------------------------- */ @@ -288,6 +347,7 @@ PyObject* KX_SceneActuator::PySetUseRestart(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setUseRestart()", "(no replacement)"); int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) @@ -310,6 +370,7 @@ PyObject* KX_SceneActuator::PyGetUseRestart(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getUseRestart()", "(no replacement)"); return PyInt_FromLong(!(m_restart == 0)); } @@ -324,6 +385,7 @@ PyObject* KX_SceneActuator::PySetScene(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setScene()", "the scene property"); /* one argument: a scene, ignore the rest */ char *scene_name; @@ -348,6 +410,7 @@ PyObject* KX_SceneActuator::PyGetScene(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getScene()", "the scene property"); return PyString_FromString(m_nextSceneName); } @@ -362,6 +425,7 @@ PyObject* KX_SceneActuator::PySetCamera(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setCamera()", "the camera property"); PyObject *cam; if (PyArg_ParseTuple(args, "O!", &KX_Camera::Type, &cam)) { @@ -403,6 +467,7 @@ PyObject* KX_SceneActuator::PyGetCamera(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getCamera()", "the camera property"); return PyString_FromString(m_camera->GetName()); } /* eof */ diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h index af11af955bf..83b0d63bcd2 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.h +++ b/source/gameengine/Ketsji/KX_SceneActuator.h @@ -93,6 +93,7 @@ class KX_SceneActuator : public SCA_IActuator /* --------------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); /* 1. set */ /* Removed */ @@ -110,6 +111,9 @@ class KX_SceneActuator : public SCA_IActuator /* 7. getCamera: */ KX_PYMETHOD_DOC(KX_SceneActuator,GetCamera); + static PyObject* pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + }; /* end of class KXSceneActuator */ #endif diff --git a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py index 56068fa641a..974ef718ccf 100644 --- a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py @@ -9,6 +9,12 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): @type object: KX_GameObject or None @ivar objectLastCreated: the last added object from this actuator (read only). @type objectLastCreated: KX_GameObject or None + @ivar time: the lifetime of added objects, in frames. + @type time: integer + @ivar linearVelocity: the initial linear velocity of added objects. + @type linearVelocity: list [vx, vy, vz] + @ivar angularVelocity: the initial angular velocity of added objects. + @type angularVelocity: list [vx, vy, vz] @warning: An Add Object actuator will be ignored if at game start, the linked object doesn't exist (or is empty) or the linked object is in an active layer. @@ -19,6 +25,7 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def setObject(object): """ + DEPRECATED: use the object property Sets the game object to add. A copy of the object will be added to the scene when the actuator is activated. @@ -31,6 +38,7 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def getObject(name_only = 0): """ + DEPRECATED: use the object property Returns the name of the game object to be added. Returns None if no game object has been assigned to be added. @@ -40,6 +48,7 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def setTime(time): """ + DEPRECATED: use the time property Sets the lifetime of added objects, in frames. If time == 0, the object will last forever. @@ -49,12 +58,14 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def getTime(): """ + DEPRECATED: use the time property Returns the lifetime of the added object, in frames. @rtype: integer """ def setLinearVelocity(vx, vy, vz): """ + DEPRECATED: use the linearVelocity property Sets the initial linear velocity of added objects. @type vx: float @@ -66,12 +77,14 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def getLinearVelocity(): """ + DEPRECATED: use the linearVelocity property Returns the initial linear velocity of added objects. @rtype: list [vx, vy, vz] """ def setAngularVelocity(vx, vy, vz): """ + DEPRECATED: use the angularVelocity property Sets the initial angular velocity of added objects. @type vx: float @@ -83,12 +96,14 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): """ def getAngularVelocity(): """ + DEPRECATED: use the angularVelocity property Returns the initial angular velocity of added objects. @rtype: list [vx, vy, vz] """ def getLastCreatedObject(): """ + DEPRECATED: use the objectLastCreated property Returns the last object created by this actuator. @rtype: L{KX_GameObject} diff --git a/source/gameengine/PyDoc/KX_SceneActuator.py b/source/gameengine/PyDoc/KX_SceneActuator.py index cfb40ae072f..c8912783ab7 100644 --- a/source/gameengine/PyDoc/KX_SceneActuator.py +++ b/source/gameengine/PyDoc/KX_SceneActuator.py @@ -12,21 +12,32 @@ class KX_SceneActuator(SCA_IActuator): This will generate a warning in the console: C{ERROR: GameObject I{OBName} has a SceneActuator I{ActuatorName} (SetScene) without scene} + + Properties: + + @ivar scene: the name of the scene to change to/overlay/underlay/remove/suspend/resume + @type scene: string. + @ivar camera: the camera to change to. + When setting the attribute, you can use either a L{KX_Camera} or the name of the camera. + @type camera: L{KX_Camera} on read, string or L{KX_Camera} on write """ def setUseRestart(flag): """ + DEPRECATED Set flag to True to restart the scene. @type flag: boolean """ def setScene(scene): """ + DEPRECATED: use the scene property instead Sets the name of the scene to change to/overlay/underlay/remove/suspend/resume. @type scene: string """ def setCamera(camera): """ + DEPRECATED: use the camera property instead Sets the camera to change to. Camera can be either a L{KX_Camera} or the name of the camera. @@ -35,12 +46,14 @@ class KX_SceneActuator(SCA_IActuator): """ def getUseRestart(): """ + DEPRECATED Returns True if the scene will be restarted. @rtype: boolean """ def getScene(): """ + DEPRECATED: use the scene property instead Returns the name of the scene to change to/overlay/underlay/remove/suspend/resume. Returns an empty string ("") if no scene has been set. @@ -49,6 +62,7 @@ class KX_SceneActuator(SCA_IActuator): """ def getCamera(): """ + DEPRECATED: use the camera property instead Returns the name of the camera to change to. @rtype: string From afec4049626690e91e75dc88f3b9097a21f9c168 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Fri, 27 Mar 2009 22:11:30 +0000 Subject: [PATCH 027/201] BGE API Cleanup: GameActuator (patch from Andre) --- source/gameengine/Ketsji/KX_GameActuator.cpp | 35 +++++++++++++++----- source/gameengine/Ketsji/KX_GameActuator.h | 4 +++ source/gameengine/PyDoc/KX_GameActuator.py | 7 ++++ 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index 3c0695b5952..6799ac7269c 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -241,21 +241,44 @@ PyParentObject KX_GameActuator::Parents[] = PyMethodDef KX_GameActuator::Methods[] = { + // Deprecated -----> {"getFile", (PyCFunction) KX_GameActuator::sPyGetFile, METH_VARARGS, (PY_METHODCHAR)GetFile_doc}, {"setFile", (PyCFunction) KX_GameActuator::sPySetFile, METH_VARARGS, (PY_METHODCHAR)SetFile_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_GameActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("file",0,100,false,KX_GameActuator,m_filename), { NULL } //Sentinel }; +PyObject* +KX_GameActuator::_getattr(const char *attr) +{ + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_IActuator); +} + +int KX_GameActuator::_setattr(const char *attr, PyObject *value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} + + +// Deprecated -----> /* getFile */ const char KX_GameActuator::GetFile_doc[] = "getFile()\n" "get the name of the file to start.\n"; PyObject* KX_GameActuator::PyGetFile(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getFile()", "the file property"); return PyString_FromString(m_filename); } @@ -266,6 +289,8 @@ const char KX_GameActuator::SetFile_doc[] = PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* kwds) { char* new_file; + + ShowDeprecationWarning("setFile()", "the file property"); if (!PyArg_ParseTuple(args, "s", &new_file)) { @@ -277,12 +302,4 @@ PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* k Py_RETURN_NONE; } - - - -PyObject* KX_GameActuator::_getattr(const char *attr) -{ - _getattr_up(SCA_IActuator); -} - - +// <----- diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h index 856fa0c24e9..ad638254c31 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.h +++ b/source/gameengine/Ketsji/KX_GameActuator.h @@ -78,8 +78,12 @@ protected: /* --------------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + + // Deprecated functions -----> KX_PYMETHOD_DOC(KX_GameActuator,GetFile); KX_PYMETHOD_DOC(KX_GameActuator,SetFile); + // <----- }; /* end of class KX_GameActuator */ diff --git a/source/gameengine/PyDoc/KX_GameActuator.py b/source/gameengine/PyDoc/KX_GameActuator.py index b916b3b5617..fc5bd6005fc 100644 --- a/source/gameengine/PyDoc/KX_GameActuator.py +++ b/source/gameengine/PyDoc/KX_GameActuator.py @@ -5,15 +5,22 @@ from SCA_IActuator import * class KX_GameActuator(SCA_IActuator): """ The game actuator loads a new .blend file, restarts the current .blend file or quits the game. + + Properties: + + @ivar file: the new .blend file to load + @type file: string. """ def getFile(): """ + DEPRECATED: use the file property Returns the filename of the new .blend file to load. @rtype: string """ def setFile(filename): """ + DEPRECATED: use the file property Sets the new .blend file to load. @param filename: The file name this actuator will load. From f61ce664bce8799dead8c746806a045bca3d67d1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 28 Mar 2009 04:25:21 +0000 Subject: [PATCH 028/201] Tooltip fix, there is no such thing as "Tadius interpolation" --- source/blender/src/buttons_editing.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 7b564bdd7a3..134f794af93 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -3527,12 +3527,12 @@ static void editing_panel_curve_tools(Object *ob, Curve *cu) 450,90,72, 18, 0, 0, 0, 0, 0, ""); /* KEY_LINEAR, KEY_CARDINAL, KEY_BSPLINE */ uiDefButS(block, MENU, B_TILTINTERP, "Tilt Interpolation %t|Linear%x0|Cardinal%x1|BSpline %x2|Ease%x3", - 495,90,66, 18, &(nu->tilt_interp), 0, 0, 0, 0, "Tadius interpolation for 3D curves"); + 495,90,66, 18, &(nu->tilt_interp), 0, 0, 0, 0, "Tilt interpolation for 3D, bezier curves"); uiDefBut(block, LABEL, 0, "Radius", 450,70,72, 18, 0, 0, 0, 0, 0, ""); uiDefButS(block, MENU, B_TILTINTERP, "Radius Interpolation %t|Linear%x0|Cardinal%x1|BSpline %x2|Ease%x3", - 495,70,66, 18, &(nu->radius_interp), 0, 0, 0, 0, "Radius interpolation"); + 495,70,66, 18, &(nu->radius_interp), 0, 0, 0, 0, "Radius interpolation for bezier curves"); } uiBlockBeginAlign(block); From 6fd597b30446f23513ce6481219863c4abed3b7e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 28 Mar 2009 05:51:18 +0000 Subject: [PATCH 029/201] removed unneeded arg from makeknots() and replaced some numbers with defines --- source/blender/blenkernel/BKE_curve.h | 2 +- source/blender/blenkernel/intern/curve.c | 14 ++--- source/blender/python/api2_2x/CurNurb.c | 8 +-- source/blender/python/api2_2x/SurfNurb.c | 14 ++--- source/blender/src/buttons_editing.c | 8 +-- source/blender/src/drawobject.c | 4 +- source/blender/src/drawview.c | 2 +- source/blender/src/editcurve.c | 80 ++++++++++++------------ source/blender/src/editobject.c | 4 +- 9 files changed, 68 insertions(+), 68 deletions(-) diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h index 25d6d78c4aa..a6619958797 100644 --- a/source/blender/blenkernel/BKE_curve.h +++ b/source/blender/blenkernel/BKE_curve.h @@ -63,7 +63,7 @@ void duplicateNurblist( struct ListBase *lb1, struct ListBase *lb2); void test2DNurb( struct Nurb *nu); void minmaxNurb( struct Nurb *nu, float *min, float *max); -void makeknots( struct Nurb *nu, short uv, short type); +void makeknots( struct Nurb *nu, short uv); void makeNurbfaces(struct Nurb *nu, float *coord_array, int rowstride); void makeNurbcurve(struct Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, int resolu); diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 7fa4f406c7b..e303f78b163 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -554,8 +554,8 @@ static void makecyclicknots(float *knots, short pnts, short order) } -/* type - 0: uniform, 1: endpoints, 2: bezier, note, cyclic nurbs are always uniform */ -void makeknots(Nurb *nu, short uv, short type) + +void makeknots(Nurb *nu, short uv) { if( (nu->type & 7)==CU_NURBS ) { if(uv == 1) { @@ -566,7 +566,7 @@ void makeknots(Nurb *nu, short uv, short type) calcknots(nu->knotsu, nu->pntsu, nu->orderu, 0); /* cyclic should be uniform */ makecyclicknots(nu->knotsu, nu->pntsu, nu->orderu); } else { - calcknots(nu->knotsu, nu->pntsu, nu->orderu, type); + calcknots(nu->knotsu, nu->pntsu, nu->orderu, nu->flagu>>1); } } else nu->knotsu= NULL; @@ -579,7 +579,7 @@ void makeknots(Nurb *nu, short uv, short type) calcknots(nu->knotsv, nu->pntsv, nu->orderv, 0); /* cyclic should be uniform */ makecyclicknots(nu->knotsv, nu->pntsv, nu->orderv); } else { - calcknots(nu->knotsv, nu->pntsv, nu->orderv, type); + calcknots(nu->knotsv, nu->pntsv, nu->orderv, nu->flagv>>1); } } else nu->knotsv= NULL; @@ -2333,7 +2333,7 @@ void sethandlesNurb(short code) if(code==1 || code==2) { nu= editNurb.first; while(nu) { - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; while(a--) { @@ -2363,7 +2363,7 @@ void sethandlesNurb(short code) } else { /* Toggle */ while(nu) { - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; while(a--) { @@ -2380,7 +2380,7 @@ void sethandlesNurb(short code) } nu= editNurb.first; while(nu) { - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; while(a--) { diff --git a/source/blender/python/api2_2x/CurNurb.c b/source/blender/python/api2_2x/CurNurb.c index 456f11e4a54..a32fce8cc48 100644 --- a/source/blender/python/api2_2x/CurNurb.c +++ b/source/blender/python/api2_2x/CurNurb.c @@ -564,7 +564,7 @@ PyObject *CurNurb_appendPointToNurb( Nurb * nurb, PyObject * value ) tmp->radius = radius; tmp->weight = 0.0; /* softbody weight TODO - add access to this, is zero elsewhere but through blender is 1.0 by default */ - makeknots( nurb, 1, nurb->flagu >> 1 ); + makeknots(nurb, 1); } else { /* bail with error */ @@ -649,7 +649,7 @@ static int CurNurb_setFlagU( BPy_CurNurb * self, PyObject * args ) if( self->nurb->flagu != value ) { self->nurb->flagu = (short)value; - makeknots( self->nurb, 1, self->nurb->flagu >> 1 ); + makeknots(self->nurb, 1); } return 0; @@ -698,7 +698,7 @@ static int CurNurb_setFlagV( BPy_CurNurb * self, PyObject * args ) if( self->nurb->flagv != value ) { self->nurb->flagv = (short)value; - makeknots( self->nurb, 2, self->nurb->flagv >> 1 ); + makeknots( self->nurb, 2); } return 0; @@ -728,7 +728,7 @@ static int CurNurb_setOrderU( BPy_CurNurb * self, PyObject * args ) order = self->nurb->pntsu; self->nurb->orderu = (short)order; - makeknots( self->nurb, 1, self->nurb->flagu >> 1 ); + makeknots(self->nurb, 1); return 0; } diff --git a/source/blender/python/api2_2x/SurfNurb.c b/source/blender/python/api2_2x/SurfNurb.c index deee6c07793..e75bb340272 100644 --- a/source/blender/python/api2_2x/SurfNurb.c +++ b/source/blender/python/api2_2x/SurfNurb.c @@ -195,7 +195,7 @@ static PyObject *SurfNurb_appendPointToNurb( Nurb * nurb, PyObject * args ) nurb->bp[npoints].alfa = 0.0f; } - makeknots( nurb, 1, nurb->flagu >> 1 ); + makeknots(nurb, 1); } else { return EXPP_ReturnPyObjError( PyExc_TypeError, @@ -322,7 +322,7 @@ static int SurfNurb_setFlagU( BPy_SurfNurb * self, PyObject * args ) flagu = (flagu << 1) | (self->nurb->flagu & CU_CYCLIC); if( self->nurb->flagu != flagu ) { self->nurb->flagu = (short)flagu; - makeknots( self->nurb, 1, self->nurb->flagu >> 1 ); + makeknots(self->nurb, 1); } return 0; @@ -366,7 +366,7 @@ static int SurfNurb_setFlagV( BPy_SurfNurb * self, PyObject * args ) flagv = (flagv << 1) | (self->nurb->flagv & CU_CYCLIC); if( self->nurb->flagv != flagv ) { self->nurb->flagv = (short)flagv; - makeknots( self->nurb, 2, self->nurb->flagv >> 1 ); + makeknots(self->nurb, 2); } return 0; @@ -402,7 +402,7 @@ static int SurfNurb_setOrderU( BPy_SurfNurb * self, PyObject * args ) order = self->nurb->pntsu; self->nurb->orderu = (short)order; - makeknots( self->nurb, 1, self->nurb->flagu >> 1 ); + makeknots(self->nurb, 1); return 0; } @@ -431,7 +431,7 @@ static int SurfNurb_setOrderV( BPy_SurfNurb * self, PyObject * args ) order = self->nurb->pntsv; self->nurb->orderv = (short)order; - makeknots( self->nurb, 2, self->nurb->flagv >> 1 ); + makeknots(self->nurb, 2); return 0; } @@ -467,7 +467,7 @@ static int SurfNurb_setCyclicU( BPy_SurfNurb * self, PyObject * value ) self->nurb->flagu |= CU_CYCLIC; else self->nurb->flagu &= ~CU_CYCLIC; - makeknots( self->nurb, 1, self->nurb->flagu >> 1 ); + makeknots(self->nurb, 1); return 0; } @@ -482,7 +482,7 @@ static int SurfNurb_setCyclicV( BPy_SurfNurb * self, PyObject * value ) self->nurb->flagv |= CU_CYCLIC; else self->nurb->flagv &= ~CU_CYCLIC; - makeknots( self->nurb, 2, self->nurb->flagv >> 1 ); + makeknots(self->nurb, 2); return 0; } diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 134f794af93..2f77e3659ee 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -3311,13 +3311,13 @@ void do_curvebuts(unsigned short event) nu->flagu &= CU_CYCLIC; /* disable all flags except for CU_CYCLIC */ nu->flagu |= ((event-B_UNIFU)<<1); clamp_nurb_order_u(nu); - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } else if(nu->pntsv>1) { nu->flagv &= CU_CYCLIC; /* disable all flags except for CU_CYCLIC */ nu->flagv |= ((event-B_UNIFV)<<1); clamp_nurb_order_v(nu); - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } } } @@ -3359,11 +3359,11 @@ void do_curvebuts(unsigned short event) if(clamp_nurb_order_u(nu)) { scrarea_queue_winredraw(curarea); } - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); if(clamp_nurb_order_v(nu)) { scrarea_queue_winredraw(curarea); } - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } BIF_undo_push("Make knots"); DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 43991194658..2063ac42bb1 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -3777,7 +3777,7 @@ static void tekenhandlesN(Nurb *nu, short sel) glBegin(GL_LINES); - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { if(sel) col= nurbcol+4; else col= nurbcol; @@ -3834,7 +3834,7 @@ static void tekenvertsN(Nurb *nu, short sel) bglBegin(GL_POINTS); - if((nu->type & 7)==1) { + if((nu->type & 7)==CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c index 2cc8a9510a6..cd40b5e0ae2 100644 --- a/source/blender/src/drawview.c +++ b/source/blender/src/drawview.c @@ -1773,7 +1773,7 @@ static void v3d_editvertex_buts(uiBlock *block, Object *ob, float lim) nu= editNurb.first; while(nu) { - if((nu->type & 7)==1) { + if((nu->type & 7)==CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; while(a--) { diff --git a/source/blender/src/editcurve.c b/source/blender/src/editcurve.c index 594ff816ec1..0e697c5c5c4 100644 --- a/source/blender/src/editcurve.c +++ b/source/blender/src/editcurve.c @@ -691,7 +691,7 @@ void deleteflagNurb(short flag) nu->bp= newbp; clamp_nurb_order_v(nu); - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } else { /* is the nurb in V direction selected */ @@ -737,7 +737,7 @@ void deleteflagNurb(short flag) nu->pntsu= newu; clamp_nurb_order_u(nu); } - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } } } @@ -785,7 +785,7 @@ short extrudeflagNurb(int flag) nu->pntsv= 2; nu->orderv= 2; - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } } else { @@ -828,7 +828,7 @@ short extrudeflagNurb(int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsv++; - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } else if(v==0 || v== nu->pntsu-1) { /* collumn in v-direction selected */ ok= 1; @@ -855,7 +855,7 @@ short extrudeflagNurb(int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsu++; - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } } } @@ -949,7 +949,7 @@ void adduplicateflagNurb(short flag) /* knots */ newnu->knotsu= NULL; - makeknots(newnu, 1, newnu->flagu>>1); + makeknots(newnu, 1); } bp++; } @@ -1013,14 +1013,14 @@ void adduplicateflagNurb(short flag) if(nu->pntsu==newnu->pntsu && nu->knotsu) { newnu->knotsu= MEM_dupallocN( nu->knotsu ); } else { - makeknots(newnu, 1, newnu->flagu>>1); + makeknots(newnu, 1); } } if (check_valid_nurb_v(newnu)) { if(nu->pntsv==newnu->pntsv && nu->knotsv) { newnu->knotsv= MEM_dupallocN( nu->knotsv ); } else { - makeknots(newnu, 2, newnu->flagv>>1); + makeknots(newnu, 2); } } } @@ -1779,8 +1779,8 @@ void subdivideNurb() nu->bp= bpnew; nu->pntsu+= amount; - if(nu->type & 4) { - makeknots(nu, 1, nu->flagu>>1); + if(nu->type & CU_NURBS) { + makeknots(nu, 1); } } } /* End of 'else if(nu->pntsv==1)' */ @@ -1891,8 +1891,8 @@ void subdivideNurb() nu->bp= bpnew; nu->pntsu= 2*nu->pntsu-1; nu->pntsv= 2*nu->pntsv-1; - makeknots(nu, 1, nu->flagu>>1); - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 1); + makeknots(nu, 2); } /* End of 'if(sel== nu->pntsu*nu->pntsv)' (subdivide entire NURB) */ else { /* subdivide in v direction? */ @@ -1935,7 +1935,7 @@ void subdivideNurb() MEM_freeN(nu->bp); nu->bp= bpnew; nu->pntsv+= sel; - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } else { /* or in u direction? */ @@ -1975,7 +1975,7 @@ void subdivideNurb() MEM_freeN(nu->bp); nu->bp= bpnew; nu->pntsu+= sel; - makeknots(nu, 1, nu->flagu>>1); /* shift knots + makeknots(nu, 1); /* shift knots forward */ } } @@ -2119,7 +2119,7 @@ int convertspline(short type, Nurb *nu) BPoint *bp; int a, c, nr; - if((nu->type & 7)==0) { /* Poly */ + if((nu->type & 7)==CU_POLY) { if(type==CU_BEZIER) { /* to Bezier with vecthandles */ nr= nu->pntsu; bezt = @@ -2140,16 +2140,16 @@ int convertspline(short type, Nurb *nu) nu->bp= 0; nu->pntsu= nr; nu->type &= ~7; - nu->type |= 1; + nu->type |= CU_BEZIER; calchandlesNurb(nu); } else if(type==CU_NURBS) { nu->type &= ~7; - nu->type+= 4; + nu->type |= CU_NURBS; nu->orderu= 4; nu->flagu &= CU_CYCLIC; /* disable all flags except for cyclic */ nu->flagu += 4; - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); a= nu->pntsu*nu->pntsv; bp= nu->bp; while(a--) { @@ -2203,7 +2203,7 @@ int convertspline(short type, Nurb *nu) if(type== 4) { nu->flagu &= CU_CYCLIC; /* disable all flags except for cyclic */ nu->flagu += 4; - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } } } @@ -2245,7 +2245,7 @@ int convertspline(short type, Nurb *nu) nu->knotsu= NULL; nu->pntsu= nr; nu->type &= ~7; - nu->type+= 1; + nu->type |= CU_BEZIER; } } } @@ -2493,12 +2493,12 @@ void merge_2_nurb(Nurb *nu1, Nurb *nu2) } } - if((nu1->type & 7)==4) { + if((nu1->type & 7)==CU_NURBS) { /* merge knots */ - makeknots(nu1, 1, nu1->flagu>>1); + makeknots(nu1, 1); /* make knots, for merged curved for example */ - makeknots(nu1, 2, nu1->flagv>>1); + makeknots(nu1, 2); } MEM_freeN(temp); @@ -2681,9 +2681,9 @@ void addsegment_nurb() BLI_remlink(&editNurb, nu2); /* now join the knots */ - if((nu1->type & 7)==4) { + if((nu1->type & 7)==CU_NURBS) { if(nu1->knotsu==NULL) { - makeknots(nu1, 1, nu1->flagu>>1); + makeknots(nu1, 1); } else { fp= MEM_mallocN(sizeof(float)*KNOTSU(nu1), "addsegment3"); @@ -2879,7 +2879,7 @@ static void spin_nurb(float *dvec, short mode) if(isNurbsel(nu)) { nu->orderv= 4; nu->flagv |= CU_CYCLIC; - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); } } } @@ -2993,7 +2993,7 @@ void addvert_Nurb(int mode) if(bp) { nu->pntsu++; - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); if(mode=='e') { VECCOPY(newbp->vec, bp->vec); @@ -3070,7 +3070,7 @@ void makecyclicNurb() for(nu= editNurb.first; nu; nu= nu->next) { if( nu->pntsu>1 || nu->pntsv>1) { - if( (nu->type & 7)==0 ) { + if( (nu->type & 7)==CU_POLY ) { a= nu->pntsu; bp= nu->bp; while(a--) { @@ -3100,7 +3100,7 @@ void makecyclicNurb() while(a--) { if( bp->f1 & SELECT ) { nu->flagu ^= CU_CYCLIC; - makeknots(nu, 1, nu->flagu>>1); /* 1==u type is ignored for cyclic curves */ + makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */ break; } bp++; @@ -3119,11 +3119,11 @@ void makecyclicNurb() if( bp->f1 & SELECT) { if(cyclmode==1 && nu->pntsu>1) { nu->flagu ^= CU_CYCLIC; - makeknots(nu, 1, nu->flagu>>1); /* 1==u type is ignored for cyclic curves */ + makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */ } if(cyclmode==2 && nu->pntsv>1) { nu->flagv ^= CU_CYCLIC; - makeknots(nu, 2, nu->flagv>>1); /* 2==v type is ignored for cyclic curves */ + makeknots(nu, 2); /* 2==v type is ignored for cyclic curves */ } break; } @@ -3760,7 +3760,7 @@ void delNurb() clamp_nurb_order_u(nu); }*/ } - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } nu= next; } @@ -4148,9 +4148,9 @@ Nurb *addNurbprim(int type, int stype, int newname) bp= nu->bp; for(a=0;a<4;a++, bp++) Mat3MulVecfl(imat,bp->vec); - if((type & 7)==4) { + if((type & 7)==CU_NURBS) { nu->knotsu= 0; /* makeknots allocates */ - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } } @@ -4185,7 +4185,7 @@ Nurb *addNurbprim(int type, int stype, int newname) if((type & 7)==4) { nu->knotsu= 0; /* makeknots allocates */ - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } break; @@ -4270,7 +4270,7 @@ Nurb *addNurbprim(int type, int stype, int newname) bp++; } - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); } break; case 2: /* 4x4 patch */ @@ -4307,8 +4307,8 @@ Nurb *addNurbprim(int type, int stype, int newname) } } - makeknots(nu, 1, nu->flagu>>1); - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 1); + makeknots(nu, 2); } break; case 3: /* tube */ @@ -4370,7 +4370,7 @@ Nurb *addNurbprim(int type, int stype, int newname) bp++; } nu->flagu= 4; - makeknots(nu, 1, nu->flagu>>1); + makeknots(nu, 1); BLI_addtail(&editNurb, nu); /* temporal for spin */ if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0) @@ -4378,7 +4378,7 @@ Nurb *addNurbprim(int type, int stype, int newname) else spin_nurb(0, 0); - makeknots(nu, 2, nu->flagv>>1); + makeknots(nu, 2); a= nu->pntsu*nu->pntsv; bp= nu->bp; diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index 2a1d508bf59..bb9be49c347 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -2034,7 +2034,7 @@ void docenter(int centermode) nu= nu1; while(nu) { - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { a= nu->pntsu; while (a--) { VecSubf(nu->bezt[a].vec[0], nu->bezt[a].vec[0], cent); @@ -4076,7 +4076,7 @@ static void apply_objects_internal( int apply_scale, int apply_rot ) nu= cu->nurb.first; while(nu) { - if( (nu->type & 7)==1) { + if( (nu->type & 7)==CU_BEZIER) { a= nu->pntsu; bezt= nu->bezt; while(a--) { From fdc6df925390ec5e2814609e968a7c95155f7139 Mon Sep 17 00:00:00 2001 From: Andrea Weikert Date: Sat, 28 Mar 2009 11:09:53 +0000 Subject: [PATCH 030/201] game engine compile fix for MSVC, game engine team might want to check. --- source/gameengine/Converter/KX_ConvertActuators.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index 3a6122e6608..f7635856ad9 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -585,15 +585,6 @@ void BL_ConvertActuators(char* maggiename, originalval = converter->FindGameObject(editobact->ob); } } - MT_Vector3 linvelvec ( - KX_BLENDERTRUNC(editobact->linVelocity[0]), - KX_BLENDERTRUNC(editobact->linVelocity[1]), - KX_BLENDERTRUNC(editobact->linVelocity[2])); - - MT_Vector3 angvelvec ( - KX_BLENDERTRUNC(editobact->angVelocity[0]), - KX_BLENDERTRUNC(editobact->angVelocity[1]), - KX_BLENDERTRUNC(editobact->angVelocity[2])); KX_SCA_AddObjectActuator* tmpaddact = new KX_SCA_AddObjectActuator( @@ -601,9 +592,9 @@ void BL_ConvertActuators(char* maggiename, originalval, editobact->time, scene, - linvelvec.getValue(), + editobact->linVelocity, (editobact->localflag & ACT_EDOB_LOCAL_LINV)!=0, - angvelvec.getValue(), + editobact->angVelocity, (editobact->localflag & ACT_EDOB_LOCAL_ANGV)!=0 ); From 02191a1d396c838a0c90e4f08e4e2883c357102d Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Sat, 28 Mar 2009 19:31:22 +0000 Subject: [PATCH 031/201] Moved EXR settings to OS related zone. It had its own "which OS" conditionals, so please check the moving did change the result. --- source/nan_definitions.mk | 85 ++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 50 deletions(-) diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index 866f6245eb9..027a97eaf8e 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -118,55 +118,6 @@ endif export WITH_DDS ?= true export WITH_OPENJPEG ?= true - ifeq ($(OS),windows) - ifeq ($(FREE_WINDOWS), true) - export NAN_OPENEXR ?= $(LCGDIR)/gcc/openexr - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a - export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR - else - export NAN_OPENEXR ?= $(LCGDIR)/openexr - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/IlmImf.lib $(NAN_OPENEXR)/lib/Half.lib $(NAN_OPENEXR)/lib/Iex.lib - export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/IlmImf -I$(NAN_OPENEXR)/include/Imath -I$(NAN_OPENEXR)/include/Iex - endif - else - ifeq ($(OS),darwin) - export NAN_OPENEXR ?= $(LCGDIR)/openexr - ifeq ($(CPU),powerpc) - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a - else - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a - endif - else - ifeq ($(OS),linux) - ifeq ($(WITH_OPENEXR), true) - export NAN_OPENEXR ?= $(shell pkg-config --variable=prefix OpenEXR ) - export NAN_OPENEXR_INC ?= $(shell pkg-config --cflags OpenEXR ) - export NAN_OPENEXR_LIBS ?= $(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" ))) - endif - else - ifeq ($(OS), solaris) - # this only exists at the moment for i386-64 CPU Types at the moment - export NAN_OPENEXR ?= $(LCGDIR)/openexr - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a -lrt - else - ifeq ($(OS), irix) - ifeq ($(IRIX_USE_GCC), true) - export NAN_OPENEXR ?= $(LCGDIR)/openexr/gcc - else - export NAN_OPENEXR ?= $(LCGDIR)/openexr - endif - endif - export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR - export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a - endif - endif - endif - ifeq ($(WITH_OPENEXR), true) - export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR - endif - - endif - # Platform Dependent settings go below: ifeq ($(NAN_USE_FFMPEG_CONFIG), true) export NAN_FFMPEG ?= $(shell ffmpeg-config --prefix) @@ -174,6 +125,7 @@ endif export NAN_FFMPEGCFLAGS ?= $(shell ffmpeg-config --cflags) endif + # Platform Dependent settings go below: ifeq ($(OS),beos) export ID = $(USER) @@ -254,6 +206,14 @@ endif export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a -framework Cocoa -framework IOKit + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + ifeq ($(CPU),powerpc) + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a + else + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a + endif + # export NAN_NO_KETSJI=true ifeq ($(CPU), i386) @@ -356,6 +316,14 @@ endif export NAN_FFMPEGLIBS = $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a $(NAN_FFMPEG)/lib/libogg.a $(NAN_FFMPEG)/lib/libfaad.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libfaac.a $(NAN_ZLIB)/lib/libz.a export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg + ifeq ($(IRIX_USE_GCC), true) + export NAN_OPENEXR ?= $(LCGDIR)/openexr/gcc + else + export NAN_OPENEXR ?= $(LCGDIR)/openexr + endif + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a + # Uncomment the following line to use Mozilla inplace of netscape # CPPFLAGS +=-DMOZ_NOT_NET # Location of MOZILLA/Netscape header files... @@ -406,6 +374,12 @@ ifneq ($(NAN_USE_FFMPEG_CONFIG), true) export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include endif + ifeq ($(WITH_OPENEXR), true) + export NAN_OPENEXR ?= $(shell pkg-config --variable=prefix OpenEXR ) + export NAN_OPENEXR_INC ?= $(shell pkg-config --cflags OpenEXR ) + export NAN_OPENEXR_LIBS ?= $(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" ))) + endif + # Uncomment the following line to use Mozilla inplace of netscape export CPPFLAGS += -DMOZ_NOT_NET # Location of MOZILLA/Netscape header files... @@ -500,6 +474,11 @@ endif export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include/SDL export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a + # this only exists at the moment for i386-64 CPU Types at the moment + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a -lrt + # Uncomment the following line to use Mozilla inplace of netscape # CPPFLAGS +=-DMOZ_NOT_NET # Location of MOZILLA/Netscape header files... @@ -541,6 +520,9 @@ endif export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype export NAN_ODE ?= $(LCGDIR)/gcc/ode export NAN_SDL ?= $(LCGDIR)/gcc/sdl + export NAN_OPENEXR ?= $(LCGDIR)/gcc/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a export NAN_PTHREADS ?= $(LCGDIR)/pthreads else export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/gnu_gettext.lib $(NAN_ICONV)/lib/iconv.lib @@ -549,6 +531,9 @@ endif export NAN_FREETYPE ?= $(LCGDIR)/freetype export NAN_ODE ?= $(LCGDIR)/ode export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/IlmImf -I$(NAN_OPENEXR)/include/Imath -I$(NAN_OPENEXR)/include/Iex + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/IlmImf.lib $(NAN_OPENEXR)/lib/Half.lib $(NAN_OPENEXR)/lib/Iex.lib endif export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include @@ -615,7 +600,7 @@ endif # enable freetype2 support for text objects #export WITH_FREETYPE2 ?= true - endif # windows + fallback + endif # windows + fallback endif # solaris endif # openbsd endif # linux From d57811ada14ad3f9833e77b2cff0d624c7e1ff89 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 29 Mar 2009 15:17:55 +0000 Subject: [PATCH 032/201] BGE API cleanup: CDActuator, ParentActuator, VisibilityActuator done. Thanks to Andre. --- source/gameengine/Ketsji/KX_CDActuator.cpp | 93 ++++++++++++++++--- source/gameengine/Ketsji/KX_CDActuator.h | 17 +++- .../gameengine/Ketsji/KX_ParentActuator.cpp | 67 ++++++++----- source/gameengine/Ketsji/KX_ParentActuator.h | 8 +- .../Ketsji/KX_VisibilityActuator.cpp | 23 ++++- .../gameengine/Ketsji/KX_VisibilityActuator.h | 6 +- source/gameengine/PyDoc/KX_CDActuator.py | 21 +++++ source/gameengine/PyDoc/KX_ParentActuator.py | 5 +- .../gameengine/PyDoc/KX_VisibilityActuator.py | 7 +- 9 files changed, 195 insertions(+), 52 deletions(-) diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index ef7883910fd..98f76dbee54 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -98,7 +98,7 @@ bool KX_CDActuator::Update() SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL); SND_CDObject::Instance()->SetTrack(1); SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); - result = true; + //result = true; break; } case KX_CDACT_PLAY_TRACK: @@ -106,7 +106,7 @@ bool KX_CDActuator::Update() SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK); SND_CDObject::Instance()->SetTrack(m_track); SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); - result = true; + //result = true; break; } case KX_CDACT_LOOP_TRACK: @@ -114,7 +114,7 @@ bool KX_CDActuator::Update() SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL); SND_CDObject::Instance()->SetTrack(m_track); SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); - result = true; + //result = true; break; } case KX_CDACT_STOP: @@ -125,19 +125,19 @@ bool KX_CDActuator::Update() case KX_CDACT_PAUSE: { SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE); - result = true; + //result = true; break; } case KX_CDACT_RESUME: { SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME); - result = true; + //result = true; break; } case KX_CDACT_VOLUME: { SND_CDObject::Instance()->SetGain(m_gain); - result = true; + //result = true; break; } default: @@ -189,53 +189,116 @@ PyParentObject KX_CDActuator::Parents[] = { PyMethodDef KX_CDActuator::Methods[] = { - {"startCD",(PyCFunction) KX_CDActuator::sPyStartCD,METH_VARARGS,NULL}, - {"pauseCD",(PyCFunction) KX_CDActuator::sPyPauseCD,METH_VARARGS,NULL}, - {"stopCD",(PyCFunction) KX_CDActuator::sPyStopCD,METH_VARARGS,NULL}, + // Deprecated -----> {"setGain",(PyCFunction) KX_CDActuator::sPySetGain,METH_VARARGS,NULL}, {"getGain",(PyCFunction) KX_CDActuator::sPyGetGain,METH_VARARGS,NULL}, + // <----- + KX_PYMETHODTABLE_NOARGS(KX_CDActuator, startCD), + KX_PYMETHODTABLE_NOARGS(KX_CDActuator, pauseCD), + KX_PYMETHODTABLE_NOARGS(KX_CDActuator, resumeCD), + KX_PYMETHODTABLE_NOARGS(KX_CDActuator, stopCD), + KX_PYMETHODTABLE_NOARGS(KX_CDActuator, playAll), + KX_PYMETHODTABLE_O(KX_CDActuator, playTrack), {NULL,NULL,NULL,NULL} //Sentinel }; PyAttributeDef KX_CDActuator::Attributes[] = { + KX_PYATTRIBUTE_FLOAT_RW_CHECK("volume", 0.0, 1.0, KX_CDActuator, m_gain,pyattr_setGain), + KX_PYATTRIBUTE_INT_RW("track", 1, 99, false, KX_CDActuator, m_track), { NULL } //Sentinel }; +int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_CDActuator* act = static_cast(self); + SND_CDObject::Instance()->SetGain(act->m_gain); + return 0; +} + PyObject* KX_CDActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } +int KX_CDActuator::_setattr(const char *attr, PyObject *value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} + - -PyObject* KX_CDActuator::PyStartCD(PyObject* self, PyObject* args, PyObject* kwds) +KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, startCD, +"startCD()\n" +"\tStarts the CD playing.\n") { SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); Py_RETURN_NONE; } - -PyObject* KX_CDActuator::PyPauseCD(PyObject* self, PyObject* args, PyObject* kwds) +KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, pauseCD, +"pauseCD()\n" +"\tPauses the CD playing.\n") { SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE); Py_RETURN_NONE; } +KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, resumeCD, +"resumeCD()\n" +"\tResumes the CD playing.\n") +{ + SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME); + Py_RETURN_NONE; +} -PyObject* KX_CDActuator::PyStopCD(PyObject* self, PyObject* args, PyObject* kwds) + +KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, stopCD, +"stopCD()\n" +"\tStops the CD playing.\n") { SND_CDObject::Instance()->SetPlaystate(SND_MUST_STOP); Py_RETURN_NONE; } +KX_PYMETHODDEF_DOC_O(KX_CDActuator, playTrack, +"playTrack(trackNumber)\n" +"\tPlays the track selected.\n") +{ + if (PyInt_Check(value)) { + int track = PyInt_AsLong(value); + SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK); + SND_CDObject::Instance()->SetTrack(track); + SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); + } + Py_RETURN_NONE; +} + + +KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, playAll, +"playAll()\n" +"\tPlays the CD from the beginning.\n") +{ + SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL); + SND_CDObject::Instance()->SetTrack(1); + SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY); + Py_RETURN_NONE; +} + +// Deprecated -----> PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds) { float gain = 1.0; + ShowDeprecationWarning("setGain()", "the volume property"); if (!PyArg_ParseTuple(args, "f", &gain)) return NULL; @@ -249,7 +312,9 @@ PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwd PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds) { float gain = SND_CDObject::Instance()->GetGain(); + ShowDeprecationWarning("getGain()", "the volume property"); PyObject* result = PyFloat_FromDouble(gain); return result; } +// <----- diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h index 393c49083f9..08ca6a82db3 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.h +++ b/source/gameengine/Ketsji/KX_CDActuator.h @@ -82,12 +82,23 @@ public: /* -------------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); - KX_PYMETHOD(KX_CDActuator,StartCD); - KX_PYMETHOD(KX_CDActuator,PauseCD); - KX_PYMETHOD(KX_CDActuator,StopCD); + // Deprecated -----> KX_PYMETHOD(KX_CDActuator,SetGain); KX_PYMETHOD(KX_CDActuator,GetGain); + // <----- + + KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, startCD); + KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, pauseCD); + KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, resumeCD); + KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, stopCD); + KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, playAll); + KX_PYMETHOD_DOC_O(KX_CDActuator, playTrack); + + static int pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + + }; #endif //__KX_CDACTUATOR diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 84d7ccb9c05..fc5d679f200 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -166,48 +166,64 @@ PyParentObject KX_ParentActuator::Parents[] = { }; PyMethodDef KX_ParentActuator::Methods[] = { - // ---> deprecated (all) - {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc}, - {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc}, + // Deprecated -----> + {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc}, + {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_ParentActuator::Attributes[] = { + KX_PYATTRIBUTE_RW_FUNCTION("object", KX_ParentActuator, pyattr_get_object, pyattr_set_object), { NULL } //Sentinel }; +PyObject* KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_ParentActuator* actuator = static_cast(self); + if (!actuator->m_ob) + Py_RETURN_NONE; + else + return actuator->m_ob->AddRef(); +} + +int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_ParentActuator* actuator = static_cast(self); + KX_GameObject *gameobj; + + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return 1; // ConvertPythonToGameObject sets the error + + if (actuator->m_ob != NULL) + actuator->m_ob->UnregisterActuator(actuator); + + actuator->m_ob = (SCA_IObject*) gameobj; + + if (actuator->m_ob) + actuator->m_ob->RegisterActuator(actuator); + + return 0; +} + + PyObject* KX_ParentActuator::_getattr(const char *attr) { - if (!strcmp(attr, "object")) { - if (!m_ob) Py_RETURN_NONE; - else return m_ob->AddRef(); - } - + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } int KX_ParentActuator::_setattr(const char *attr, PyObject* value) { - if (!strcmp(attr, "object")) { - KX_GameObject *gameobj; - - if (!ConvertPythonToGameObject(value, &gameobj, true)) - return 1; // ConvertPythonToGameObject sets the error - - if (m_ob != NULL) - m_ob->UnregisterActuator(this); - - m_ob = (SCA_IObject*)gameobj; - - if (m_ob) - m_ob->RegisterActuator(this); - - return 0; - } - + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; return SCA_IActuator::_setattr(attr, value); } +/* Deprecated -----> */ /* 1. setObject */ const char KX_ParentActuator::SetObject_doc[] = "setObject(object)\n" @@ -255,5 +271,6 @@ PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args) else return m_ob->AddRef(); } +/* <----- */ /* eof */ diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h index c974001c0d0..c647e6cc8a9 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.h +++ b/source/gameengine/Ketsji/KX_ParentActuator.h @@ -79,10 +79,14 @@ class KX_ParentActuator : public SCA_IActuator virtual PyObject* _getattr(const char *attr); virtual int _setattr(const char *attr, PyObject* value); - /* 1. setObject */ + /* These are used to get and set m_ob */ + static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + + // Deprecated -----> KX_PYMETHOD_DOC_O(KX_ParentActuator,SetObject); - /* 2. getObject */ KX_PYMETHOD_DOC_VARARGS(KX_ParentActuator,GetObject); + // <----- }; /* end of class KX_ParentActuator : public SCA_PropertyActuator */ diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 0ec280080bd..6d3c4e79280 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -121,20 +121,34 @@ KX_VisibilityActuator::Parents[] = { PyMethodDef KX_VisibilityActuator::Methods[] = { - {"set", (PyCFunction) KX_VisibilityActuator::sPySetVisible, - METH_VARARGS, (PY_METHODCHAR)SetVisible_doc}, + // Deprecated -----> + {"set", (PyCFunction) KX_VisibilityActuator::sPySetVisible, METH_VARARGS, + (PY_METHODCHAR) SetVisible_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_VisibilityActuator::Attributes[] = { + KX_PYATTRIBUTE_BOOL_RW("visibility", KX_VisibilityActuator, m_visible), + KX_PYATTRIBUTE_BOOL_RW("recursion", KX_VisibilityActuator, m_recursive), { NULL } //Sentinel }; -PyObject* KX_VisibilityActuator::_getattr(const char *attr) +PyObject* KX_VisibilityActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); -}; +} +int KX_VisibilityActuator::_setattr(const char *attr, PyObject *value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} /* set visibility ---------------------------------------------------------- */ @@ -149,6 +163,7 @@ KX_VisibilityActuator::PySetVisible(PyObject* self, PyObject* args, PyObject* kwds) { int vis; + ShowDeprecationWarning("SetVisible()", "the visible property"); if(!PyArg_ParseTuple(args, "i", &vis)) { return NULL; diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h index 323280de8cb..2e2a5957777 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.h +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h @@ -68,8 +68,12 @@ class KX_VisibilityActuator : public SCA_IActuator /* --------------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); - //KX_PYMETHOD_DOC + virtual int _setattr(const char *attr, PyObject *value); + + // Deprecated -----> KX_PYMETHOD_DOC(KX_VisibilityActuator,SetVisible); + // <----- + }; diff --git a/source/gameengine/PyDoc/KX_CDActuator.py b/source/gameengine/PyDoc/KX_CDActuator.py index 2c202476584..ffc8ddefa43 100644 --- a/source/gameengine/PyDoc/KX_CDActuator.py +++ b/source/gameengine/PyDoc/KX_CDActuator.py @@ -3,6 +3,13 @@ from SCA_IActuator import * class KX_CDActuator(SCA_IActuator): + """ + CD Controller actuator. + @ivar volume: controls the volume to set the CD to. 0.0 = silent, 1.0 = max volume. + @type volume: float + @ivar track: the track selected to be played + @type track: integer + """ def startCD(): """ Starts the CD playing. @@ -15,8 +22,21 @@ class KX_CDActuator(SCA_IActuator): """ Pauses the CD. """ + def resumeCD(): + """ + Resumes the CD after a pause. + """ + def playAll(): + """ + Plays the CD from the beginning. + """ + def playTrack(trackNumber): + """ + Plays the track selected. + """ def setGain(gain): """ + DEPRECATED: Use the volume property. Sets the gain (volume) of the CD. @type gain: float @@ -24,6 +44,7 @@ class KX_CDActuator(SCA_IActuator): """ def getGain(): """ + DEPRECATED: Use the volume property. Gets the current gain (volume) of the CD. @rtype: float diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py index 7b5625ec82d..76252e5cfad 100644 --- a/source/gameengine/PyDoc/KX_ParentActuator.py +++ b/source/gameengine/PyDoc/KX_ParentActuator.py @@ -4,13 +4,13 @@ from SCA_IActuator import * class KX_ParentActuator(SCA_IActuator): """ - The parent actuator can set or remove an objects parent object. - + The parent actuator can set or remove an objects parent object. @ivar object: the object this actuator sets the parent too. @type object: KX_GameObject or None """ def setObject(object): """ + DEPRECATED: Use the object property. Sets the object to set as parent. Object can be either a L{KX_GameObject} or the name of the object. @@ -19,6 +19,7 @@ class KX_ParentActuator(SCA_IActuator): """ def getObject(name_only = 1): """ + DEPRECATED: Use the object property. Returns the name of the object to change to. @type name_only: bool @param name_only: optional argument, when 0 return a KX_GameObject diff --git a/source/gameengine/PyDoc/KX_VisibilityActuator.py b/source/gameengine/PyDoc/KX_VisibilityActuator.py index 22499f25d81..17d22fa5f83 100644 --- a/source/gameengine/PyDoc/KX_VisibilityActuator.py +++ b/source/gameengine/PyDoc/KX_VisibilityActuator.py @@ -5,13 +5,18 @@ from SCA_IActuator import * class KX_VisibilityActuator(SCA_IActuator): """ Visibility Actuator. + @ivar visibility: whether the actuator makes its parent object visible or invisible + @type visibility: boolean + @ivar recursion: whether the visibility/invisibility should be propagated to all children of the object + @type recursion: boolean """ def set(visible): """ + DEPRECATED: Use the visibility property instead. Sets whether the actuator makes its parent object visible or invisible. @param visible: - True: Makes its parent visible. - False: Makes its parent invisible. """ - \ No newline at end of file + From 30fa7a7286a2d4b5f8abedc2ce43602fb229b25c Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sun, 29 Mar 2009 18:34:35 +0000 Subject: [PATCH 033/201] Only apply advanced setting of angular/linear factor to rigid bodies (with angular rotation). The setting broke 'dynamic'-only objects. --- .../Ketsji/KX_ConvertPhysicsObjects.cpp | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp index 9b2d7403974..8002da6b8d4 100644 --- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp +++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp @@ -1106,16 +1106,19 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, if (rbody) { - btVector3 linearFactor( - objprop->m_lockXaxis? 0 : 1, - objprop->m_lockYaxis? 0 : 1, - objprop->m_lockZaxis? 0 : 1); - btVector3 angularFactor( - objprop->m_lockXRotaxis? 0 : 1, - objprop->m_lockYRotaxis? 0 : 1, - objprop->m_lockZRotaxis? 0 : 1); - rbody->setLinearFactor(linearFactor); - rbody->setAngularFactor(angularFactor); + if (objprop->m_angular_rigidbody) + { + btVector3 linearFactor( + objprop->m_lockXaxis? 0 : 1, + objprop->m_lockYaxis? 0 : 1, + objprop->m_lockZaxis? 0 : 1); + btVector3 angularFactor( + objprop->m_lockXRotaxis? 0 : 1, + objprop->m_lockYRotaxis? 0 : 1, + objprop->m_lockZRotaxis? 0 : 1); + rbody->setLinearFactor(linearFactor); + rbody->setAngularFactor(angularFactor); + } if (rbody && objprop->m_disableSleeping) { From b182778e7155abe09bd2101b851fb1178c9babb8 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sun, 29 Mar 2009 19:54:05 +0000 Subject: [PATCH 034/201] Applied patch #18446, to do versions on damping Re-enable vertex welding, only for soft bodies. They require it. Future versions could expose such vertexWeldingThreshold. --- source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenloader/intern/readfile.c | 10 ++++ source/blender/src/buttons_logic.c | 48 ++++++++++--------- .../Ketsji/KX_ConvertPhysicsObjects.cpp | 5 +- .../Physics/Bullet/CcdPhysicsController.cpp | 33 +++++++++---- .../Physics/Bullet/CcdPhysicsController.h | 12 ++--- 6 files changed, 69 insertions(+), 41 deletions(-) diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index a6334e665d1..db6d4762b17 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -41,7 +41,7 @@ struct ListBase; struct MemFile; #define BLENDER_VERSION 248 -#define BLENDER_SUBVERSION 2 +#define BLENDER_SUBVERSION 3 #define BLENDER_MINVERSION 245 #define BLENDER_MINSUBVERSION 15 diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2c6a2f2bb3a..c2eaae011c8 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -8024,6 +8024,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main) sce->toolsettings->skgen_retarget_roll = SK_RETARGET_ROLL_VIEW; } } + + if (main->versionfile < 248 || (main->versionfile == 248 && main->subversionfile < 3)) { + Object *ob; + + /* Adjustments needed after Bullets update */ + for(ob = main->object.first; ob; ob= ob->id.next) { + ob->damping *= 0.635f; + ob->rdamping = 0.1 + (0.59f * ob->rdamping); + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 01520061a19..cf6d29da0d3 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -3122,30 +3122,32 @@ static uiBlock *advanced_bullet_menu(void *arg_ob) "Collision margin"); yco -= 20; - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_X_AXIS, 0, "Lock X Axis", - xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of linear motion along the X axis"); - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_X_ROT_AXIS, 0, "Lock X Rot Xxis", - xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of angular motion along the X axis"); - yco -= 20; - xco=0; - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Y_AXIS, 0, "Lock Y Axis", - xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of linear motion along the Y axis"); - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Y_ROT_AXIS, 0, "Lock Y Rot Axis", - xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of angular motion along the Y axis"); - - yco -= 20; - xco=0; - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Z_AXIS, 0, "Lock Z Axis", - xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of linear motion along the Z axis"); - uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Z_ROT_AXIS, 0, "Lock Z Rot Axis", - xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, - "Disable simulation of angular motion along the Z axis"); + if (ob->gameflag & OB_RIGID_BODY) + { + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_X_AXIS, 0, "Lock X Axis", + xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of linear motion along the X axis"); + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_X_ROT_AXIS, 0, "Lock X Rot Xxis", + xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of angular motion along the X axis"); + yco -= 20; + xco=0; + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Y_AXIS, 0, "Lock Y Axis", + xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of linear motion along the Y axis"); + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Y_ROT_AXIS, 0, "Lock Y Rot Axis", + xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of angular motion along the Y axis"); + yco -= 20; + xco=0; + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Z_AXIS, 0, "Lock Z Axis", + xco, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of linear motion along the Z axis"); + uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Z_ROT_AXIS, 0, "Lock Z Rot Axis", + xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, + "Disable simulation of angular motion along the Z axis"); + } /* uiDefButBitI(block, TOG, OB_BSB_COL_CL_RS, 0, "Cluster Collision RS", xco, yco, 180, 19, &ob->bsoft->collisionflags, 0, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp index 8002da6b8d4..03149859f4d 100644 --- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp +++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp @@ -882,10 +882,9 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, shapeInfo->SetMesh(meshobj, false,false); } - // Note! since 2.48a bullet mesh conversion has been sped up not to remove doubles - // if softbody needs this there should be some post processing filter for softbody meshes. + // Soft bodies require welding. Only avoid remove doubles for non-soft bodies! if (objprop->m_softbody) - shapeInfo->setVertexWeldingThreshold(0.01f); //todo: expose this to the UI + shapeInfo->setVertexWeldingThreshold1(0.01f); //todo: expose this to the UI bm = shapeInfo->CreateBulletShape(); //no moving concave meshes, so don't bother calculating inertia diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index 35602b4095a..cc6be9a7ae3 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -1569,14 +1569,31 @@ btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape() if (!m_unscaledShape) { - btTriangleIndexVertexArray* indexVertexArrays = new btTriangleIndexVertexArray( - m_polygonIndexArray.size(), - &m_triFaceArray[0], - 3*sizeof(int), - m_vertexArray.size(), - (btScalar*) &m_vertexArray[0].x(), - sizeof(btVector3) - ); + btTriangleIndexVertexArray* indexVertexArrays = 0; + + ///enable welding, only for the objects that need it (such as soft bodies) + if (0.f != m_weldingThreshold1) + { + btTriangleMesh* collisionMeshData = new btTriangleMesh(true,false); + collisionMeshData->m_weldingThreshold = m_weldingThreshold1; + bool removeDuplicateVertices=true; + // m_vertexArray is necessarily a multiple of 3 + for (int i=0;iaddTriangle(m_vertexArray[i+2],m_vertexArray[i+1],m_vertexArray[i],removeDuplicateVertices); + } + indexVertexArrays = collisionMeshData; + + } else + { + indexVertexArrays = new btTriangleIndexVertexArray( + m_polygonIndexArray.size(), + &m_triFaceArray[0], + 3*sizeof(int), + m_vertexArray.size(), + (btScalar*) &m_vertexArray[0].x(), + sizeof(btVector3)); + } // this shape will be shared and not deleted until shapeInfo is deleted m_unscaledShape = new btBvhTriangleMeshShape( indexVertexArrays, true ); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index 67dd82db5cc..510454a7b63 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -72,7 +72,7 @@ public: m_meshObject(NULL), m_unscaledShape(NULL), m_useGimpact(false), - m_weldingThreshold(0.f), + m_weldingThreshold1(0.f), m_shapeProxy(NULL) { m_childTrans.setIdentity(); @@ -171,13 +171,13 @@ public: std::vector m_triFaceArray; // Contains an array of triplets of face indicies // quads turn into 2 tris - void setVertexWeldingThreshold(float threshold) + void setVertexWeldingThreshold1(float threshold) { - m_weldingThreshold = threshold; + m_weldingThreshold1 = threshold; } - float getVertexWeldingThreshold() const + float getVertexWeldingThreshold1() const { - return m_weldingThreshold; + return m_weldingThreshold1; } protected: static std::map m_meshShapeMap; @@ -188,7 +188,7 @@ protected: // the actual shape is of type btScaledBvhTriangleMeshShape std::vector m_shapeArray; // for compound shapes bool m_useGimpact; //use gimpact for concave dynamic/moving collision detection - float m_weldingThreshold; //welding closeby vertices together can improve softbody stability etc. // Not used at the moment, maybe remove? + float m_weldingThreshold1; //welding closeby vertices together can improve softbody stability etc. CcdShapeConstructionInfo* m_shapeProxy; // only used for PHY_SHAPE_PROXY, pointer to actual shape info }; From c1b41b20b0e938152f3e100c7a56cfd5fc49cabf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 30 Mar 2009 00:40:19 +0000 Subject: [PATCH 035/201] r19455 to Re-enable vertex welding for soft-bodies failed even on simple cases like a cube with scrambled mesh data. Please test before committing. m_vertexArray has no doubles now and is not aligned to 3, using m_triFaceArray to get the verts for each face. --- .../Physics/Bullet/CcdPhysicsController.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index cc6be9a7ae3..bb2f53a1988 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -1577,10 +1577,14 @@ btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape() btTriangleMesh* collisionMeshData = new btTriangleMesh(true,false); collisionMeshData->m_weldingThreshold = m_weldingThreshold1; bool removeDuplicateVertices=true; - // m_vertexArray is necessarily a multiple of 3 - for (int i=0;iaddTriangle(m_vertexArray[i+2],m_vertexArray[i+1],m_vertexArray[i],removeDuplicateVertices); + // m_vertexArray not in multiple of 3 anymore, use m_triFaceArray + for(int i=0; iaddTriangle( + m_vertexArray[m_triFaceArray[i]], + m_vertexArray[m_triFaceArray[i+1]], + m_vertexArray[m_triFaceArray[i+2]], + removeDuplicateVertices + ); } indexVertexArrays = collisionMeshData; From ac2de0f28dd674bdd151bcb945e5f67250902cff Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 30 Mar 2009 15:26:14 +0000 Subject: [PATCH 036/201] Hide full retarget panels behind rt -1 (not ready for large scale use and not too well documented yet. Doesn't affect etch-a-ton. --- source/blender/src/buttons_editing.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 2f77e3659ee..80495b9ff80 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -6858,9 +6858,12 @@ void editing_panels() uiNewPanelTabbed("Mesh Tools 1", "Editing"); #ifdef WITH_BF_REEB - editing_panel_mesh_skgen(ob, ob->data); - editing_panel_mesh_skgen_retarget(ob, ob->data); - editing_panel_mesh_skgen_display(ob, ob->data); + if (G.rt == -1) + { + editing_panel_mesh_skgen(ob, ob->data); + editing_panel_mesh_skgen_retarget(ob, ob->data); + editing_panel_mesh_skgen_display(ob, ob->data); + } #endif editing_panel_mesh_uvautocalculation(); From 22ad99783a811e60ee75288c6864331c4be26b4d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 31 Mar 2009 00:58:02 +0000 Subject: [PATCH 037/201] [#18277] Segfault crash by editing mesh with subsurf+ParticleInstance modifiers Marked as fixed but was still using uninitialized variables. --- source/blender/blenkernel/intern/modifier.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 566a139f72c..b3892a515af 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6382,6 +6382,7 @@ static DerivedMesh * particleInstanceModifier_applyModifier( if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)){ float min_r[3], max_r[3]; + INIT_MINMAX(min_r, max_r); dm->getMinMax(dm, min_r, max_r); min_co=min_r[track]; max_co=max_r[track]; From 97af551cb738a6c27bd53acdffd0eba04470f8c6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 31 Mar 2009 06:22:25 +0000 Subject: [PATCH 038/201] [#18439] Controlling the bevel shape for a text object with a curve no longer works. own fault, broke rev16702. Curves created by fonts didnt have their radius set. Forgot do do this when making radius calculated with the curve (like tilt) --- source/blender/blenkernel/BKE_curve.h | 4 ++++ source/blender/blenkernel/intern/curve.c | 4 ++-- source/blender/blenlib/intern/freetypefont.c | 2 ++ source/blender/blenlib/intern/psfont.c | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h index a6619958797..a8d4ece7a21 100644 --- a/source/blender/blenkernel/BKE_curve.h +++ b/source/blender/blenkernel/BKE_curve.h @@ -46,6 +46,10 @@ struct BevList; #define SEGMENTSU(nu) ( ((nu)->flagu & CU_CYCLIC) ? (nu)->pntsu : (nu)->pntsu-1 ) #define SEGMENTSV(nu) ( ((nu)->flagv & CU_CYCLIC) ? (nu)->pntsv : (nu)->pntsv-1 ) +#define CU_DO_TILT(cu, nu) (((nu->type & CU_2D) && (cu->flag & CU_3D)==0) ? 0 : 1) +#define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || cu->bevobj) ? 1:0) + + void unlink_curve( struct Curve *cu); void free_curve( struct Curve *cu); struct Curve *add_curve(char *name, int type); diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index e303f78b163..0d6382a8d37 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -1535,8 +1535,8 @@ void makeBevelList(Object *ob) while(nu) { /* check if we will calculate tilt data */ - do_tilt = ((nu->type & CU_2D) && (cu->flag & CU_3D)==0) ? 0 : 1; - do_radius = (do_tilt || cu->bevobj) ? 1 : 0; /* normal display uses the radius, better just to calculate them */ + do_tilt = CU_DO_TILT(cu, nu); + do_radius = CU_DO_RADIUS(cu, nu); /* normal display uses the radius, better just to calculate them */ /* check we are a single point? also check we are not a surface and that the orderu is sane, * enforced in the UI but can go wrong possibly */ diff --git a/source/blender/blenlib/intern/freetypefont.c b/source/blender/blenlib/intern/freetypefont.c index 48a40db6a72..a97f2460ba1 100644 --- a/source/blender/blenlib/intern/freetypefont.c +++ b/source/blender/blenlib/intern/freetypefont.c @@ -178,6 +178,7 @@ void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vfd) bezt->vec[2][1] = (dy + (2 * ftoutline.points[l+1].y)* scale) / 3.0; bezt->h1= bezt->h2= HD_ALIGN; + bezt->radius= 1.0f; bezt++; } } @@ -264,6 +265,7 @@ void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vfd) { bezt->h1= bezt->h2= HD_ALIGN; } + bezt->radius= 1.0f; bezt++; } } diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c index 54d7f8ec1af..39d38e4cf3a 100644 --- a/source/blender/blenlib/intern/psfont.c +++ b/source/blender/blenlib/intern/psfont.c @@ -2094,6 +2094,7 @@ static VFontData *objfnt_to_vfontdata(objfnt *fnt) while(a--) { if(bezt->h1!=HD_ALIGN && bezt->h2==HD_ALIGN) bezt->h2= 0; else if(bezt->h2!=HD_ALIGN && bezt->h1==HD_ALIGN) bezt->h1= 0; + bezt->radius= 1.0f; bezt++; } From f78ee08b67075549551a51227c66f07b505f928b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 31 Mar 2009 08:13:21 +0000 Subject: [PATCH 039/201] [#18473] SCons build fails when linking blender when WITH_BF_OGG enabled fix for linking on linux --- config/linux2-config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/linux2-config.py b/config/linux2-config.py index b2f4066e0ed..5bd9a4c8084 100644 --- a/config/linux2-config.py +++ b/config/linux2-config.py @@ -144,7 +144,7 @@ BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib' WITH_BF_OGG = False # -DWITH_OGG BF_OGG = '/usr' BF_OGG_INC = '${BF_OGG}/include' -BF_OGG_LIB = 'ogg vorbis theoraenc theoradec' +BF_OGG_LIB = 'ogg vorbis vorbisenc theoraenc theoradec' WITH_BF_OPENJPEG = True BF_OPENJPEG = '#extern/libopenjpeg' From 74e6231ff45dfe09d213a4deb72641e8138e260c Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 31 Mar 2009 14:29:58 +0000 Subject: [PATCH 040/201] == etch-a-ton == Correct joint-guided roll to use the previous bone, not the following (that was silly). Also made first bone use view axis (since it has no previous), this is much nicer that using rotation correction only. Using the joint roll option makes it MUCH more orientation independant. --- source/blender/src/editarmature_retarget.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/blender/src/editarmature_retarget.c b/source/blender/src/editarmature_retarget.c index ad114868a69..f42fed06757 100644 --- a/source/blender/src/editarmature_retarget.c +++ b/source/blender/src/editarmature_retarget.c @@ -201,12 +201,12 @@ float rollBoneByQuatAligned(EditBone *bone, float old_up_axis[3], float qrot[4], } } -float rollBoneByQuatJoint(RigEdge *edge, RigEdge *previous, float qrot[4], float qroll[4]) +float rollBoneByQuatJoint(RigEdge *edge, RigEdge *previous, float qrot[4], float qroll[4], float up_axis[3]) { if (previous == NULL) { - QuatOne(qroll); - return rollBoneByQuat(edge->bone, edge->up_axis, qrot); + /* default to up_axis if no previous */ + return rollBoneByQuatAligned(edge->bone, edge->up_axis, qrot, qroll, up_axis); } else { @@ -223,9 +223,8 @@ float rollBoneByQuatJoint(RigEdge *edge, RigEdge *previous, float qrot[4], float } else { - /* SHOULDN'T BE HERE */ - QuatOne(qroll); - return rollBoneByQuat(edge->bone, edge->up_axis, qrot); + /* default to up_axis if first bone in the chain is an offset */ + return rollBoneByQuatAligned(edge->bone, edge->up_axis, qrot, qroll, up_axis); } VecSubf(vec_second, edge->bone->tail, edge->bone->head); @@ -1846,7 +1845,7 @@ static void repositionBone(RigGraph *rigg, RigEdge *edge, float vec0[3], float v } else if (G.scene->toolsettings->skgen_retarget_roll == SK_RETARGET_ROLL_JOINT) { - bone->roll = rollBoneByQuatJoint(edge, edge->next, qrot, qroll); + bone->roll = rollBoneByQuatJoint(edge, edge->prev, qrot, qroll, up_axis); } else { From 8518f6e6603ed93d126771e1b372021ae0b4ff98 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 31 Mar 2009 19:02:01 +0000 Subject: [PATCH 041/201] BGE API cleanup, patch from Moguri: RaySensor, NetworkMessageActuator, NetworkMessageSensor. --- .../KXNetwork/KX_NetworkMessageActuator.cpp | 28 +++++- .../KXNetwork/KX_NetworkMessageActuator.h | 5 +- .../KXNetwork/KX_NetworkMessageSensor.cpp | 45 +++++++++- .../KXNetwork/KX_NetworkMessageSensor.h | 6 ++ source/gameengine/Ketsji/KX_PythonInit.cpp | 9 ++ source/gameengine/Ketsji/KX_RaySensor.cpp | 86 +++++++++++++++++-- source/gameengine/Ketsji/KX_RaySensor.h | 28 ++++-- source/gameengine/PyDoc/GameLogic.py | 8 ++ .../PyDoc/KX_NetworkMessageActuator.py | 13 +++ .../PyDoc/KX_NetworkMessageSensor.py | 17 ++++ source/gameengine/PyDoc/KX_RaySensor.py | 25 ++++++ 11 files changed, 252 insertions(+), 18 deletions(-) diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 4e5f27df2da..fa4fdaee972 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -47,7 +47,7 @@ KX_NetworkMessageActuator::KX_NetworkMessageActuator( m_networkscene(networkscene), m_toPropName(toPropName), m_subject(subject), - m_bodyType(bodyType), + m_bPropBody(bodyType), m_body(body) { } @@ -69,7 +69,7 @@ bool KX_NetworkMessageActuator::Update() } //printf("messageactuator true event\n"); - if (m_bodyType == 1) // ACT_MESG_PROP in DNA_actuator_types.h + if (m_bPropBody) // ACT_MESG_PROP in DNA_actuator_types.h { m_networkscene->SendMessage( m_toPropName, @@ -132,6 +132,7 @@ PyParentObject KX_NetworkMessageActuator::Parents[] = { }; PyMethodDef KX_NetworkMessageActuator::Methods[] = { + // Deprecated -----> {"setToPropName", (PyCFunction) KX_NetworkMessageActuator::sPySetToPropName, METH_VARARGS}, {"setSubject", (PyCFunction) @@ -140,23 +141,40 @@ PyMethodDef KX_NetworkMessageActuator::Methods[] = { KX_NetworkMessageActuator::sPySetBodyType, METH_VARARGS}, {"setBody", (PyCFunction) KX_NetworkMessageActuator::sPySetBody, METH_VARARGS}, + // <----- {NULL,NULL} // Sentinel }; PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("propName", 0, 100, false, KX_NetworkMessageActuator, m_toPropName), + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageActuator, m_subject), + KX_PYATTRIBUTE_BOOL_RW("usePropBody", KX_NetworkMessageActuator, m_bPropBody), + KX_PYATTRIBUTE_STRING_RW("body", 0, 100, false, KX_NetworkMessageActuator, m_body), { NULL } //Sentinel }; PyObject* KX_NetworkMessageActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } +int KX_NetworkMessageActuator::_setattr(const char *attr, PyObject *value) { + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} + +// Deprecated -----> // 1. SetToPropName PyObject* KX_NetworkMessageActuator::PySetToPropName( PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setToProp()", "the propName property"); char* ToPropName; if (PyArg_ParseTuple(args, "s", &ToPropName)) { @@ -175,6 +193,7 @@ PyObject* KX_NetworkMessageActuator::PySetSubject( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setSubject()", "the subject property"); char* Subject; if (PyArg_ParseTuple(args, "s", &Subject)) { @@ -193,10 +212,11 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBodyType()", "the usePropBody property"); int BodyType; if (PyArg_ParseTuple(args, "i", &BodyType)) { - m_bodyType = BodyType; + m_bPropBody = (BodyType != 0); } else { return NULL; @@ -211,6 +231,7 @@ PyObject* KX_NetworkMessageActuator::PySetBody( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBody()", "the body property"); char* Body; if (PyArg_ParseTuple(args, "s", &Body)) { @@ -223,3 +244,4 @@ PyObject* KX_NetworkMessageActuator::PySetBody( Py_RETURN_NONE; } +// <----- Deprecated \ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h index 96b55ef839b..d9a7f787333 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h @@ -41,7 +41,7 @@ class KX_NetworkMessageActuator : public SCA_IActuator class NG_NetworkScene* m_networkscene; // needed for replication STR_String m_toPropName; STR_String m_subject; - int m_bodyType; + bool m_bPropBody; STR_String m_body; public: KX_NetworkMessageActuator( @@ -62,11 +62,14 @@ public: /* ------------------------------------------------------------ */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName); KX_PYMETHOD(KX_NetworkMessageActuator, SetSubject); KX_PYMETHOD(KX_NetworkMessageActuator, SetBodyType); KX_PYMETHOD(KX_NetworkMessageActuator, SetBody); + // <----- }; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index ac89d8b0716..40ade460792 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -195,6 +195,7 @@ PyParentObject KX_NetworkMessageSensor::Parents[] = { }; PyMethodDef KX_NetworkMessageSensor::Methods[] = { + // Deprecated -----> {"setSubjectFilterText", (PyCFunction) KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O, (PY_METHODCHAR)SetSubjectFilterText_doc}, @@ -210,17 +211,53 @@ PyMethodDef KX_NetworkMessageSensor::Methods[] = { {"getSubjects", (PyCFunction) KX_NetworkMessageSensor::sPyGetSubjects, METH_NOARGS, (PY_METHODCHAR)GetSubjects_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_NetworkMessageSensor::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageSensor, m_subject), + KX_PYATTRIBUTE_INT_RO("frameMessageCount", KX_NetworkMessageSensor, m_frame_message_count), + KX_PYATTRIBUTE_RO_FUNCTION("bodies", KX_NetworkMessageSensor, pyattr_get_bodies), + KX_PYATTRIBUTE_RO_FUNCTION("subjects", KX_NetworkMessageSensor, pyattr_get_subjects), { NULL } //Sentinel }; PyObject* KX_NetworkMessageSensor::_getattr(const char *attr) { - _getattr_up(SCA_ISensor); // implicit return! + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_ISensor); } +int KX_NetworkMessageSensor::_setattr(const char *attr, PyObject *value) { + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_ISensor::_setattr(attr, value); +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast(self_v); + if (self->m_BodyList) { + return ((PyObject*) self->m_BodyList->AddRef()); + } else { + return ((PyObject*) new CListValue()); + } +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast(self_v); + if (self->m_SubjectList) { + return ((PyObject*) self->m_SubjectList->AddRef()); + } else { + return ((PyObject*) new CListValue()); + } +} + +// Deprecated -----> // 1. Set the message subject that this sensor listens for const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = "\tsetSubjectFilterText(value)\n" @@ -228,6 +265,7 @@ const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( PyObject* self, PyObject* value) { + ShowDeprecationWarning("setSubjectFilterText()", "subject"); char* Subject = PyString_AsString(value); if (Subject==NULL) { PyErr_SetString(PyExc_TypeError, "expected a string message"); @@ -245,6 +283,7 @@ const char KX_NetworkMessageSensor::GetFrameMessageCount_doc[] = PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* ) { + ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount"); return PyInt_FromLong(long(m_frame_message_count)); } @@ -255,6 +294,7 @@ const char KX_NetworkMessageSensor::GetBodies_doc[] = PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) { + ShowDeprecationWarning("getBodies()", "bodies"); if (m_BodyList) { return ((PyObject*) m_BodyList->AddRef()); } else { @@ -269,6 +309,7 @@ const char KX_NetworkMessageSensor::GetSubject_doc[] = PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* ) { + ShowDeprecationWarning("getSubject()", "subject"); return PyString_FromString(m_subject ? m_subject : ""); } @@ -279,9 +320,11 @@ const char KX_NetworkMessageSensor::GetSubjects_doc[] = PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) { + ShowDeprecationWarning("getSubjects()", "subjects"); if (m_SubjectList) { return ((PyObject*) m_SubjectList->AddRef()); } else { return ((PyObject*) new CListValue()); } } +// <----- Deprecated \ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h index 26adbc9945a..79e8bc910d1 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h @@ -73,13 +73,19 @@ public: /* ------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD_DOC_O(KX_NetworkMessageSensor, SetSubjectFilterText); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetFrameMessageCount); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetBodies); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubject); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubjects); + // <----- + /* attributes */ + static PyObject* pyattr_get_bodies(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_subjects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index bc2111571ac..bf41f3a555f 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -48,6 +48,7 @@ #include "KX_KetsjiEngine.h" #include "KX_RadarSensor.h" +#include "KX_RaySensor.h" #include "SCA_IInputDevice.h" #include "SCA_PropertySensor.h" @@ -1070,6 +1071,14 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_NEG_Y, KX_RadarSensor::KX_RADAR_AXIS_NEG_X); KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_NEG_Z, KX_RadarSensor::KX_RADAR_AXIS_NEG_Z); + /* Ray Sensor */ + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_X, KX_RaySensor::KX_RAY_AXIS_POS_X); + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_Y, KX_RaySensor::KX_RAY_AXIS_POS_Y); + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_Z, KX_RaySensor::KX_RAY_AXIS_POS_Z); + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_X, KX_RaySensor::KX_RAY_AXIS_NEG_Y); + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Y, KX_RaySensor::KX_RAY_AXIS_NEG_X); + KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Z, KX_RaySensor::KX_RAY_AXIS_NEG_Z); + // Check for errors if (PyErr_Occurred()) { diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index ce12b983147..253fe11fe05 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -136,8 +136,13 @@ bool KX_RaySensor::RayHit(KX_ClientObjectInfo* client, KX_RayCast* result, void { m_rayHit = true; m_hitObject = hitKXObj; - m_hitPosition = result->m_hitPoint; - m_hitNormal = result->m_hitNormal; + m_hitPosition[0] = result->m_hitPoint[0]; + m_hitPosition[1] = result->m_hitPoint[1]; + m_hitPosition[2] = result->m_hitPoint[2]; + + m_hitNormal[0] = result->m_hitNormal[0]; + m_hitNormal[1] = result->m_hitNormal[1]; + m_hitNormal[2] = result->m_hitNormal[2]; } // no multi-hit search yet @@ -180,8 +185,13 @@ bool KX_RaySensor::Evaluate(CValue* event) bool reset = m_reset && m_level; m_rayHit = false; m_hitObject = NULL; - m_hitPosition.setValue(0,0,0); - m_hitNormal.setValue(1,0,0); + m_hitPosition[0] = 0; + m_hitPosition[1] = 0; + m_hitPosition[2] = 0; + + m_hitNormal[0] = 1; + m_hitNormal[1] = 0; + m_hitNormal[2] = 0; KX_GameObject* obj = (KX_GameObject*)GetParent(); MT_Point3 frompoint = obj->NodeGetWorldPosition(); @@ -236,7 +246,9 @@ bool KX_RaySensor::Evaluate(CValue* event) } } todir.normalize(); - m_rayDirection = todir; + m_rayDirection[0] = todir[0]; + m_rayDirection[1] = todir[1]; + m_rayDirection[2] = todir[2]; MT_Point3 topoint = frompoint + (m_distance) * todir; PHY_IPhysicsEnvironment* pe = m_scene->GetPhysicsEnvironment(); @@ -336,22 +348,44 @@ PyParentObject KX_RaySensor::Parents[] = { }; PyMethodDef KX_RaySensor::Methods[] = { + // Deprecated -----> {"getHitObject",(PyCFunction) KX_RaySensor::sPyGetHitObject,METH_NOARGS, (PY_METHODCHAR)GetHitObject_doc}, {"getHitPosition",(PyCFunction) KX_RaySensor::sPyGetHitPosition,METH_NOARGS, (PY_METHODCHAR)GetHitPosition_doc}, {"getHitNormal",(PyCFunction) KX_RaySensor::sPyGetHitNormal,METH_NOARGS, (PY_METHODCHAR)GetHitNormal_doc}, {"getRayDirection",(PyCFunction) KX_RaySensor::sPyGetRayDirection,METH_NOARGS, (PY_METHODCHAR)GetRayDirection_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_RaySensor::Attributes[] = { + KX_PYATTRIBUTE_BOOL_RW("useMaterial", KX_RaySensor, m_bFindMaterial), + KX_PYATTRIBUTE_BOOL_RW("useXRay", KX_RaySensor, m_bXRay), + KX_PYATTRIBUTE_FLOAT_RW("range", 0, 10000, KX_RaySensor, m_distance), + KX_PYATTRIBUTE_STRING_RW("property", 0, 100, false, KX_RaySensor, m_propertyname), + KX_PYATTRIBUTE_INT_RW("axis", 0, 5, true, KX_RaySensor, m_axis), + KX_PYATTRIBUTE_FLOAT_ARRAY_RO("hitPosition", KX_RaySensor, m_hitPosition, 3), + KX_PYATTRIBUTE_FLOAT_ARRAY_RO("rayDirection", KX_RaySensor, m_rayDirection, 3), + KX_PYATTRIBUTE_FLOAT_ARRAY_RO("hitNormal", KX_RaySensor, m_hitNormal, 3), + KX_PYATTRIBUTE_RO_FUNCTION("hitObject", KX_RaySensor, pyattr_get_hitobject), { NULL } //Sentinel }; +PyObject* KX_RaySensor::pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_RaySensor* self = static_cast(self_v); + if (self->m_hitObject) + return self->m_hitObject->AddRef(); + + Py_RETURN_NONE; +} + +// Deprecated -----> const char KX_RaySensor::GetHitObject_doc[] = "getHitObject()\n" "\tReturns the name of the object that was hit by this ray.\n"; PyObject* KX_RaySensor::PyGetHitObject(PyObject* self) { + ShowDeprecationWarning("getHitObject()", "the hitObject property"); if (m_hitObject) { return m_hitObject->AddRef(); @@ -365,7 +399,15 @@ const char KX_RaySensor::GetHitPosition_doc[] = "\tReturns the position (in worldcoordinates) where the object was hit by this ray.\n"; PyObject* KX_RaySensor::PyGetHitPosition(PyObject* self) { - return PyObjectFrom(m_hitPosition); + ShowDeprecationWarning("getHitPosition()", "the hitPosition property"); + + PyObject *retVal = PyList_New(3); + + PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_hitPosition[0])); + PyList_SetItem(retVal, 1, PyFloat_FromDouble(m_hitPosition[1])); + PyList_SetItem(retVal, 2, PyFloat_FromDouble(m_hitPosition[2])); + + return retVal; } const char KX_RaySensor::GetRayDirection_doc[] = @@ -373,7 +415,15 @@ const char KX_RaySensor::GetRayDirection_doc[] = "\tReturns the direction from the ray (in worldcoordinates) .\n"; PyObject* KX_RaySensor::PyGetRayDirection(PyObject* self) { - return PyObjectFrom(m_rayDirection); + ShowDeprecationWarning("getRayDirection()", "the rayDirection property"); + + PyObject *retVal = PyList_New(3); + + PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_rayDirection[0])); + PyList_SetItem(retVal, 1, PyFloat_FromDouble(m_rayDirection[1])); + PyList_SetItem(retVal, 2, PyFloat_FromDouble(m_rayDirection[2])); + + return retVal; } const char KX_RaySensor::GetHitNormal_doc[] = @@ -381,11 +431,31 @@ const char KX_RaySensor::GetHitNormal_doc[] = "\tReturns the normal (in worldcoordinates) of the object at the location where the object was hit by this ray.\n"; PyObject* KX_RaySensor::PyGetHitNormal(PyObject* self) { - return PyObjectFrom(m_hitNormal); + ShowDeprecationWarning("getHitNormal()", "the hitNormal property"); + + PyObject *retVal = PyList_New(3); + + PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_hitNormal[0])); + PyList_SetItem(retVal, 1, PyFloat_FromDouble(m_hitNormal[1])); + PyList_SetItem(retVal, 2, PyFloat_FromDouble(m_hitNormal[2])); + + return retVal; } PyObject* KX_RaySensor::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_ISensor); } + +int KX_RaySensor::_setattr(const char *attr, PyObject *value) { + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_ISensor::_setattr(attr, value); +} + +// <----- Deprecated \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h index 09d8bc1369a..e7901a0d10d 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.h +++ b/source/gameengine/Ketsji/KX_RaySensor.h @@ -44,15 +44,15 @@ class KX_RaySensor : public SCA_ISensor STR_String m_propertyname; bool m_bFindMaterial; bool m_bXRay; - double m_distance; + float m_distance; class KX_Scene* m_scene; bool m_bTriggered; int m_axis; bool m_rayHit; - MT_Point3 m_hitPosition; + float m_hitPosition[3]; SCA_IObject* m_hitObject; - MT_Vector3 m_hitNormal; - MT_Vector3 m_rayDirection; + float m_hitNormal[3]; + float m_rayDirection[3]; public: KX_RaySensor(class SCA_EventManager* eventmgr, @@ -73,13 +73,31 @@ public: bool RayHit(KX_ClientObjectInfo* client, KX_RayCast* result, void * const data); bool NeedRayCast(KX_ClientObjectInfo* client); + + + //Python Interface + enum RayAxis { + KX_RAY_AXIS_POS_Y = 0, + KX_RAY_AXIS_POS_X, + KX_RAY_AXIS_POS_Z, + KX_RAY_AXIS_NEG_X, + KX_RAY_AXIS_NEG_Y, + KX_RAY_AXIS_NEG_Z + }; + + + virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD_DOC_NOARGS(KX_RaySensor,GetHitObject); KX_PYMETHOD_DOC_NOARGS(KX_RaySensor,GetHitPosition); KX_PYMETHOD_DOC_NOARGS(KX_RaySensor,GetHitNormal); KX_PYMETHOD_DOC_NOARGS(KX_RaySensor,GetRayDirection); + // <----- - virtual PyObject* _getattr(const char *attr); + /* Attributes */ + static PyObject* pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index 0524a9df355..833d896ba6b 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -148,6 +148,14 @@ Documentation for the GameLogic Module. @var KX_RADAR_AXIS_NEG_X: See L{KX_RadarSensor} @var KX_RADAR_AXIS_NEG_Y: See L{KX_RadarSensor} @var KX_RADAR_AXIS_NEG_Z: See L{KX_RadarSensor} + +@group Ray Sensor: KX_RAY_AXIS_POS_X, KX_RAY_AXIS_POS_Y, KX_RAY_AXIS_POS_Z, KX_RAY_AXIS_NEG_X, KX_RAY_AXIS_NEG_Y, KX_RAY_AXIS_NEG_Z +@var KX_RAY_AXIS_POS_X: See L{KX_RaySensor} +@var KX_RAY_AXIS_POS_Y: See L{KX_RaySensor} +@var KX_RAY_AXIS_POS_Z: See L{KX_RaySensor} +@var KX_RAY_AXIS_NEG_X: See L{KX_RaySensor} +@var KX_RAY_AXIS_NEG_Y: See L{KX_RaySensor} +@var KX_RAY_AXIS_NEG_Z: See L{KX_RaySensor} """ diff --git a/source/gameengine/PyDoc/KX_NetworkMessageActuator.py b/source/gameengine/PyDoc/KX_NetworkMessageActuator.py index aecd2897743..c9f48d47eb8 100644 --- a/source/gameengine/PyDoc/KX_NetworkMessageActuator.py +++ b/source/gameengine/PyDoc/KX_NetworkMessageActuator.py @@ -5,21 +5,33 @@ from SCA_IActuator import * class KX_NetworkMessageActuator(SCA_IActuator): """ Message Actuator + + @ivar propName: Messages will only be sent to objects with the given property name. + @type propName: string + @ivar subject: The subject field of the message. + @type subject: string + @ivar body: The body of the message. + @type body: string + @ivar usePropBody: Send a property instead of a regular body message. + @type usePropBody: boolean """ def setToPropName(name): """ + DEPRECATED: Use the propName property instead. Messages will only be sent to objects with the given property name. @type name: string """ def setSubject(subject): """ + DEPRECATED: Use the subject property instead. Sets the subject field of the message. @type subject: string """ def setBodyType(bodytype): """ + DEPRECATED: Use the usePropBody property instead. Sets the type of body to send. @type bodytype: boolean @@ -27,6 +39,7 @@ class KX_NetworkMessageActuator(SCA_IActuator): """ def setBody(body): """ + DEPRECATED: Use the body property instead. Sets the message body. @type body: string diff --git a/source/gameengine/PyDoc/KX_NetworkMessageSensor.py b/source/gameengine/PyDoc/KX_NetworkMessageSensor.py index 8f5f3609df7..0fecad58437 100644 --- a/source/gameengine/PyDoc/KX_NetworkMessageSensor.py +++ b/source/gameengine/PyDoc/KX_NetworkMessageSensor.py @@ -7,9 +7,22 @@ class KX_NetworkMessageSensor(SCA_ISensor): The Message Sensor logic brick. Currently only loopback (local) networks are supported. + + @ivar subject: The subject the sensor is looking for. + @type subject: string + @ivar frameMessageCount: The number of messages received since the last frame. + (Read-only) + @type framemessageCount: int + @ivar subjects: The list of message subjects received. (Read-only) + @type subjects: list of strings + @ivar bodies: The list of message bodies received. (Read-only) + @type bodies: list of strings """ + + def setSubjectFilterText(subject): """ + DEPRECATED: Use the subject property instead. Change the message subject text that this sensor is listening to. @type subject: string @@ -18,24 +31,28 @@ class KX_NetworkMessageSensor(SCA_ISensor): def getFrameMessageCount(): """ + DEPRECATED: Use the frameMessageCount property instead. Get the number of messages received since the last frame. @rtype: integer """ def getBodies(): """ + DEPRECATED: Use the bodies property instead. Gets the list of message bodies. @rtype: list """ def getSubject(): """ + DEPRECATED: Use the subject property instead. Gets the message subject this sensor is listening for from the Subject: field. @rtype: string """ def getSubjects(): """ + DEPRECATED: Use the subjects property instead. Gets the list of message subjects received. @rtype: list diff --git a/source/gameengine/PyDoc/KX_RaySensor.py b/source/gameengine/PyDoc/KX_RaySensor.py index e487edcb655..b9de54e92a5 100644 --- a/source/gameengine/PyDoc/KX_RaySensor.py +++ b/source/gameengine/PyDoc/KX_RaySensor.py @@ -5,28 +5,53 @@ from SCA_ISensor import * class KX_RaySensor(SCA_ISensor): """ A ray sensor detects the first object in a given direction. + + @ivar property: The property the ray is looking for. + @type property: string + @ivar range: The distance of the ray. + @type range: float + @ivar useMaterial: Whether or not to look for a material (false = property) + @type useMaterial: boolean + @ivar useXRay: Whether or not to use XRay. + @type useXRay: boolean + @ivar hitObject: The game object that was hit by the ray. (Read-only) + @type hitObject: KX_GameObject + @ivar hitPosition: The position (in worldcoordinates) where the object was hit by the ray. (Read-only) + @type hitPosition: list [x, y, z] + @ivar hitNormal: The normal (in worldcoordinates) of the object at the location where the object was hit by the ray. (Read-only) + @type hitNormal: list [x, y, z] + @ivar rayDirection: The direction from the ray (in worldcoordinates). (Read-only) + @type rayDirection: list [x, y, z] + @ivar axis: The axis the ray is pointing on. + @type axis: int from 0 to 5 + KX_RAY_AXIS_POS_X, KX_RAY_AXIS_POS_Y, KX_RAY_AXIS_POS_Z, + KX_RAY_AXIS_NEG_X, KX_RAY_AXIS_NEG_Y, KX_RAY_AXIS_NEG_Z """ def getHitObject(): """ + DEPRECATED: Use the hitObject property instead. Returns the game object that was hit by this ray. @rtype: KX_GameObject """ def getHitPosition(): """ + DEPRECATED: Use the hitPosition property instead. Returns the position (in worldcoordinates) where the object was hit by this ray. @rtype: list [x, y, z] """ def getHitNormal(): """ + DEPRECATED: Use the hitNormal property instead. Returns the normal (in worldcoordinates) of the object at the location where the object was hit by this ray. @rtype: list [nx, ny, nz] """ def getRayDirection(): """ + DEPRECATED: Use the rayDirection property instead. Returns the direction from the ray (in worldcoordinates) @rtype: list [dx, dy, dz] From 1f0e5f5807f796a6c90aadf9e86916bd69c89a23 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 31 Mar 2009 19:39:17 +0000 Subject: [PATCH 042/201] [#18455] The new FFMPEG version gives the wrong color ffmpeg format switched from RGBA32 to BGR32, it's no longer needed to swap color planes. NOTE: this commit also attempts to fix the big endian case, but since I don't have a machine to test it, I'd appreciate if someone else would. --- source/blender/blenkernel/intern/writeffmpeg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 378e4319223..c3d8ed855a2 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -315,9 +315,9 @@ static AVFrame* generate_video_frame(uint8_t* pixels) uint8_t* end = src + width * 4; while (src != end) { target[3] = src[3]; - target[2] = src[0]; + target[2] = src[2]; target[1] = src[1]; - target[0] = src[2]; + target[0] = src[0]; target += 4; src += 4; @@ -331,9 +331,9 @@ static AVFrame* generate_video_frame(uint8_t* pixels) uint8_t* src = rendered_frame + width * 4 * y; uint8_t* end = src + width * 4; while (src != end) { - target[3] = src[2]; + target[3] = src[0]; target[2] = src[1]; - target[1] = src[0]; + target[1] = src[2]; target[0] = src[3]; target += 4; From f6f47a08eba8991419853f66ade3b1ad44f5b3e4 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 31 Mar 2009 21:03:15 +0000 Subject: [PATCH 043/201] BGE API cleanup: DynamicActuator, ReplaceMeshActuator, TrackToActuator. --- source/gameengine/Ketsji/KX_PythonInit.cpp | 8 +++ .../Ketsji/KX_SCA_DynamicActuator.cpp | 18 ++++- .../Ketsji/KX_SCA_DynamicActuator.h | 11 +++ .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 47 ++++++++++++- .../Ketsji/KX_SCA_ReplaceMeshActuator.h | 7 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 69 ++++++++++++------- source/gameengine/Ketsji/KX_TrackToActuator.h | 6 +- source/gameengine/PyDoc/GameLogic.py | 9 +++ .../PyDoc/KX_SCA_DynamicActuator.py | 30 ++++++++ .../PyDoc/KX_SCA_ReplaceMeshActuator.py | 7 ++ source/gameengine/PyDoc/KX_TrackToActuator.py | 11 +++ 11 files changed, 192 insertions(+), 31 deletions(-) create mode 100644 source/gameengine/PyDoc/KX_SCA_DynamicActuator.py diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index bf41f3a555f..7ddfbb0d5fe 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -49,6 +49,7 @@ #include "KX_KetsjiEngine.h" #include "KX_RadarSensor.h" #include "KX_RaySensor.h" +#include "KX_SCA_DynamicActuator.h" #include "SCA_IInputDevice.h" #include "SCA_PropertySensor.h" @@ -1079,6 +1080,13 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Y, KX_RaySensor::KX_RAY_AXIS_NEG_X); KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Z, KX_RaySensor::KX_RAY_AXIS_NEG_Z); + /* Dynamic actuator */ + KX_MACRO_addTypesToDict(d, KX_DYN_RESTORE_DYNAMICS, KX_SCA_DynamicActuator::KX_DYN_RESTORE_DYNAMICS); + KX_MACRO_addTypesToDict(d, KX_DYN_DISABLE_DYNAMICS, KX_SCA_DynamicActuator::KX_DYN_DISABLE_DYNAMICS); + KX_MACRO_addTypesToDict(d, KX_DYN_ENABLE_RIGID_BODY, KX_SCA_DynamicActuator::KX_DYN_ENABLE_RIGID_BODY); + KX_MACRO_addTypesToDict(d, KX_DYN_DISABLE_RIGID_BODY, KX_SCA_DynamicActuator::KX_DYN_DISABLE_RIGID_BODY); + KX_MACRO_addTypesToDict(d, KX_DYN_SET_MASS, KX_SCA_DynamicActuator::KX_DYN_SET_MASS); + // Check for errors if (PyErr_Occurred()) { diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index 394bb667728..8df3af61721 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -36,6 +36,7 @@ // Please look here for revision history. #include "KX_SCA_DynamicActuator.h" +#include "blendef.h" #ifdef HAVE_CONFIG_H #include @@ -80,21 +81,34 @@ PyParentObject KX_SCA_DynamicActuator::Parents[] = { PyMethodDef KX_SCA_DynamicActuator::Methods[] = { + // ---> deprecated KX_PYMETHODTABLE(KX_SCA_DynamicActuator, setOperation), KX_PYMETHODTABLE(KX_SCA_DynamicActuator, getOperation), {NULL,NULL} //Sentinel }; PyAttributeDef KX_SCA_DynamicActuator::Attributes[] = { + KX_PYATTRIBUTE_SHORT_RW("operation",0,4,false,KX_SCA_DynamicActuator,m_dyn_operation), + KX_PYATTRIBUTE_FLOAT_RW("mass",0.0,MAXFLOAT,KX_SCA_DynamicActuator,m_setmass), { NULL } //Sentinel }; PyObject* KX_SCA_DynamicActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_IActuator); } +int KX_SCA_DynamicActuator::_setattr(const char *attr, PyObject* value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} /* 1. setOperation */ @@ -107,6 +121,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_DynamicActuator, setOperation, "\t 3 = disable rigid body\n" "Change the dynamic status of the parent object.\n") { + ShowDeprecationWarning("setOperation()", "the operation property"); int dyn_operation; if (!PyArg_ParseTuple(args, "i", &dyn_operation)) @@ -126,6 +141,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_DynamicActuator, getOperation, "Returns the operation type of this actuator.\n" ) { + ShowDeprecationWarning("getOperation()", "the operation property"); return PyInt_FromLong((long)m_dyn_operation); } diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h index a82cddd66a7..082fcd72035 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h @@ -64,7 +64,18 @@ class KX_SCA_DynamicActuator : public SCA_IActuator virtual bool Update(); + //Python Interface + enum DynamicOperation { + KX_DYN_RESTORE_DYNAMICS = 0, + KX_DYN_DISABLE_DYNAMICS, + KX_DYN_ENABLE_RIGID_BODY, + KX_DYN_DISABLE_RIGID_BODY, + KX_DYN_SET_MASS, + }; + + virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); /* 1. setOperation */ KX_PYMETHOD_DOC(KX_SCA_DynamicActuator,setOperation); diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 502990b2b27..2f971084a39 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -82,23 +82,62 @@ PyParentObject KX_SCA_ReplaceMeshActuator::Parents[] = { PyMethodDef KX_SCA_ReplaceMeshActuator::Methods[] = { - {"setMesh", (PyCFunction) KX_SCA_ReplaceMeshActuator::sPySetMesh, METH_O, (PY_METHODCHAR)SetMesh_doc}, - KX_PYMETHODTABLE(KX_SCA_ReplaceMeshActuator, instantReplaceMesh), + // Deprecated -----> + {"setMesh", (PyCFunction) KX_SCA_ReplaceMeshActuator::sPySetMesh, METH_O, (PY_METHODCHAR)SetMesh_doc}, KX_PYMETHODTABLE(KX_SCA_ReplaceMeshActuator, getMesh), {NULL,NULL} //Sentinel }; PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = { + KX_PYATTRIBUTE_RW_FUNCTION("mesh", KX_SCA_ReplaceMeshActuator, pyattr_get_mesh, pyattr_set_mesh), { NULL } //Sentinel }; PyObject* KX_SCA_ReplaceMeshActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_IActuator); } +int KX_SCA_ReplaceMeshActuator::_setattr(const char *attr, PyObject* value) +{ + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::_setattr(attr, value); +} +PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SCA_ReplaceMeshActuator* actuator = static_cast(self); + if (!actuator->m_mesh) + Py_RETURN_NONE; + return PyString_FromString(const_cast(actuator->m_mesh->GetName().ReadPtr())); +} + +int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_SCA_ReplaceMeshActuator* actuator = static_cast(self); + if (value == Py_None) { + actuator->m_mesh = NULL; + } else { + char* meshname = PyString_AsString(value); + if (!meshname) { + PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh or None"); + return 1; + } + void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); + if (mesh==NULL) { + PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); + return 1; + } + actuator->m_mesh= (class RAS_MeshObject*)mesh; + } + return 0; +} /* 1. setMesh */ const char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] = @@ -108,6 +147,7 @@ const char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] = PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* self, PyObject* value) { + ShowDeprecationWarning("setMesh()", "the mesh property"); if (value == Py_None) { m_mesh = NULL; } else { @@ -133,6 +173,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, getMesh, "Returns the name of the mesh to be substituted.\n" ) { + ShowDeprecationWarning("getMesh()", "the mesh property"); if (!m_mesh) Py_RETURN_NONE; diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h index 0ba60650683..ba43975bd51 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h @@ -69,9 +69,14 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator virtual bool Update(); - virtual PyObject* _getattr(const char *attr); void InstantReplaceMesh(); + virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject* value); + + static PyObject* pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + /* 1. setMesh */ KX_PYMETHOD_DOC_O(KX_SCA_ReplaceMeshActuator,SetMesh); KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,getMesh); diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 8637bc92d39..e54528c7bd4 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -402,7 +402,7 @@ bool KX_TrackToActuator::Update(double curtime, bool frame) // set the models tranformation properties curobj->NodeSetLocalOrientation(mat); curobj->NodeSetLocalPosition(localpos); - curobj->UpdateTransform(); + //curobj->UpdateTransform(); } else { @@ -456,12 +456,11 @@ PyParentObject KX_TrackToActuator::Parents[] = { PyMethodDef KX_TrackToActuator::Methods[] = { + // ---> deprecated {"setTime", (PyCFunction) KX_TrackToActuator::sPySetTime, METH_VARARGS, (PY_METHODCHAR)SetTime_doc}, {"getTime", (PyCFunction) KX_TrackToActuator::sPyGetTime, METH_VARARGS, (PY_METHODCHAR)GetTime_doc}, {"setUse3D", (PyCFunction) KX_TrackToActuator::sPySetUse3D, METH_VARARGS, (PY_METHODCHAR)SetUse3D_doc}, {"getUse3D", (PyCFunction) KX_TrackToActuator::sPyGetUse3D, METH_VARARGS, (PY_METHODCHAR)GetUse3D_doc}, - - // ---> deprecated {"setObject", (PyCFunction) KX_TrackToActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc}, {"getObject", (PyCFunction) KX_TrackToActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc}, @@ -469,39 +468,55 @@ PyMethodDef KX_TrackToActuator::Methods[] = { }; PyAttributeDef KX_TrackToActuator::Attributes[] = { + KX_PYATTRIBUTE_INT_RW("time",0,1000,true,KX_TrackToActuator,m_time), + KX_PYATTRIBUTE_BOOL_RW("user3D",KX_TrackToActuator,m_allow3D), + KX_PYATTRIBUTE_RW_FUNCTION("object", KX_TrackToActuator, pyattr_get_object, pyattr_set_object), + { NULL } //Sentinel }; +PyObject* KX_TrackToActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_TrackToActuator* actuator = static_cast(self); + if (!actuator->m_object) + Py_RETURN_NONE; + else + return actuator->m_object->AddRef(); +} + +int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_TrackToActuator* actuator = static_cast(self); + KX_GameObject *gameobj; + + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return 1; // ConvertPythonToGameObject sets the error + + if (actuator->m_object != NULL) + actuator->m_object->UnregisterActuator(actuator); + + actuator->m_object = (SCA_IObject*) gameobj; + + if (actuator->m_object) + actuator->m_object->RegisterActuator(actuator); + + return 0; +} + PyObject* KX_TrackToActuator::_getattr(const char *attr) { - if (!strcmp(attr, "object")) { - if (!m_object) Py_RETURN_NONE; - else return m_object->AddRef(); - } - + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } int KX_TrackToActuator::_setattr(const char *attr, PyObject* value) { - if (!strcmp(attr, "object")) { - KX_GameObject *gameobj; - - if (!ConvertPythonToGameObject(value, &gameobj, true)) - return 1; // ConvertPythonToGameObject sets the error - - if (m_object != NULL) - m_object->UnregisterActuator(this); - - m_object = (SCA_IObject*)gameobj; - - if (m_object) - m_object->RegisterActuator(this); - - return 0; - } - + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; return SCA_IActuator::_setattr(attr, value); } @@ -563,6 +578,7 @@ const char KX_TrackToActuator::SetTime_doc[] = "\tSet the time in frames with which to delay the tracking motion.\n"; PyObject* KX_TrackToActuator::PySetTime(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setTime()", "the timer property"); int timeArg; if (!PyArg_ParseTuple(args, "i", &timeArg)) @@ -584,6 +600,7 @@ const char KX_TrackToActuator::GetTime_doc[] = "\tReturn the time in frames with which the tracking motion is delayed.\n"; PyObject* KX_TrackToActuator::PyGetTime(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getTime()", "the timer property"); return PyInt_FromLong(m_time); } @@ -595,6 +612,7 @@ const char KX_TrackToActuator::GetUse3D_doc[] = "\tReturns 1 if the motion is allowed to extend in the z-direction.\n"; PyObject* KX_TrackToActuator::PyGetUse3D(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setTime()", "the use3D property"); return PyInt_FromLong(!(m_allow3D == 0)); } @@ -608,6 +626,7 @@ const char KX_TrackToActuator::SetUse3D_doc[] = "\tset to 0 to lock the tracking motion to the x-y plane.\n"; PyObject* KX_TrackToActuator::PySetUse3D(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setTime()", "the use3D property"); int boolArg; if (!PyArg_ParseTuple(args, "i", &boolArg)) { diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h index 392e55402f1..f81958dfb33 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.h +++ b/source/gameengine/Ketsji/KX_TrackToActuator.h @@ -74,7 +74,11 @@ class KX_TrackToActuator : public SCA_IActuator /* Python part */ virtual PyObject* _getattr(const char *attr); virtual int _setattr(const char *attr, PyObject* value); - + + /* These are used to get and set m_ob */ + static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + /* 1. setObject */ KX_PYMETHOD_DOC_O(KX_TrackToActuator,SetObject); /* 2. getObject */ diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index 833d896ba6b..f158b410975 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -72,6 +72,7 @@ Documentation for the GameLogic Module. - L{SoundActuator} - L{TrackToActuator} - L{VisibilityActuator} + - L{DynamicActuator} Most logic brick's methods are accessors for the properties available in the logic buttons. Consult the logic bricks documentation for more information on how each logic brick works. @@ -156,6 +157,14 @@ Documentation for the GameLogic Module. @var KX_RAY_AXIS_NEG_X: See L{KX_RaySensor} @var KX_RAY_AXIS_NEG_Y: See L{KX_RaySensor} @var KX_RAY_AXIS_NEG_Z: See L{KX_RaySensor} + +@group Dynamic Actuator: KX_DYN_RESTORE_DYNAMICS, KX_DYN_DISABLE_DYNAMICS, KX_DYN_ENABLE_RIGID_BODY, KX_DYN_DISABLE_RIGID_BODY, KX_DYN_SET_MASS +@var KX_DYN_RESTORE_DYNAMICS: See L{KX_SCA_DynamicActuator} +@var KX_DYN_DISABLE_DYNAMICS: See L{KX_SCA_DynamicActuator} +@var KX_DYN_ENABLE_RIGID_BODY: See L{KX_SCA_DynamicActuator} +@var KX_DYN_DISABLE_RIGID_BODY: See L{KX_SCA_DynamicActuator} +@var KX_DYN_SET_MASS: See L{KX_SCA_DynamicActuator} + """ diff --git a/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py new file mode 100644 index 00000000000..a6a3bce1f31 --- /dev/null +++ b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py @@ -0,0 +1,30 @@ +# $Id$ +# Documentation for KX_SCA_DynamicActuator +from SCA_IActuator import * + +class KX_SCA_DynamicActuator(SCA_IActuator): + """ + Dynamic Actuator. + @ivar operation: the type of operation of the actuator, 0-4 + KX_DYN_RESTORE_DYNAMICS, KX_DYN_DISABLE_DYNAMICS, + KX_DYN_ENABLE_RIGID_BODY, KX_DYN_DISABLE_RIGID_BODY, KX_DYN_SET_MASS + @type operation: integer + @ivar mass: the mass value for the KX_DYN_SET_MASS operation + @type mass: float + """ + def setOperation(operation): + """ + DEPRECATED: Use the operation property instead. + Set the type of operation when the actuator is activated: + 0 = restore dynamics + 1 = disable dynamics + 2 = enable rigid body + 3 = disable rigid body + 4 = set mass + """ + def getOperatoin() + """ + DEPRECATED: Use the operation property instead. + return the type of operation + """ + diff --git a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py index 498f6072e23..1faf215ed56 100644 --- a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py @@ -55,9 +55,15 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): This will generate a warning in the console: C{ERROR: GameObject I{OBName} ReplaceMeshActuator I{ActuatorName} without object} + + Properties: + @ivar mesh: the name of the mesh that will replace the current one + Set to None to disable actuator + @type mesh: string or None if no mesh is set """ def setMesh(name): """ + DEPRECATED: Use the mesh property instead. Sets the name of the mesh that will replace the current one. When the name is None it will unset the mesh value so no action is taken. @@ -65,6 +71,7 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): """ def getMesh(): """ + DEPRECATED: Use the mesh property instead. Returns the name of the mesh that will replace the current one. Returns None if no mesh has been scheduled to be added. diff --git a/source/gameengine/PyDoc/KX_TrackToActuator.py b/source/gameengine/PyDoc/KX_TrackToActuator.py index 730ab21166b..ff533e22ac0 100644 --- a/source/gameengine/PyDoc/KX_TrackToActuator.py +++ b/source/gameengine/PyDoc/KX_TrackToActuator.py @@ -15,9 +15,15 @@ class KX_TrackToActuator(SCA_IActuator): @ivar object: the object this actuator tracks. @type object: KX_GameObject or None + @ivar time: the time in frames with which to delay the tracking motion + @type time: integer + @ivar use3D: the tracking motion to use 3D + @type use3D: boolean + """ def setObject(object): """ + DEPRECATED: Use the object property. Sets the object to track. @type object: L{KX_GameObject}, string or None @@ -25,6 +31,7 @@ class KX_TrackToActuator(SCA_IActuator): """ def getObject(name_only): """ + DEPRECATED: Use the object property. Returns the name of the object to track. @type name_only: bool @@ -33,18 +40,21 @@ class KX_TrackToActuator(SCA_IActuator): """ def setTime(time): """ + DEPRECATED: Use the time property. Sets the time in frames with which to delay the tracking motion. @type time: integer """ def getTime(): """ + DEPRECATED: Use the time property. Returns the time in frames with which the tracking motion is delayed. @rtype: integer """ def setUse3D(use3d): """ + DEPRECATED: Use the use3D property. Sets the tracking motion to use 3D. @type use3d: boolean @@ -53,6 +63,7 @@ class KX_TrackToActuator(SCA_IActuator): """ def getUse3D(): """ + DEPRECATED: Use the use3D property. Returns True if the tracking motion will track in the z direction. @rtype: boolean From 441f26a1702444d256a54e5baf67bc7c07d75af5 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Tue, 31 Mar 2009 22:34:34 +0000 Subject: [PATCH 044/201] Clean up for the imminent migration from SVN to GIT. --- .../SoundSystem/make/msvc_6_0/SoundSystem.dsp | 412 ++-- .../make/msvc_6_0/dummy/DummySoundSystem.dsp | 206 +- .../msvc_6_0/openal/OpenALSoundSystem.dsp | 212 +- intern/bmfont/make/msvc_6_0/bmfont.dsp | 352 +-- intern/bmfont/make/msvc_6_0/bmfont.dsw | 58 +- intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp | 218 +- intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw | 88 +- intern/boolop/intern/BOP_Merge2.cpp | 2 +- intern/boolop/intern/BOP_Misc.h | 2 +- intern/boolop/make/msvc_6_0/boolop.dsp | 444 ++-- intern/bsp/make/msvc6_0/bsplib.dsp | 276 +-- intern/bsp/make/msvc6_0/bsplib.dsw | 58 +- .../bsp/test/BSP_GhostTest/BSP_GhostTest.dsp | 252 +- .../bsp/test/BSP_GhostTest/BSP_GhostTest.dsw | 250 +- intern/container/make/msvc_6_0/container.dsp | 266 +-- intern/container/make/msvc_6_0/container.dsw | 58 +- .../decimation/make/msvc_6_0/decimation.dsp | 372 +-- .../decimation/make/msvc_6_0/decimation.dsw | 66 +- intern/elbeem/make/msvc_6_0/elbeem.dsp | 580 ++--- intern/ghost/make/msvc/ghost.dsp | 584 ++--- intern/ghost/make/msvc/ghost.dsw | 58 +- intern/ghost/test/make/msvc_6_0/gears.dsp | 204 +- intern/ghost/test/make/msvc_6_0/gears_C.dsp | 204 +- .../ghost/test/make/msvc_6_0/ghost_test.dsw | 154 +- intern/guardedalloc/intern/mmap_win.c | 2 +- .../make/msvc_6_0/guardedalloc.dsp | 228 +- intern/guardedalloc/mmap_win.h | 2 +- intern/iksolver/make/msvc_6_0/iksolver.dsp | 520 ++--- intern/iksolver/make/msvc_6_0/iksolver.dsw | 70 +- .../make/msvc_6_0/ik_glut_test.dsp | 260 +-- .../make/msvc_6_0/ik_glut_test.dsw | 98 +- intern/make/msvc_6_0/build_install_all.dsp | 136 +- intern/make/msvc_6_0/intern.dsw | 604 ++--- intern/memutil/make/msvc_60/memutil.dsp | 300 +-- intern/memutil/make/msvc_60/memutil.dsw | 58 +- intern/moto/make/msvc_6_0/MoTo.dsp | 758 +++--- intern/moto/make/msvc_6_0/MoTo.dsw | 58 +- intern/opennl/make/msvc_6_0/OpenNL.dsp | 504 ++-- intern/opennl/make/msvc_6_0/OpenNL.dsw | 58 +- intern/string/make/msvc_6_0/string.dsp | 244 +- intern/string/make/msvc_6_0/string.dsw | 58 +- .../BLO_readblenfile/BLO_readblenfile.dsp | 310 +-- .../blender/BPY_python/BPY_python.dsp | 1176 +++++----- projectfiles/blender/avi/BL_avi.dsp | 398 ++-- projectfiles/blender/blender.dsp | 248 +- projectfiles/blender/blender.dsw | 1486 ++++++------ .../blender/blenkernel/BKE_blenkernel.dsp | 1128 ++++----- projectfiles/blender/blenlib/BLI_blenlib.dsp | 636 ++--- .../blenpluginapi/blenpluginapi.dsp | 238 +- projectfiles/blender/ftfont/FTF_ftfont.dsp | 236 +- projectfiles/blender/glut/BL_glut.dsp | 648 ++--- projectfiles/blender/imbuf/BL_imbuf.dsp | 876 +++---- projectfiles/blender/img/BL_img.dsp | 342 +-- projectfiles/blender/loader/BLO_loader.dsp | 372 +-- .../blender/makesdna/DNA_makesdna.dsp | 746 +++--- .../blender/radiosity/BRA_radiosity.dsp | 266 +-- projectfiles/blender/render/BRE_render.dsp | 384 +-- .../renderconverter/BRE_renderconverter.dsp | 204 +- projectfiles/blender/src/BL_src.dsp | 2080 ++++++++--------- projectfiles/blender/src/BL_src_cre.dsp | 204 +- projectfiles/datatoc/datatoc.dsp | 200 +- .../gameengine/blenderhook/KX_blenderhook.dsp | 322 +-- .../gameengine/converter/KX_converter.dsp | 556 ++--- .../gameengine/expression/EXP_expressions.dsp | 604 ++--- .../gameengine/gamelogic/SCA_gamelogic.dsp | 812 +++---- .../gameengine/gameplayer/axctl/GP_axctl.dsp | 506 ++-- .../gameplayer/common/GP_common.dsp | 510 ++-- .../gameengine/gameplayer/ghost/GP_ghost.dsp | 312 +-- .../gameengine/gameplayer/glut/GP_glut.dsp | 410 ++-- .../loader/BlenderLoader/BlenderLoader.dsp | 412 ++-- .../gameplayer/netscape/GP_netscape.dsp | 346 +-- .../gameplayer/netscape2/GP_netscape.dsp | 362 +-- .../gameengine/gameplayer/ps2/GP_ps2.dsp | 364 +-- projectfiles/gameengine/gameplayer/qt/gp.dsp | 328 +-- .../gameengine/gameplayer/qt/gpplugin.dsp | 1648 ++++++------- .../gameengine/gameplayer/qt/qtgp.dsw | 646 ++--- .../gameengine/gameplayer/sdl/GP_sdl.dsp | 410 ++-- projectfiles/gameengine/ketsji/KX_ketsji.dsp | 1380 +++++------ .../gameengine/ketsji/network/KX_network.dsp | 372 +-- .../loopbacknetwork/NG_loopbacknetwork.dsp | 310 +-- .../gameengine/network/network/NG_network.dsp | 348 +-- .../terraplaynetwork/NG_terraplaynetwork.dsp | 360 +-- .../PHY_Physics/PHY_Dummy/PHY_Dummy.dsp | 308 +-- .../physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp | 324 +-- .../physics/PHY_Physics/PHY_Physics.dsp | 356 +-- .../physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp | 324 +-- .../gameengine/rasterizer/RAS_rasterizer.dsp | 486 ++-- .../openglrasterizer/RAS_openglrasterizer.dsp | 366 +-- .../gameengine/scenegraph/SG_scenegraph.dsp | 398 ++-- .../kernel/gen_messaging/gen_messaging.dsp | 310 +-- projectfiles/kernel/system/SYS_system.dsp | 366 +-- projectfiles/sumo/fuzzics/SM_fuzzics.dsp | 432 ++-- projectfiles/sumo/moto/SM_moto.dsp | 664 +++--- projectfiles/sumo/solid/SM_solid.dsp | 680 +++--- projectfiles_vc7/sumo/moto/SM_moto.dsp | 664 +++--- projectfiles_vc7/sumo/solid/SM_solid.dsp | 680 +++--- release/beos-4.5-i386/specific.sh | 0 release/beos-5.0-i386/specific.sh | 0 release/irix-6.2-mips/specific.sh | 0 release/scripts/import_web3d.py | 0 ...ect.py => scripttemplate_camera_object.py} | 0 source/blender/blenkernel/BKE_bmesh.h | 2 +- .../blender/blenkernel/BKE_bmeshCustomData.h | 2 +- source/blender/blenkernel/BKE_cloth.h | 2 +- source/blender/blenkernel/BKE_collision.h | 2 +- source/blender/blenkernel/BKE_particle.h | 2 +- source/blender/blenkernel/BKE_suggestions.h | 2 +- .../blenkernel/intern/BME_Customdata.c | 2 +- .../blenkernel/intern/BME_conversions.c | 2 +- source/blender/blenkernel/intern/BME_eulers.c | 2 +- source/blender/blenkernel/intern/BME_mesh.c | 2 +- .../blender/blenkernel/intern/BME_structure.c | 2 +- source/blender/blenkernel/intern/BME_tools.c | 2 +- .../blender/blenkernel/intern/bmesh_private.h | 2 +- source/blender/blenkernel/intern/particle.c | 2 +- .../blenkernel/intern/particle_system.c | 2 +- .../blender/blenkernel/intern/suggestions.c | 2 +- source/blender/imbuf/intern/IMB_jp2.h | 2 +- source/blender/imbuf/intern/dds/Makefile | 2 +- source/blender/include/BDR_sketch.h | 2 +- source/blender/include/BIF_editparticle.h | 2 +- source/blender/include/BIF_generate.h | 2 +- source/blender/include/BIF_radialcontrol.h | 2 +- source/blender/include/BIF_retarget.h | 2 +- source/blender/include/BIF_sketch.h | 2 +- source/blender/include/BSE_editaction_types.h | 2 +- source/blender/makesdna/DNA_cloth_types.h | 2 +- source/blender/makesdna/DNA_particle_types.h | 2 +- source/blender/nodes/TEX_node.h | 2 +- .../nodes/intern/CMP_nodes/CMP_normalize.c | 2 +- .../nodes/intern/SHD_nodes/SHD_invert.c | 2 +- .../blender/nodes/intern/TEX_nodes/Makefile | 2 +- .../nodes/intern/TEX_nodes/TEX_image.c | 2 +- .../nodes/intern/TEX_nodes/TEX_valToRgb.c | 2 +- .../blender/python/api2_2x/doc/epy_docgen.sh | 0 .../blender/render/intern/source/raytrace.c | 2 +- source/blender/src/editarmature_generate.c | 2 +- source/blender/src/editarmature_sketch.c | 2 +- source/blender/src/editparticle.c | 2 +- source/blender/src/radialcontrol.c | 2 +- source/darwin/Makefile | 2 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 2 +- source/gameengine/Ketsji/KX_ParentActuator.h | 2 +- source/gameengine/PyDoc/KX_ParentActuator.py | 2 +- source/gameengine/PyDoc/SCA_JoystickSensor.py | 2 +- source/gameengine/PyDoc/epy_docgen.sh | 0 146 files changed, 19637 insertions(+), 19637 deletions(-) mode change 100644 => 100755 release/beos-4.5-i386/specific.sh mode change 100644 => 100755 release/beos-5.0-i386/specific.sh mode change 100644 => 100755 release/irix-6.2-mips/specific.sh mode change 100755 => 100644 release/scripts/import_web3d.py rename release/scripts/{scripttemplate_camer_object.py => scripttemplate_camera_object.py} (100%) mode change 100644 => 100755 source/blender/python/api2_2x/doc/epy_docgen.sh mode change 100644 => 100755 source/gameengine/PyDoc/epy_docgen.sh diff --git a/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp index c7ce7aa7a70..1bd973dfb6c 100644 --- a/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp +++ b/intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp @@ -1,206 +1,206 @@ -# Microsoft Developer Studio Project File - Name="SoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SoundSystem.mak" CFG="SoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\libSoundSystem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "SoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SoundSystem___Win32_Debug" -# PROP BASE Intermediate_Dir "SoundSystem___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\debug\libSoundSystem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\debug\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "SoundSystem - Win32 Release" -# Name "SoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\SND_AudioDevice.cpp -# End Source File -# Begin Source File - -SOURCE="..\..\intern\SND_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_CDObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_DeviceManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_IdObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_Scene.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_SoundListener.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_SoundObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_Utils.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_WaveCache.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_WaveSlot.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\intern\SND_AudioDevice.h -# End Source File -# Begin Source File - -SOURCE="..\..\SND_C-api.h" -# End Source File -# Begin Source File - -SOURCE=..\..\SND_CDObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_DependKludge.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_DeviceManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_IAudioDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\SND_IdObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Object.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_SoundListener.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_SoundObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_Utils.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_WaveCache.h -# End Source File -# Begin Source File - -SOURCE=..\..\SND_WaveSlot.h -# End Source File -# Begin Source File - -SOURCE=..\..\SoundDefines.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SoundSystem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SoundSystem - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SoundSystem.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SoundSystem.mak" CFG="SoundSystem - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SoundSystem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\libSoundSystem.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "SoundSystem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SoundSystem___Win32_Debug" +# PROP BASE Intermediate_Dir "SoundSystem___Win32_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\soundsystem\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/moto/include" /I "../../dummy" /I "../../openal" /I "..\..\..\string" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\soundsystem\debug\libSoundSystem.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\SoundSystem\include\*.h ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\soundsystem\debug\*.lib ..\..\..\..\..\lib\windows\SoundSystem\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "SoundSystem - Win32 Release" +# Name "SoundSystem - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\SND_AudioDevice.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\intern\SND_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_CDObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_DeviceManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_IdObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_Scene.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_SoundListener.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_SoundObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_Utils.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_WaveCache.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_WaveSlot.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\intern\SND_AudioDevice.h +# End Source File +# Begin Source File + +SOURCE="..\..\SND_C-api.h" +# End Source File +# Begin Source File + +SOURCE=..\..\SND_CDObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_DependKludge.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_DeviceManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_IAudioDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\SND_IdObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_Object.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_Scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_SoundListener.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_SoundObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_Utils.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_WaveCache.h +# End Source File +# Begin Source File + +SOURCE=..\..\SND_WaveSlot.h +# End Source File +# Begin Source File + +SOURCE=..\..\SoundDefines.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp index 4a27fdfa6e3..2bf372d0382 100644 --- a/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp +++ b/intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp @@ -1,103 +1,103 @@ -# Microsoft Developer Studio Project File - Name="DummySoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=DummySoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "DummySoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "DummySoundSystem.mak" CFG="DummySoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "DummySoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "DummySoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "DummySoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\libDummySoundSystem.lib" - -!ELSEIF "$(CFG)" == "DummySoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug\libDummySoundSystem.lib" - -!ENDIF - -# Begin Target - -# Name "DummySoundSystem - Win32 Release" -# Name "DummySoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\dummy\SND_DummyDevice.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\dummy\SND_DummyDevice.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="DummySoundSystem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=DummySoundSystem - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "DummySoundSystem.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "DummySoundSystem.mak" CFG="DummySoundSystem - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "DummySoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "DummySoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "DummySoundSystem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\libDummySoundSystem.lib" + +!ELSEIF "$(CFG)" == "DummySoundSystem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\dummy\debug\libDummySoundSystem.lib" + +!ENDIF + +# Begin Target + +# Name "DummySoundSystem - Win32 Release" +# Name "DummySoundSystem - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\dummy\SND_DummyDevice.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\dummy\SND_DummyDevice.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp b/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp index 67a6bd0bb5a..ef0c10e8eff 100644 --- a/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp +++ b/intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp @@ -1,106 +1,106 @@ -# Microsoft Developer Studio Project File - Name="OpenALSoundSystem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=OpenALSoundSystem - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "OpenALSoundSystem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "OpenALSoundSystem.mak" CFG="OpenALSoundSystem - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "OpenALSoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "OpenALSoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "OpenALSoundSystem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\..\lib\windows\sdl\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\libOpenALSoundSystem.lib" - -!ELSEIF "$(CFG)" == "OpenALSoundSystem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "OpenALSoundSystem___Win32_Debug" -# PROP BASE Intermediate_Dir "OpenALSoundSystem___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\..\..\lib\windows\openal\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug\libOpenALSoundSystem.lib" - -!ENDIF - -# Begin Target - -# Name "OpenALSoundSystem - Win32 Release" -# Name "OpenALSoundSystem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\openal\SND_OpenALDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\sdl\SND_SDLCDDevice.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\openal\SND_OpenALDevice.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="OpenALSoundSystem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=OpenALSoundSystem - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "OpenALSoundSystem.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "OpenALSoundSystem.mak" CFG="OpenALSoundSystem - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "OpenALSoundSystem - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "OpenALSoundSystem - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "OpenALSoundSystem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\..\lib\windows\sdl\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\libOpenALSoundSystem.lib" + +!ELSEIF "$(CFG)" == "OpenALSoundSystem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "OpenALSoundSystem___Win32_Debug" +# PROP BASE Intermediate_Dir "OpenALSoundSystem___Win32_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\intern" /I "..\..\..\..\SoundSystem" /I "..\..\..\..\SoundSystem\sdl" /I "..\..\..\..\moto\include" /I "..\..\..\..\string" /I "..\..\..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\..\..\lib\windows\openal\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\intern\soundsystem\openal\debug\libOpenALSoundSystem.lib" + +!ENDIF + +# Begin Target + +# Name "OpenALSoundSystem - Win32 Release" +# Name "OpenALSoundSystem - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\openal\SND_OpenALDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\sdl\SND_SDLCDDevice.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\openal\SND_OpenALDevice.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/bmfont/make/msvc_6_0/bmfont.dsp b/intern/bmfont/make/msvc_6_0/bmfont.dsp index a9d2d9722e1..b7ff7774fa1 100644 --- a/intern/bmfont/make/msvc_6_0/bmfont.dsp +++ b/intern/bmfont/make/msvc_6_0/bmfont.dsp @@ -1,176 +1,176 @@ -# Microsoft Developer Studio Project File - Name="bmfont" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=bmfont - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "bmfont.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "bmfont.mak" CFG="bmfont - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "bmfont - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "bmfont - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "bmfont - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\bmfont" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bmfont" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /I "../../intern" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bmfont\libbmfont.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Copying BMFONT files library (release target) to lib tree. -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\bmfont\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bmfont\*.lib ..\..\..\..\..\lib\windows\bmfont\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "bmfont - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\bmfont\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bmfont\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I "../../intern" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bmfont\debug\libbmfont.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Copying BMFONT files library (debug target) to lib tree. -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\bmfont\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bmfont\debug\*.lib ..\..\..\..\..\lib\windows\bmfont\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "bmfont - Win32 Release" -# Name "bmfont - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\BMF_Api.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_BitmapFont.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helv10.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helv12.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helvb10.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helvb12.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helvb14.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_helvb8.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_scr12.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_scr14.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_font_scr15.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\BMF_BitmapFont.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BMF_FontData.h -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\BMF_Api.h -# End Source File -# Begin Source File - -SOURCE=..\..\BMF_Fonts.h -# End Source File -# Begin Source File - -SOURCE=..\..\BMF_Settings.h -# End Source File -# End Group -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="bmfont" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=bmfont - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "bmfont.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "bmfont.mak" CFG="bmfont - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "bmfont - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "bmfont - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "bmfont - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\bmfont" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bmfont" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /I "../../intern" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bmfont\libbmfont.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Copying BMFONT files library (release target) to lib tree. +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\bmfont\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bmfont\*.lib ..\..\..\..\..\lib\windows\bmfont\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "bmfont - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\bmfont\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bmfont\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I "../../intern" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bmfont\debug\libbmfont.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Copying BMFONT files library (debug target) to lib tree. +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\bmfont\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bmfont\debug\*.lib ..\..\..\..\..\lib\windows\bmfont\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "bmfont - Win32 Release" +# Name "bmfont - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\BMF_Api.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_BitmapFont.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helv10.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helv12.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helvb10.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helvb12.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helvb14.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_helvb8.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_scr12.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_scr14.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_font_scr15.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\BMF_BitmapFont.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BMF_FontData.h +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\BMF_Api.h +# End Source File +# Begin Source File + +SOURCE=..\..\BMF_Fonts.h +# End Source File +# Begin Source File + +SOURCE=..\..\BMF_Settings.h +# End Source File +# End Group +# End Group +# End Target +# End Project diff --git a/intern/bmfont/make/msvc_6_0/bmfont.dsw b/intern/bmfont/make/msvc_6_0/bmfont.dsw index d2e2f94cd0b..265738bc0fe 100644 --- a/intern/bmfont/make/msvc_6_0/bmfont.dsw +++ b/intern/bmfont/make/msvc_6_0/bmfont.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "bmfont"=.\bmfont.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "bmfont"=.\bmfont.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp b/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp index 13e6e65f706..d178f5b4dc1 100644 --- a/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp +++ b/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp @@ -1,109 +1,109 @@ -# Microsoft Developer Studio Project File - Name="BMF_Test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=BMF_Test - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BMF_Test.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BMF_Test.mak" CFG="BMF_Test - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BMF_Test - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "BMF_Test - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BMF_Test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/ghost/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libstring.a libghost.a glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/ghost/lib" - -!ELSEIF "$(CFG)" == "BMF_Test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test/debug" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test/debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/ghost/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib opengl32.lib libstring.a libghost.a user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/ghost/lib" - -!ENDIF - -# Begin Target - -# Name "BMF_Test - Win32 Release" -# Name "BMF_Test - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\intern\BMF_glut_helb8.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\intern\BMF_glut_helb8.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\BMF_Test.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BMF_Test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=BMF_Test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BMF_Test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BMF_Test.mak" CFG="BMF_Test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BMF_Test - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "BMF_Test - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BMF_Test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/ghost/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libstring.a libghost.a glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/ghost/lib" + +!ELSEIF "$(CFG)" == "BMF_Test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test/debug" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/BMF_bmfont/test/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /I "../../../../../lib/windows/string/include" /I "../../../../../lib/windows/ghost/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib opengl32.lib libstring.a libghost.a user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/ghost/lib" + +!ENDIF + +# Begin Target + +# Name "BMF_Test - Win32 Release" +# Name "BMF_Test - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\intern\BMF_glut_helb8.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\intern\BMF_glut_helb8.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\BMF_Test.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw b/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw index 5baacb9adf7..321de497224 100644 --- a/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw +++ b/intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw @@ -1,44 +1,44 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "BMF_Test"=.\BMF_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name BMF_bmfont - End Project Dependency -}}} - -############################################################################### - -Project: "BMF_bmfont"=..\..\..\make\msvc_6_0\BMF_bmfont.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "BMF_Test"=.\BMF_Test.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name BMF_bmfont + End Project Dependency +}}} + +############################################################################### + +Project: "BMF_bmfont"=..\..\..\make\msvc_6_0\BMF_bmfont.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/boolop/intern/BOP_Merge2.cpp b/intern/boolop/intern/BOP_Merge2.cpp index bbf3f8ba702..2dc182289b3 100644 --- a/intern/boolop/intern/BOP_Merge2.cpp +++ b/intern/boolop/intern/BOP_Merge2.cpp @@ -1,6 +1,6 @@ /** * - * $Id: BOP_Merge22.cpp 14444 2008-04-16 22:40:48Z hos $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/intern/boolop/intern/BOP_Misc.h b/intern/boolop/intern/BOP_Misc.h index d021579d161..ce963b5ce92 100644 --- a/intern/boolop/intern/BOP_Misc.h +++ b/intern/boolop/intern/BOP_Misc.h @@ -1,6 +1,6 @@ /** * - * $Id: BOP_Misc.h 14444 2008-04-16 22:40:48Z khughes $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/intern/boolop/make/msvc_6_0/boolop.dsp b/intern/boolop/make/msvc_6_0/boolop.dsp index f8a072b4531..d4e0025adc2 100644 --- a/intern/boolop/make/msvc_6_0/boolop.dsp +++ b/intern/boolop/make/msvc_6_0/boolop.dsp @@ -1,222 +1,222 @@ -# Microsoft Developer Studio Project File - Name="boolop" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=boolop - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "boolop.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "boolop.mak" CFG="boolop - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "boolop - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "boolop - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "boolop - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\source\blender\makesdna\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "../../extern" /I "..\..\..\..\..\lib\windows\guardedalloc\include\\" /I "..\..\..\..\source\blender\blenlib\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO copy to lib folder XCOPY /Y .\release\*.lib ..\..\..\..\..\lib\windows\boolop\lib\*.lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "boolop - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\blender\makesdna\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "../../extern" /I "..\..\..\..\..\lib\windows\guardedalloc\include\\" /I "..\..\..\..\source\blender\blenlib\\" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "boolop - Win32 Release" -# Name "boolop - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\BOP_BBox.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_BSPNode.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_BSPTree.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Edge.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Face.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Face2Face.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Interface.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_MathUtils.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Merge.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Mesh.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Segment.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Splitter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Tag.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Triangulator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Vertex.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\intern\BOP_BBox.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_BSPNode.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_BSPTree.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Chrono.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Edge.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Face.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Face2Face.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Indexs.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_MathUtils.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Merge.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Mesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Segment.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Splitter.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Tag.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Triangulator.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BOP_Vertex.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="boolop" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=boolop - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "boolop.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "boolop.mak" CFG="boolop - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "boolop - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "boolop - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "boolop - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\source\blender\makesdna\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "../../extern" /I "..\..\..\..\..\lib\windows\guardedalloc\include\\" /I "..\..\..\..\source\blender\blenlib\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO copy to lib folder XCOPY /Y .\release\*.lib ..\..\..\..\..\lib\windows\boolop\lib\*.lib +# End Special Build Tool + +!ELSEIF "$(CFG)" == "boolop - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\blender\makesdna\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "../../extern" /I "..\..\..\..\..\lib\windows\guardedalloc\include\\" /I "..\..\..\..\source\blender\blenlib\\" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "boolop - Win32 Release" +# Name "boolop - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\BOP_BBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_BSPNode.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_BSPTree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Edge.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Face.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Face2Face.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Interface.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_MathUtils.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Merge.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Mesh.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Segment.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Splitter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Tag.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Triangulator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Vertex.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\intern\BOP_BBox.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_BSPNode.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_BSPTree.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Chrono.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Edge.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Face.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Face2Face.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Indexs.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_MathUtils.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Merge.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Mesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Segment.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Splitter.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Tag.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Triangulator.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BOP_Vertex.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/bsp/make/msvc6_0/bsplib.dsp b/intern/bsp/make/msvc6_0/bsplib.dsp index 00bac967221..703a6326d3a 100644 --- a/intern/bsp/make/msvc6_0/bsplib.dsp +++ b/intern/bsp/make/msvc6_0/bsplib.dsp @@ -1,138 +1,138 @@ -# Microsoft Developer Studio Project File - Name="bsplib" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=bsplib - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "bsplib.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "bsplib.mak" CFG="bsplib - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "bsplib - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "bsplib - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "bsplib - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../../../lib/windows/memutil/include" /I "../.." /I "../../../../../lib/windows/moto/include" /I "../../../../../lib/windows/container/include" /I "..\..\..\container" /I "..\..\..\moto\include" /I "..\..\..\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\libbsp.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\*.lib ..\..\..\..\..\lib\windows\bsp\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "bsplib - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../lib/windows/memutil" /I "../.." /I "../../../../../lib/windows/moto/include" /I "../../../../../lib/windows/container/include" /I "../../../../../lib/windows/memutil/include" /I "..\..\..\container" /I "..\..\..\moto\include" /I "..\..\..\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\debug\libbsp.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\debug\*.lib ..\..\..\..\..\lib\windows\bsp\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\debug\vc60.* ..\..\..\..\..\lib\windows\bsp\lib\debug\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "bsplib - Win32 Release" -# Name "bsplib - Win32 Debug" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\BSP_CSGException.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_CSGISplitter.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_CSGMesh.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_CSGMesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_CSGMesh_CFIterator.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_MeshPrimitives.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\BSP_MeshPrimitives.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\CSG_BooleanOps.cpp -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\extern\CSG_BooleanOps.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="bsplib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=bsplib - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "bsplib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "bsplib.mak" CFG="bsplib - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "bsplib - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "bsplib - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "bsplib - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../../../../lib/windows/memutil/include" /I "../.." /I "../../../../../lib/windows/moto/include" /I "../../../../../lib/windows/container/include" /I "..\..\..\container" /I "..\..\..\moto\include" /I "..\..\..\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\libbsp.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\*.lib ..\..\..\..\..\lib\windows\bsp\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "bsplib - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../lib/windows/memutil" /I "../.." /I "../../../../../lib/windows/moto/include" /I "../../../../../lib/windows/container/include" /I "../../../../../lib/windows/memutil/include" /I "..\..\..\container" /I "..\..\..\moto\include" /I "..\..\..\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\debug\libbsp.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\debug\*.lib ..\..\..\..\..\lib\windows\bsp\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\bsp\debug\vc60.* ..\..\..\..\..\lib\windows\bsp\lib\debug\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "bsplib - Win32 Release" +# Name "bsplib - Win32 Debug" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\BSP_CSGException.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_CSGISplitter.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_CSGMesh.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_CSGMesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_CSGMesh_CFIterator.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_MeshPrimitives.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\BSP_MeshPrimitives.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\CSG_BooleanOps.cpp +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\extern\CSG_BooleanOps.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/bsp/make/msvc6_0/bsplib.dsw b/intern/bsp/make/msvc6_0/bsplib.dsw index 1827dc3746e..de8cdcd1d33 100644 --- a/intern/bsp/make/msvc6_0/bsplib.dsw +++ b/intern/bsp/make/msvc6_0/bsplib.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "bsplib"=.\bsplib.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "bsplib"=.\bsplib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp index aaa45273845..4474eaa5d90 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp +++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp @@ -1,126 +1,126 @@ -# Microsoft Developer Studio Project File - Name="BSP_GhostTest" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=BSP_GhostTest - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BSP_GhostTest.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BSP_GhostTest.mak" CFG="BSP_GhostTest - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BSP_GhostTest - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "BSP_GhostTest - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BSP_GhostTest - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /Ob2 /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\" - -!ELSEIF "$(CFG)" == "BSP_GhostTest - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\" - -!ENDIF - -# Begin Target - -# Name "BSP_GhostTest - Win32 Release" -# Name "BSP_GhostTest - Win32 Debug" -# Begin Source File - -SOURCE=.\BSP_GhostTest3D.cpp -# End Source File -# Begin Source File - -SOURCE=.\BSP_GhostTest3D.h -# End Source File -# Begin Source File - -SOURCE=.\BSP_MeshDrawer.cpp -# End Source File -# Begin Source File - -SOURCE=.\BSP_MeshDrawer.h -# End Source File -# Begin Source File - -SOURCE=.\BSP_PlyLoader.cpp -# End Source File -# Begin Source File - -SOURCE=.\BSP_PlyLoader.h -# End Source File -# Begin Source File - -SOURCE=.\BSP_TMesh.h -# End Source File -# Begin Source File - -SOURCE=.\main.cpp -# End Source File -# Begin Source File - -SOURCE=.\ply.h -# End Source File -# Begin Source File - -SOURCE=.\plyfile.c -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BSP_GhostTest" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=BSP_GhostTest - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BSP_GhostTest.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BSP_GhostTest.mak" CFG="BSP_GhostTest - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BSP_GhostTest - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "BSP_GhostTest - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BSP_GhostTest - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /Ob2 /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\" + +!ELSEIF "$(CFG)" == "BSP_GhostTest - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\" + +!ENDIF + +# Begin Target + +# Name "BSP_GhostTest - Win32 Release" +# Name "BSP_GhostTest - Win32 Debug" +# Begin Source File + +SOURCE=.\BSP_GhostTest3D.cpp +# End Source File +# Begin Source File + +SOURCE=.\BSP_GhostTest3D.h +# End Source File +# Begin Source File + +SOURCE=.\BSP_MeshDrawer.cpp +# End Source File +# Begin Source File + +SOURCE=.\BSP_MeshDrawer.h +# End Source File +# Begin Source File + +SOURCE=.\BSP_PlyLoader.cpp +# End Source File +# Begin Source File + +SOURCE=.\BSP_PlyLoader.h +# End Source File +# Begin Source File + +SOURCE=.\BSP_TMesh.h +# End Source File +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# Begin Source File + +SOURCE=.\ply.h +# End Source File +# Begin Source File + +SOURCE=.\plyfile.c +# End Source File +# End Target +# End Project diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw index 802fba84bef..0d9ca3d2b08 100644 --- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw +++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw @@ -1,125 +1,125 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "BSP_GhostTest"=.\BSP_GhostTest.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name bsplib - End Project Dependency - Begin Project Dependency - Project_Dep_Name ghost - End Project Dependency - Begin Project Dependency - Project_Dep_Name string - End Project Dependency - Begin Project Dependency - Project_Dep_Name MoTo - End Project Dependency -}}} - -############################################################################### - -Project: "MoTo"=..\..\..\moto\make\msvc_6_0\MoTo.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "bsplib"=..\..\make\msvc6_0\bsplib.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name container - End Project Dependency - Begin Project Dependency - Project_Dep_Name memutil - End Project Dependency - Begin Project Dependency - Project_Dep_Name MoTo - End Project Dependency -}}} - -############################################################################### - -Project: "container"=..\..\..\container\make\msvc_6_0\container.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name memutil - End Project Dependency -}}} - -############################################################################### - -Project: "ghost"=..\..\..\ghost\make\msvc\ghost.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "memutil"=..\..\..\memutil\make\msvc_60\memutil.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "string"=..\..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "BSP_GhostTest"=.\BSP_GhostTest.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name bsplib + End Project Dependency + Begin Project Dependency + Project_Dep_Name ghost + End Project Dependency + Begin Project Dependency + Project_Dep_Name string + End Project Dependency + Begin Project Dependency + Project_Dep_Name MoTo + End Project Dependency +}}} + +############################################################################### + +Project: "MoTo"=..\..\..\moto\make\msvc_6_0\MoTo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "bsplib"=..\..\make\msvc6_0\bsplib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name container + End Project Dependency + Begin Project Dependency + Project_Dep_Name memutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name MoTo + End Project Dependency +}}} + +############################################################################### + +Project: "container"=..\..\..\container\make\msvc_6_0\container.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name memutil + End Project Dependency +}}} + +############################################################################### + +Project: "ghost"=..\..\..\ghost\make\msvc\ghost.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "memutil"=..\..\..\memutil\make\msvc_60\memutil.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "string"=..\..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/container/make/msvc_6_0/container.dsp b/intern/container/make/msvc_6_0/container.dsp index 2ccf1f0a384..ac565c4c1ec 100644 --- a/intern/container/make/msvc_6_0/container.dsp +++ b/intern/container/make/msvc_6_0/container.dsp @@ -1,133 +1,133 @@ -# Microsoft Developer Studio Project File - Name="container" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=container - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "container.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "container.mak" CFG="container - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "container - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "container - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "container - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\container" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\container" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/container/libcontainer.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\container\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\container\*.lib ..\..\..\..\..\lib\windows\container\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "container - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\container\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\container\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\container\debug\libcontainer.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\container\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\container\debug\*.lib ..\..\..\..\..\lib\windows\container\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\container\debug\vc60.* ..\..\..\..\..\lib\windows\container\lib\debug\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "container - Win32 Release" -# Name "container - Win32 Debug" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\CTR_List.cpp - -!IF "$(CFG)" == "container - Win32 Release" - -# ADD CPP /I "../extern" /I "../../" - -!ELSEIF "$(CFG)" == "container - Win32 Debug" - -# ADD CPP /I "../../" - -!ENDIF - -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\CTR_List.h -# End Source File -# Begin Source File - -SOURCE=..\..\CTR_Map.h -# End Source File -# Begin Source File - -SOURCE=..\..\CTR_TaggedIndex.h -# End Source File -# Begin Source File - -SOURCE=..\..\CTR_TaggedSetOps.h -# End Source File -# Begin Source File - -SOURCE=..\..\CTR_UHeap.h -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="container" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=container - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "container.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "container.mak" CFG="container - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "container - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "container - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "container - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\container" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\container" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/container/libcontainer.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\container\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\container\*.lib ..\..\..\..\..\lib\windows\container\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "container - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\container\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\container\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\container\debug\libcontainer.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\container\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\container\debug\*.lib ..\..\..\..\..\lib\windows\container\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\container\debug\vc60.* ..\..\..\..\..\lib\windows\container\lib\debug\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "container - Win32 Release" +# Name "container - Win32 Debug" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\CTR_List.cpp + +!IF "$(CFG)" == "container - Win32 Release" + +# ADD CPP /I "../extern" /I "../../" + +!ELSEIF "$(CFG)" == "container - Win32 Debug" + +# ADD CPP /I "../../" + +!ENDIF + +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\CTR_List.h +# End Source File +# Begin Source File + +SOURCE=..\..\CTR_Map.h +# End Source File +# Begin Source File + +SOURCE=..\..\CTR_TaggedIndex.h +# End Source File +# Begin Source File + +SOURCE=..\..\CTR_TaggedSetOps.h +# End Source File +# Begin Source File + +SOURCE=..\..\CTR_UHeap.h +# End Source File +# End Target +# End Project diff --git a/intern/container/make/msvc_6_0/container.dsw b/intern/container/make/msvc_6_0/container.dsw index 13092e3c427..ed9604641fb 100644 --- a/intern/container/make/msvc_6_0/container.dsw +++ b/intern/container/make/msvc_6_0/container.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "container"=.\container.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "container"=.\container.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/decimation/make/msvc_6_0/decimation.dsp b/intern/decimation/make/msvc_6_0/decimation.dsp index 013e9e077fb..40b65a032db 100644 --- a/intern/decimation/make/msvc_6_0/decimation.dsp +++ b/intern/decimation/make/msvc_6_0/decimation.dsp @@ -1,186 +1,186 @@ -# Microsoft Developer Studio Project File - Name="decimation" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=decimation - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "decimation.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "decimation.mak" CFG="decimation - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "decimation - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "decimation - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "decimation - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\decimation" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\decimation" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\decimation\libdecimation.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\decimation\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\*.lib ..\..\..\..\..\lib\windows\decimation\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "decimation - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\decimation\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\decimation\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W4 /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\decimation\debug\libdecimation.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\decimation\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\debug\*.lib ..\..\..\..\..\lib\windows\decimation\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\debug\vc60.* ..\..\..\..\..\lib\windows\decimation\lib\debug\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "decimation - Win32 Release" -# Name "decimation - Win32 Debug" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\LOD_decimation.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_DecimationClass.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_EdgeCollapser.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_EdgeCollapser.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_ExternBufferEditor.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_ExternNormalEditor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_ExternNormalEditor.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_FaceNormalEditor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_FaceNormalEditor.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_ManMesh2.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_ManMesh2.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_MeshBounds.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_MeshException.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_MeshPrimitives.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_MeshPrimitives.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_QSDecimator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_QSDecimator.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_Quadric.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_QuadricEditor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\LOD_QuadricEditor.h -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\extern\LOD_decimation.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="decimation" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=decimation - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "decimation.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "decimation.mak" CFG="decimation - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "decimation - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "decimation - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "decimation - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\decimation" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\decimation" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\decimation\libdecimation.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\decimation\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\*.lib ..\..\..\..\..\lib\windows\decimation\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "decimation - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\decimation\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\decimation\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W4 /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\container\include\\" /I "..\..\..\..\..\lib\windows\memutil\include\\" /I "..\..\..\..\..\lib\windows\moto\include\\" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\decimation\debug\libdecimation.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\decimation\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\debug\*.lib ..\..\..\..\..\lib\windows\decimation\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\decimation\debug\vc60.* ..\..\..\..\..\lib\windows\decimation\lib\debug\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "decimation - Win32 Release" +# Name "decimation - Win32 Debug" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\LOD_decimation.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_DecimationClass.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_EdgeCollapser.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_EdgeCollapser.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_ExternBufferEditor.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_ExternNormalEditor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_ExternNormalEditor.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_FaceNormalEditor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_FaceNormalEditor.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_ManMesh2.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_ManMesh2.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_MeshBounds.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_MeshException.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_MeshPrimitives.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_MeshPrimitives.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_QSDecimator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_QSDecimator.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_Quadric.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_QuadricEditor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\LOD_QuadricEditor.h +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\extern\LOD_decimation.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/decimation/make/msvc_6_0/decimation.dsw b/intern/decimation/make/msvc_6_0/decimation.dsw index f874b324725..d46268c2545 100644 --- a/intern/decimation/make/msvc_6_0/decimation.dsw +++ b/intern/decimation/make/msvc_6_0/decimation.dsw @@ -1,33 +1,33 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "decimation"=.\decimation.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - - - - - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "decimation"=.\decimation.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + + + + + diff --git a/intern/elbeem/make/msvc_6_0/elbeem.dsp b/intern/elbeem/make/msvc_6_0/elbeem.dsp index ef5daa29fa4..652687ca82b 100644 --- a/intern/elbeem/make/msvc_6_0/elbeem.dsp +++ b/intern/elbeem/make/msvc_6_0/elbeem.dsp @@ -1,290 +1,290 @@ -# Microsoft Developer Studio Project File - Name="elbeem" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=elbeem - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "elbeem.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "elbeem.mak" CFG="elbeem - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "elbeem - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "elbeem - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "elbeem - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /I "../../../../../lib/windows/sdl/include" /I "../../../../../lib/windows/zlib/include" /I "../../../../../lib/windows/png/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "NOGUI" /D "ELBEEM_BLENDER" /YX /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Release\blender_elbeem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO copy to lib ... xcopy /Y .\release\blender_elbeem.lib ..\..\..\..\..\lib\windows\elbeem\lib\*.* -# End Special Build Tool - -!ELSEIF "$(CFG)" == "elbeem - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../lib/windows/sdl/include" /I "../../../../../lib/windows/zlib/include" /I "../../../../../lib/windows/png/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "NOGUI" /D "ELBEEM_BLENDER" /YX /FD /GZ /c -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Debug\blender_elbeem.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO copy to lib ... xcopy /Y .\debug\blender_elbeem.lib ..\..\..\..\..\lib\windows\elbeem\lib\debug\*.* -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "elbeem - Win32 Release" -# Name "elbeem - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\attributes.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\elbeem.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\isosurface.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_blenderdumper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_bsptree.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometrymodel.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometryobject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_lighting.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_ray.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_world.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\parametrizer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\particletracer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\simulation_object.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_adap.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_init.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_interface.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_main.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_util.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\utilities.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\intern\attributes.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\isosurface.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\mcubes_tables.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_blenderdumper.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_bsptree.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometryclass.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometrymodel.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometryobject.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_geometryshader.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_lighting.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_lightobject.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_material.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_matrices.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_ray.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_renderglobals.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_rndstream.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_triangle.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_vector3dim.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\ntl_world.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\parametrizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\particletracer.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\simulation_object.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_class.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_dimenions.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_interface.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\solver_relax.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\utilities.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="elbeem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=elbeem - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "elbeem.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "elbeem.mak" CFG="elbeem - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "elbeem - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "elbeem - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "elbeem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /I "../../../../../lib/windows/sdl/include" /I "../../../../../lib/windows/zlib/include" /I "../../../../../lib/windows/png/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "NOGUI" /D "ELBEEM_BLENDER" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"Release\blender_elbeem.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO copy to lib ... xcopy /Y .\release\blender_elbeem.lib ..\..\..\..\..\lib\windows\elbeem\lib\*.* +# End Special Build Tool + +!ELSEIF "$(CFG)" == "elbeem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../lib/windows/sdl/include" /I "../../../../../lib/windows/zlib/include" /I "../../../../../lib/windows/png/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "NOGUI" /D "ELBEEM_BLENDER" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"Debug\blender_elbeem.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO copy to lib ... xcopy /Y .\debug\blender_elbeem.lib ..\..\..\..\..\lib\windows\elbeem\lib\debug\*.* +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "elbeem - Win32 Release" +# Name "elbeem - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\attributes.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\elbeem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\isosurface.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_blenderdumper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_bsptree.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometrymodel.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometryobject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_lighting.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_ray.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_world.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\parametrizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\particletracer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\simulation_object.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_adap.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_init.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_interface.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_main.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_util.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\utilities.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\intern\attributes.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\isosurface.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\mcubes_tables.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_blenderdumper.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_bsptree.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometryclass.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometrymodel.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometryobject.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_geometryshader.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_lighting.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_lightobject.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_material.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_matrices.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_ray.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_renderglobals.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_rndstream.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_triangle.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_vector3dim.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\ntl_world.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\parametrizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\particletracer.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\simulation_object.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_class.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_dimenions.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_interface.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\solver_relax.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\utilities.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/ghost/make/msvc/ghost.dsp b/intern/ghost/make/msvc/ghost.dsp index fd287488b56..741d1c3a247 100644 --- a/intern/ghost/make/msvc/ghost.dsp +++ b/intern/ghost/make/msvc/ghost.dsp @@ -1,292 +1,292 @@ -# Microsoft Developer Studio Project File - Name="ghost" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=ghost - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ghost.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ghost.mak" CFG="ghost - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ghost - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "ghost - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ghost - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\ghost" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\ghost" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /I "../../../../../lib/windows/string/include" /I "..\..\..\..\intern\string" /I "../../../../../lib/windows/wintab/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\ghost\libghost.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Copying GHOST files library (release target) to lib tree. -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\ghost\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\ghost\*.lib ..\..\..\..\..\lib\windows\ghost\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "ghost - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\ghost\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\ghost\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../.." /I "../../../../../lib/windows/string/include" /I "..\..\..\..\intern\string" /I "../../../../../lib/windows/wintab/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\ghost\debug\libghost.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Copying GHOST files library (debug target) to lib tree. -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\ghost\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\ghost\debug\*.lib ..\..\..\..\..\lib\windows\ghost\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "ghost - Win32 Release" -# Name "ghost - Win32 Debug" -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\GHOST_Buttons.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_CallbackEventConsumer.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_Debug.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_DisplayManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_DisplayManagerWin32.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_Event.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventButton.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventCursor.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventKey.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventPrinter.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventWheel.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventWindow.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_ModifierKeys.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_System.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_SystemWin32.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_TimerManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_TimerTask.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_Window.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_WindowManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_WindowWin32.h -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE="..\..\GHOST_C-api.h" -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_IEvent.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_IEventConsumer.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_ISystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_ITimerTask.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_IWindow.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_Rect.h -# End Source File -# Begin Source File - -SOURCE=..\..\GHOST_Types.h -# End Source File -# End Group -# End Group -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\GHOST_Buttons.cpp -# End Source File -# Begin Source File - -SOURCE="..\..\intern\GHOST_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_CallbackEventConsumer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_DisplayManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_DisplayManagerWin32.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_EventPrinter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_ISystem.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_ModifierKeys.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_Rect.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_System.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_SystemWin32.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_TimerManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_Window.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_WindowManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\GHOST_WindowWin32.cpp -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="ghost" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=ghost - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ghost.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ghost.mak" CFG="ghost - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ghost - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "ghost - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "ghost - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\ghost" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\ghost" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /I "../../../../../lib/windows/string/include" /I "..\..\..\..\intern\string" /I "../../../../../lib/windows/wintab/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\ghost\libghost.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Copying GHOST files library (release target) to lib tree. +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\ghost\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\ghost\*.lib ..\..\..\..\..\lib\windows\ghost\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "ghost - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\ghost\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\ghost\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../.." /I "../../../../../lib/windows/string/include" /I "..\..\..\..\intern\string" /I "../../../../../lib/windows/wintab/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\ghost\debug\libghost.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Copying GHOST files library (debug target) to lib tree. +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\ghost\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\ghost\debug\*.lib ..\..\..\..\..\lib\windows\ghost\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "ghost - Win32 Release" +# Name "ghost - Win32 Debug" +# Begin Group "Header Files" + +# PROP Default_Filter "" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\GHOST_Buttons.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_CallbackEventConsumer.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_Debug.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_DisplayManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_DisplayManagerWin32.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_Event.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventButton.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventCursor.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventKey.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventPrinter.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventWheel.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventWindow.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_ModifierKeys.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_System.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_SystemWin32.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_TimerManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_TimerTask.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_Window.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_WindowManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_WindowWin32.h +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE="..\..\GHOST_C-api.h" +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_IEvent.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_IEventConsumer.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_ISystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_ITimerTask.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_IWindow.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_Rect.h +# End Source File +# Begin Source File + +SOURCE=..\..\GHOST_Types.h +# End Source File +# End Group +# End Group +# Begin Group "Source Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\GHOST_Buttons.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\intern\GHOST_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_CallbackEventConsumer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_DisplayManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_DisplayManagerWin32.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_EventPrinter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_ISystem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_ModifierKeys.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_Rect.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_System.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_SystemWin32.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_TimerManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_Window.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_WindowManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\GHOST_WindowWin32.cpp +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/ghost/make/msvc/ghost.dsw b/intern/ghost/make/msvc/ghost.dsw index 807a6ec3157..a98e7644c11 100644 --- a/intern/ghost/make/msvc/ghost.dsw +++ b/intern/ghost/make/msvc/ghost.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ghost"=".\ghost.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ghost"=".\ghost.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/ghost/test/make/msvc_6_0/gears.dsp b/intern/ghost/test/make/msvc_6_0/gears.dsp index 3e809a6b604..e068231bf32 100644 --- a/intern/ghost/test/make/msvc_6_0/gears.dsp +++ b/intern/ghost/test/make/msvc_6_0/gears.dsp @@ -1,102 +1,102 @@ -# Microsoft Developer Studio Project File - Name="gears" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=gears - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "gears.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "gears.mak" CFG="gears - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "gears - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "gears - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "gears - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../.." /I "../../../../string" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "gears - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/debug" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../.." /I "../../../../string" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "gears - Win32 Release" -# Name "gears - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\gears\GHOST_Test.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="gears" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=gears - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "gears.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "gears.mak" CFG="gears - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "gears - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "gears - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gears - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../.." /I "../../../../string" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "gears - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/debug" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../.." /I "../../../../string" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "gears - Win32 Release" +# Name "gears - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\gears\GHOST_Test.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/intern/ghost/test/make/msvc_6_0/gears_C.dsp b/intern/ghost/test/make/msvc_6_0/gears_C.dsp index 5972d123268..df0ae0448fd 100644 --- a/intern/ghost/test/make/msvc_6_0/gears_C.dsp +++ b/intern/ghost/test/make/msvc_6_0/gears_C.dsp @@ -1,102 +1,102 @@ -# Microsoft Developer Studio Project File - Name="gears_C" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=gears_C - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "gears_C.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "gears_C.mak" CFG="gears_C - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "gears_C - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "gears_C - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "gears_C - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../.." /I "../../../../string" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "gears_C - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/debug" -# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../.." /I "../../../../string" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "gears_C - Win32 Release" -# Name "gears_C - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE="..\..\gears\GHOST_C-Test.c" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="gears_C" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=gears_C - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "gears_C.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "gears_C.mak" CFG="gears_C - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "gears_C - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "gears_C - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gears_C - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../.." /I "../../../../string" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "gears_C - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../../../../obj/windows/intern/ghost/test/debug" +# PROP Intermediate_Dir "../../../../../../obj/windows/intern/ghost/test/debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../.." /I "../../../../string" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "gears_C - Win32 Release" +# Name "gears_C - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE="..\..\gears\GHOST_C-Test.c" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/intern/ghost/test/make/msvc_6_0/ghost_test.dsw b/intern/ghost/test/make/msvc_6_0/ghost_test.dsw index 03bf5eb5c9a..7a56a3b5ef1 100644 --- a/intern/ghost/test/make/msvc_6_0/ghost_test.dsw +++ b/intern/ghost/test/make/msvc_6_0/ghost_test.dsw @@ -1,77 +1,77 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "gears"=.\gears.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name ghost - End Project Dependency - Begin Project Dependency - Project_Dep_Name string - End Project Dependency -}}} - -############################################################################### - -Project: "gears_C"=.\gears_C.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name ghost - End Project Dependency - Begin Project Dependency - Project_Dep_Name string - End Project Dependency -}}} - -############################################################################### - -Project: "ghost"=..\..\..\make\msvc\ghost.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "string"=..\..\..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "gears"=.\gears.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name ghost + End Project Dependency + Begin Project Dependency + Project_Dep_Name string + End Project Dependency +}}} + +############################################################################### + +Project: "gears_C"=.\gears_C.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name ghost + End Project Dependency + Begin Project Dependency + Project_Dep_Name string + End Project Dependency +}}} + +############################################################################### + +Project: "ghost"=..\..\..\make\msvc\ghost.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "string"=..\..\..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c index 642cc16296e..5c59640200f 100644 --- a/intern/guardedalloc/intern/mmap_win.c +++ b/intern/guardedalloc/intern/mmap_win.c @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/intern/guardedalloc/make/msvc_6_0/guardedalloc.dsp b/intern/guardedalloc/make/msvc_6_0/guardedalloc.dsp index 21cc20e14f1..1c02b639a30 100644 --- a/intern/guardedalloc/make/msvc_6_0/guardedalloc.dsp +++ b/intern/guardedalloc/make/msvc_6_0/guardedalloc.dsp @@ -1,114 +1,114 @@ -# Microsoft Developer Studio Project File - Name="guardedalloc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=guardedalloc - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "guardedalloc.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "guardedalloc.mak" CFG="guardedalloc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "guardedalloc - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "guardedalloc - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "guardedalloc - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\guardedalloc\" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\guardedalloc\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\guardedalloc\libguardedalloc.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\guardedalloc\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\guardedalloc\*.lib ..\..\..\..\..\lib\windows\guardedalloc\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "guardedalloc - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\guardedalloc\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\guardedalloc\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\guardedalloc\debug\libguardedalloc.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\guardedalloc\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\guardedalloc\debug\*.lib ..\..\..\..\..\lib\windows\guardedalloc\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "guardedalloc - Win32 Release" -# Name "guardedalloc - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\mallocn.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\MEM_guardedalloc.h -# End Source File -# End Group -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="guardedalloc" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=guardedalloc - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "guardedalloc.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "guardedalloc.mak" CFG="guardedalloc - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "guardedalloc - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "guardedalloc - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "guardedalloc - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\guardedalloc\" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\guardedalloc\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\guardedalloc\libguardedalloc.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\guardedalloc\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\guardedalloc\*.lib ..\..\..\..\..\lib\windows\guardedalloc\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "guardedalloc - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\guardedalloc\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\guardedalloc\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\guardedalloc\debug\libguardedalloc.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\guardedalloc\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\guardedalloc\debug\*.lib ..\..\..\..\..\lib\windows\guardedalloc\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "guardedalloc - Win32 Release" +# Name "guardedalloc - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\mallocn.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\MEM_guardedalloc.h +# End Source File +# End Group +# End Group +# End Target +# End Project diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h index 443c3b6f4ce..855c46c08da 100644 --- a/intern/guardedalloc/mmap_win.h +++ b/intern/guardedalloc/mmap_win.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/intern/iksolver/make/msvc_6_0/iksolver.dsp b/intern/iksolver/make/msvc_6_0/iksolver.dsp index c5e842bdd04..f40ef72a62a 100644 --- a/intern/iksolver/make/msvc_6_0/iksolver.dsp +++ b/intern/iksolver/make/msvc_6_0/iksolver.dsp @@ -1,260 +1,260 @@ -# Microsoft Developer Studio Project File - Name="iksolver" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=iksolver - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "iksolver.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "iksolver.mak" CFG="iksolver - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "iksolver - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "iksolver - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "iksolver - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\iksolver" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\iksolver" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /Ob2 /I "..\..\..\..\intern\moto\include" /I "..\..\..\..\intern\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\iksolver\libiksolver.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\iksolver\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\iksolver\*.lib ..\..\..\..\..\lib\windows\iksolver\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "iksolver - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\iksolver\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\iksolver\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\intern\moto\include" /I "..\..\..\..\intern\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\iksolver\debug\libiksolver.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\iksolver\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\iksolver\debug\*.lib ..\..\..\..\..\lib\windows\iksolver\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "iksolver - Win32 Release" -# Name "iksolver - Win32 Debug" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Group "common" - -# PROP Default_Filter "" -# End Group -# Begin Group "TNT" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\intern\TNT\cholesky.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\cmat.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\fcscmat.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\fmat.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\fortran.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\fspvec.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\index.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\lapack.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\lu.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\qr.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\region1d.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\region2d.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\stopwatch.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\subscript.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\svd.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\tnt.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\tntmath.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\tntreqs.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\transv.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\triang.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\trisolve.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\vec.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\vecadaptor.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\TNT\version.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\intern\IK_QJacobian.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QJacobian.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QJacobianSolver.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QJacobianSolver.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QSegment.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QSegment.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QSolver_Class.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QTask.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_QTask.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\IK_Solver.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_ExpMap.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_ExpMap.h -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\extern\IK_solver.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="iksolver" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=iksolver - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "iksolver.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "iksolver.mak" CFG="iksolver - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "iksolver - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "iksolver - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "iksolver - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\iksolver" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\iksolver" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /Ob2 /I "..\..\..\..\intern\moto\include" /I "..\..\..\..\intern\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\iksolver\libiksolver.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\iksolver\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\iksolver\*.lib ..\..\..\..\..\lib\windows\iksolver\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "iksolver - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\iksolver\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\iksolver\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\intern\moto\include" /I "..\..\..\..\intern\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\iksolver\debug\libiksolver.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\iksolver\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\iksolver\debug\*.lib ..\..\..\..\..\lib\windows\iksolver\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "iksolver - Win32 Release" +# Name "iksolver - Win32 Debug" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Group "common" + +# PROP Default_Filter "" +# End Group +# Begin Group "TNT" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\intern\TNT\cholesky.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\cmat.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\fcscmat.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\fmat.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\fortran.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\fspvec.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\index.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\lapack.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\lu.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\qr.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\region1d.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\region2d.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\stopwatch.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\subscript.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\svd.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\tnt.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\tntmath.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\tntreqs.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\transv.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\triang.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\trisolve.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\vec.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\vecadaptor.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\TNT\version.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\intern\IK_QJacobian.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QJacobian.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QJacobianSolver.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QJacobianSolver.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QSegment.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QSegment.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QSolver_Class.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QTask.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_QTask.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\IK_Solver.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_ExpMap.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_ExpMap.h +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\extern\IK_solver.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/iksolver/make/msvc_6_0/iksolver.dsw b/intern/iksolver/make/msvc_6_0/iksolver.dsw index 90a123d9ce8..9771088c42d 100644 --- a/intern/iksolver/make/msvc_6_0/iksolver.dsw +++ b/intern/iksolver/make/msvc_6_0/iksolver.dsw @@ -1,35 +1,35 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "iksolver"=.\iksolver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - - - - - - - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "iksolver"=.\iksolver.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + + + + + + + diff --git a/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsp b/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsp index 8688b2fcc2c..2de994d12e3 100644 --- a/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsp +++ b/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsp @@ -1,130 +1,130 @@ -# Microsoft Developer Studio Project File - Name="ik_glut_test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=ik_glut_test - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ik_glut_test.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ik_glut_test.mak" CFG="ik_glut_test - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ik_glut_test - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "ik_glut_test - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ik_glut_test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\extern" /I "..\..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\..\lib\windows\memutil\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 iksolver_rmtd.lib libmoto.a /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib\windows\release" /libpath:"..\..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\..\lib\windows\moto\lib" - -!ELSEIF "$(CFG)" == "ik_glut_test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\extern" /I "..\..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\..\lib\windows\memutil\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 iksolver_dmtd.lib libmoto.a /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"LIBCMTD.lib" /pdbtype:sept /libpath:"..\..\..\..\lib\windows\debug" /libpath:"..\..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\..\lib\windows\moto\lib\debug" - -!ENDIF - -# Begin Target - -# Name "ik_glut_test - Win32 Release" -# Name "ik_glut_test - Win32 Debug" -# Begin Group "common" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\common\GlutDrawer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\common\GlutDrawer.h -# End Source File -# Begin Source File - -SOURCE=..\..\common\GlutKeyboardManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\common\GlutKeyboardManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\common\GlutMouseManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\common\GlutMouseManager.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\intern\ChainDrawer.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\main.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MyGlutKeyHandler.h -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MyGlutMouseHandler.h -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="ik_glut_test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=ik_glut_test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "ik_glut_test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "ik_glut_test.mak" CFG="ik_glut_test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "ik_glut_test - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "ik_glut_test - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "ik_glut_test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\extern" /I "..\..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\..\lib\windows\memutil\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 iksolver_rmtd.lib libmoto.a /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib\windows\release" /libpath:"..\..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\..\lib\windows\moto\lib" + +!ELSEIF "$(CFG)" == "ik_glut_test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\extern" /I "..\..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\..\lib\windows\memutil\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 iksolver_dmtd.lib libmoto.a /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"LIBCMTD.lib" /pdbtype:sept /libpath:"..\..\..\..\lib\windows\debug" /libpath:"..\..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\..\lib\windows\moto\lib\debug" + +!ENDIF + +# Begin Target + +# Name "ik_glut_test - Win32 Release" +# Name "ik_glut_test - Win32 Debug" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\common\GlutDrawer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\common\GlutDrawer.h +# End Source File +# Begin Source File + +SOURCE=..\..\common\GlutKeyboardManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\common\GlutKeyboardManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\common\GlutMouseManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\common\GlutMouseManager.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\intern\ChainDrawer.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\main.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MyGlutKeyHandler.h +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MyGlutMouseHandler.h +# End Source File +# End Target +# End Project diff --git a/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsw b/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsw index 09b7094137b..84915beaeb2 100644 --- a/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsw +++ b/intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsw @@ -1,49 +1,49 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ik_glut_test"=.\ik_glut_test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name iksolver - End Project Dependency -}}} - -############################################################################### - -Project: "iksolver"=..\..\..\..\make\msvc_6_0\iksolver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - - - - - - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ik_glut_test"=.\ik_glut_test.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name iksolver + End Project Dependency +}}} + +############################################################################### + +Project: "iksolver"=..\..\..\..\make\msvc_6_0\iksolver.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + + + + + + diff --git a/intern/make/msvc_6_0/build_install_all.dsp b/intern/make/msvc_6_0/build_install_all.dsp index 110c28ddeac..714c30fc5cf 100644 --- a/intern/make/msvc_6_0/build_install_all.dsp +++ b/intern/make/msvc_6_0/build_install_all.dsp @@ -1,68 +1,68 @@ -# Microsoft Developer Studio Project File - Name="Build_install_all" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Generic Project" 0x010a - -CFG=Build_install_all - Win32 Debug -!MESSAGE This is not a valid makefile. To Build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "Build_install_all.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "Build_install_all.mak" CFG="Build_install_all - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Build_install_all - Win32 Release" (based on "Win32 (x86) Generic Project") -!MESSAGE "Build_install_all - Win32 Debug" (based on "Win32 (x86) Generic Project") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -MTL=midl.exe - -!IF "$(CFG)" == "Build_install_all - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" - -!ELSEIF "$(CFG)" == "Build_install_all - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Python freeze -PostBuild_Cmds=ECHO Freezing Blender Python code ..\..\python\freeze\freeze.bat -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "Build_install_all - Win32 Release" -# Name "Build_install_all - Win32 Debug" -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="Build_install_all" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Generic Project" 0x010a + +CFG=Build_install_all - Win32 Debug +!MESSAGE This is not a valid makefile. To Build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Build_install_all.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Build_install_all.mak" CFG="Build_install_all - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Build_install_all - Win32 Release" (based on "Win32 (x86) Generic Project") +!MESSAGE "Build_install_all - Win32 Debug" (based on "Win32 (x86) Generic Project") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +MTL=midl.exe + +!IF "$(CFG)" == "Build_install_all - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "Build_install_all - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Python freeze +PostBuild_Cmds=ECHO Freezing Blender Python code ..\..\python\freeze\freeze.bat +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "Build_install_all - Win32 Release" +# Name "Build_install_all - Win32 Debug" +# End Target +# End Project diff --git a/intern/make/msvc_6_0/intern.dsw b/intern/make/msvc_6_0/intern.dsw index 2818636c1c6..1f37f3c618a 100644 --- a/intern/make/msvc_6_0/intern.dsw +++ b/intern/make/msvc_6_0/intern.dsw @@ -1,302 +1,302 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Build_install_all"=.\build_install_all.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name OpenNL - End Project Dependency - Begin Project Dependency - Project_Dep_Name bmfont - End Project Dependency - Begin Project Dependency - Project_Dep_Name bsplib - End Project Dependency - Begin Project Dependency - Project_Dep_Name container - End Project Dependency - Begin Project Dependency - Project_Dep_Name decimation - End Project Dependency - Begin Project Dependency - Project_Dep_Name DummySoundSystem - End Project Dependency - Begin Project Dependency - Project_Dep_Name ghost - End Project Dependency - Begin Project Dependency - Project_Dep_Name guardedalloc - End Project Dependency - Begin Project Dependency - Project_Dep_Name iksolver - End Project Dependency - Begin Project Dependency - Project_Dep_Name memutil - End Project Dependency - Begin Project Dependency - Project_Dep_Name MoTo - End Project Dependency - Begin Project Dependency - Project_Dep_Name SoundSystem - End Project Dependency - Begin Project Dependency - Project_Dep_Name string - End Project Dependency - Begin Project Dependency - Project_Dep_Name elbeem - End Project Dependency - Begin Project Dependency - Project_Dep_Name boolop - End Project Dependency - Begin Project Dependency - Project_Dep_Name OpenALSoundSystem - End Project Dependency -}}} - -############################################################################### - -Project: "DummySoundSystem"=..\..\SoundSystem\make\msvc_6_0\dummy\DummySoundSystem.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "MoTo"=..\..\moto\make\msvc_6_0\MoTo.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "OpenALSoundSystem"=..\..\SoundSystem\make\msvc_6_0\openal\OpenALSoundSystem.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "OpenNL"=..\..\opennl\make\msvc_6_0\OpenNL.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SoundSystem"=..\..\SoundSystem\make\msvc_6_0\SoundSystem.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "bmfont"=..\..\bmfont\make\msvc_6_0\bmfont.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "boolop"=..\..\boolop\make\msvc_6_0\boolop.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "bsplib"=..\..\bsp\make\msvc6_0\bsplib.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name container - End Project Dependency - Begin Project Dependency - Project_Dep_Name memutil - End Project Dependency - Begin Project Dependency - Project_Dep_Name MoTo - End Project Dependency -}}} - -############################################################################### - -Project: "container"=..\..\container\make\msvc_6_0\container.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "csg"=..\..\csg\make\msvc60\csg.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "decimation"=..\..\decimation\make\msvc_6_0\decimation.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name memutil - End Project Dependency - Begin Project Dependency - Project_Dep_Name MoTo - End Project Dependency - Begin Project Dependency - Project_Dep_Name container - End Project Dependency -}}} - -############################################################################### - -Project: "elbeem"=..\..\elbeem\make\msvc_6_0\elbeem.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "ghost"=..\..\ghost\make\msvc\ghost.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name string - End Project Dependency -}}} - -############################################################################### - -Project: "guardedalloc"=..\..\guardedalloc\make\msvc_6_0\guardedalloc.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "iksolver"=..\..\iksolver\make\msvc_6_0\iksolver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "memutil"=..\..\memutil\make\msvc_60\memutil.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "string"=..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Build_install_all"=.\build_install_all.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name OpenNL + End Project Dependency + Begin Project Dependency + Project_Dep_Name bmfont + End Project Dependency + Begin Project Dependency + Project_Dep_Name bsplib + End Project Dependency + Begin Project Dependency + Project_Dep_Name container + End Project Dependency + Begin Project Dependency + Project_Dep_Name decimation + End Project Dependency + Begin Project Dependency + Project_Dep_Name DummySoundSystem + End Project Dependency + Begin Project Dependency + Project_Dep_Name ghost + End Project Dependency + Begin Project Dependency + Project_Dep_Name guardedalloc + End Project Dependency + Begin Project Dependency + Project_Dep_Name iksolver + End Project Dependency + Begin Project Dependency + Project_Dep_Name memutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name MoTo + End Project Dependency + Begin Project Dependency + Project_Dep_Name SoundSystem + End Project Dependency + Begin Project Dependency + Project_Dep_Name string + End Project Dependency + Begin Project Dependency + Project_Dep_Name elbeem + End Project Dependency + Begin Project Dependency + Project_Dep_Name boolop + End Project Dependency + Begin Project Dependency + Project_Dep_Name OpenALSoundSystem + End Project Dependency +}}} + +############################################################################### + +Project: "DummySoundSystem"=..\..\SoundSystem\make\msvc_6_0\dummy\DummySoundSystem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "MoTo"=..\..\moto\make\msvc_6_0\MoTo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "OpenALSoundSystem"=..\..\SoundSystem\make\msvc_6_0\openal\OpenALSoundSystem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "OpenNL"=..\..\opennl\make\msvc_6_0\OpenNL.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SoundSystem"=..\..\SoundSystem\make\msvc_6_0\SoundSystem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "bmfont"=..\..\bmfont\make\msvc_6_0\bmfont.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "boolop"=..\..\boolop\make\msvc_6_0\boolop.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "bsplib"=..\..\bsp\make\msvc6_0\bsplib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name container + End Project Dependency + Begin Project Dependency + Project_Dep_Name memutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name MoTo + End Project Dependency +}}} + +############################################################################### + +Project: "container"=..\..\container\make\msvc_6_0\container.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "csg"=..\..\csg\make\msvc60\csg.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "decimation"=..\..\decimation\make\msvc_6_0\decimation.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name memutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name MoTo + End Project Dependency + Begin Project Dependency + Project_Dep_Name container + End Project Dependency +}}} + +############################################################################### + +Project: "elbeem"=..\..\elbeem\make\msvc_6_0\elbeem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "ghost"=..\..\ghost\make\msvc\ghost.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name string + End Project Dependency +}}} + +############################################################################### + +Project: "guardedalloc"=..\..\guardedalloc\make\msvc_6_0\guardedalloc.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "iksolver"=..\..\iksolver\make\msvc_6_0\iksolver.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "memutil"=..\..\memutil\make\msvc_60\memutil.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "string"=..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/memutil/make/msvc_60/memutil.dsp b/intern/memutil/make/msvc_60/memutil.dsp index 62b7efba9d8..b7e7904e9bf 100644 --- a/intern/memutil/make/msvc_60/memutil.dsp +++ b/intern/memutil/make/msvc_60/memutil.dsp @@ -1,150 +1,150 @@ -# Microsoft Developer Studio Project File - Name="memutil" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=memutil - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "memutil.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "memutil.mak" CFG="memutil - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "memutil - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "memutil - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "memutil - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\memutil\" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\memutil\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../" /I "../../../" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\memutil\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\*.lib ..\..\..\..\..\lib\windows\memutil\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "memutil - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\memutil\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\memutil\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../../" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\memutil\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\debug\*.lib ..\..\..\..\..\lib\windows\memutil\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\debug\vc60.* ..\..\..\..\..\lib\windows\memutil\lib\debug\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "memutil - Win32 Release" -# Name "memutil - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\MEM_Allocator.h -# End Source File -# Begin Source File - -SOURCE=..\..\MEM_CacheLimiter.h -# End Source File -# Begin Source File - -SOURCE="..\..\intern\MEM_CacheLimiterC-Api.cpp" -# End Source File -# Begin Source File - -SOURCE=..\..\..\guardedalloc\MEM_guardedalloc.h -# End Source File -# Begin Source File - -SOURCE="..\..\intern\MEM_RefCountedC-Api.cpp" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "intern" - -# PROP Default_Filter "" -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\MEM_NonCopyable.h -# End Source File -# Begin Source File - -SOURCE=..\..\MEM_RefCounted.h -# End Source File -# Begin Source File - -SOURCE="..\..\MEM_RefCountedC-Api.h" -# End Source File -# Begin Source File - -SOURCE=..\..\MEM_RefCountPtr.h -# End Source File -# Begin Source File - -SOURCE=..\..\MEM_SmartPtr.h -# End Source File -# End Group -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="memutil" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=memutil - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "memutil.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "memutil.mak" CFG="memutil - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "memutil - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "memutil - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "memutil - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\memutil\" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\memutil\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /Ob2 /I "../../" /I "../../../" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\memutil\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\*.lib ..\..\..\..\..\lib\windows\memutil\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "memutil - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\memutil\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\memutil\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../../" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\memutil\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\debug\*.lib ..\..\..\..\..\lib\windows\memutil\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\memutil\debug\vc60.* ..\..\..\..\..\lib\windows\memutil\lib\debug\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "memutil - Win32 Release" +# Name "memutil - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\MEM_Allocator.h +# End Source File +# Begin Source File + +SOURCE=..\..\MEM_CacheLimiter.h +# End Source File +# Begin Source File + +SOURCE="..\..\intern\MEM_CacheLimiterC-Api.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\guardedalloc\MEM_guardedalloc.h +# End Source File +# Begin Source File + +SOURCE="..\..\intern\MEM_RefCountedC-Api.cpp" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "intern" + +# PROP Default_Filter "" +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\MEM_NonCopyable.h +# End Source File +# Begin Source File + +SOURCE=..\..\MEM_RefCounted.h +# End Source File +# Begin Source File + +SOURCE="..\..\MEM_RefCountedC-Api.h" +# End Source File +# Begin Source File + +SOURCE=..\..\MEM_RefCountPtr.h +# End Source File +# Begin Source File + +SOURCE=..\..\MEM_SmartPtr.h +# End Source File +# End Group +# End Group +# End Target +# End Project diff --git a/intern/memutil/make/msvc_60/memutil.dsw b/intern/memutil/make/msvc_60/memutil.dsw index bba4cbcdafd..3c19a94c701 100644 --- a/intern/memutil/make/msvc_60/memutil.dsw +++ b/intern/memutil/make/msvc_60/memutil.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "memutil"=".\memutil.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "memutil"=".\memutil.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/moto/make/msvc_6_0/MoTo.dsp b/intern/moto/make/msvc_6_0/MoTo.dsp index 23224fc7fa8..541c4aa4774 100644 --- a/intern/moto/make/msvc_6_0/MoTo.dsp +++ b/intern/moto/make/msvc_6_0/MoTo.dsp @@ -1,379 +1,379 @@ -# Microsoft Developer Studio Project File - Name="MoTo" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=MoTo - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "MoTo.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "MoTo.mak" CFG="MoTo - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "MoTo - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "MoTo - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\moto\" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\moto\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W4 /GX /O2 /Ob2 /I "..\..\include\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\moto\libmoto.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\include\*.h ..\..\..\..\..\lib\windows\moto\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\moto\*.lib ..\..\..\..\..\lib\windows\moto\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\moto\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\moto\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include\\" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\moto\debug\libmoto.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\include\*.h ..\..\..\..\..\lib\windows\moto\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\moto\debug\*.lib ..\..\..\..\..\lib\windows\moto\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\moto\debug\vc60.* ..\..\..\..\..\lib\windows\moto\lib\debug\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "MoTo - Win32 Release" -# Name "MoTo - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\MT_CmMatrix4x4.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Matrix3x3.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Matrix4x4.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Plane3.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Point3.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Quaternion.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_random.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Transform.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Vector2.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Vector3.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\..\intern\MT_Vector4.cpp - -!IF "$(CFG)" == "MoTo - Win32 Release" - -# ADD CPP /W3 /I "../../include" - -!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "inlines" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\include\MT_Matrix3x3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Matrix4x4.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Plane3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Point2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Point3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Quaternion.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector4.inl -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\include\GEN_List.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\GEN_Map.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_assert.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_CmMatrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Matrix3x3.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Matrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_MinMax.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Optimize.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Plane3.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Point2.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Point3.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Quaternion.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_random.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Scalar.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Stream.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Transform.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Tuple2.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Tuple3.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Tuple4.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector2.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector3.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\MT_Vector4.h -# End Source File -# Begin Source File - -SOURCE=..\..\include\NM_Scalar.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="MoTo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=MoTo - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "MoTo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "MoTo.mak" CFG="MoTo - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "MoTo - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "MoTo - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\moto\" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\moto\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W4 /GX /O2 /Ob2 /I "..\..\include\\" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\moto\libmoto.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\include\*.h ..\..\..\..\..\lib\windows\moto\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\moto\*.lib ..\..\..\..\..\lib\windows\moto\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\moto\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\moto\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include\\" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\moto\debug\libmoto.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\include\*.h ..\..\..\..\..\lib\windows\moto\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\moto\debug\*.lib ..\..\..\..\..\lib\windows\moto\lib\debug\*.a ECHO Copying Debug info. XCOPY /Y ..\..\..\..\obj\windows\intern\moto\debug\vc60.* ..\..\..\..\..\lib\windows\moto\lib\debug\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "MoTo - Win32 Release" +# Name "MoTo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\MT_CmMatrix4x4.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Matrix3x3.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Matrix4x4.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Plane3.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Point3.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Quaternion.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_random.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Transform.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Vector2.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Vector3.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\intern\MT_Vector4.cpp + +!IF "$(CFG)" == "MoTo - Win32 Release" + +# ADD CPP /W3 /I "../../include" + +!ELSEIF "$(CFG)" == "MoTo - Win32 Debug" + +!ENDIF + +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "inlines" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\include\MT_Matrix3x3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Matrix4x4.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Plane3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Point2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Point3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Quaternion.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector4.inl +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\include\GEN_List.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\GEN_Map.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_assert.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_CmMatrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Matrix3x3.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Matrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_MinMax.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Optimize.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Plane3.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Point2.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Point3.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Quaternion.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_random.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Scalar.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Stream.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Transform.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Tuple2.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Tuple3.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Tuple4.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector2.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector3.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\MT_Vector4.h +# End Source File +# Begin Source File + +SOURCE=..\..\include\NM_Scalar.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/moto/make/msvc_6_0/MoTo.dsw b/intern/moto/make/msvc_6_0/MoTo.dsw index bc76539dd6c..e45520d5c72 100644 --- a/intern/moto/make/msvc_6_0/MoTo.dsw +++ b/intern/moto/make/msvc_6_0/MoTo.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "MoTo"=.\MoTo.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "MoTo"=.\MoTo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/opennl/make/msvc_6_0/OpenNL.dsp b/intern/opennl/make/msvc_6_0/OpenNL.dsp index bce93059e50..aaf8f0298c1 100644 --- a/intern/opennl/make/msvc_6_0/OpenNL.dsp +++ b/intern/opennl/make/msvc_6_0/OpenNL.dsp @@ -1,252 +1,252 @@ -# Microsoft Developer Studio Project File - Name="OpenNL" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=OpenNL - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "OpenNL.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "OpenNL.mak" CFG="OpenNL - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "OpenNL - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "OpenNL - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "OpenNL - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "../../../../obj/windows/intern/opennl" -# PROP Intermediate_Dir "../../../../obj/windows/intern/opennl/imf" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "../../extern" /I "../../superlu" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/opennl\blender_ONL.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO copy header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\opennl\include\*.h ECHO copy library XCOPY /Y ..\..\..\..\obj\windows\intern\openNL\*.lib ..\..\..\..\..\lib\windows\openNL\*.lib -# End Special Build Tool - -!ELSEIF "$(CFG)" == "OpenNL - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../../../../obj/windows/intern/opennl/Debug/" -# PROP Intermediate_Dir "../../../../obj/windows/intern/opennl/imf/Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../extern" /I "../../superlu" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/opennl/Debug/blender_ONL.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO copy header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\opennl\include\*.h ECHO copy library XCOPY /Y ..\..\..\..\obj\windows\intern\openNL\debug\*.lib ..\..\..\..\..\lib\windows\openNL\debug\*.lib -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "OpenNL - Win32 Release" -# Name "OpenNL - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\superlu\colamd.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\get_perm_c.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\heap_relax_snode.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\lsame.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\memory.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\mmd.c -# End Source File -# Begin Source File - -SOURCE=..\..\intern\opennl.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\relax_snode.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\scolumn_bmod.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\scolumn_dfs.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\scopy_to_ucol.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sgssv.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sgstrf.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sgstrs.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\smemory.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\smyblas2.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sp_coletree.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sp_ienv.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sp_preorder.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\spanel_bmod.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\spanel_dfs.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\spivotL.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\spruneL.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\ssnode_bmod.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\ssnode_dfs.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\ssp_blas2.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\ssp_blas3.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\strsv.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\superlu_timer.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\sutil.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\util.c -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\xerbla.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\superlu\Cnames.h -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\colamd.h -# End Source File -# Begin Source File - -SOURCE=..\..\extern\ONL_opennl.h -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\ssp_defs.h -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\supermatrix.h -# End Source File -# Begin Source File - -SOURCE=..\..\superlu\util.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="OpenNL" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=OpenNL - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "OpenNL.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "OpenNL.mak" CFG="OpenNL - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "OpenNL - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "OpenNL - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "OpenNL - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../../obj/windows/intern/opennl" +# PROP Intermediate_Dir "../../../../obj/windows/intern/opennl/imf" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../extern" /I "../../superlu" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/opennl\blender_ONL.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO copy header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\opennl\include\*.h ECHO copy library XCOPY /Y ..\..\..\..\obj\windows\intern\openNL\*.lib ..\..\..\..\..\lib\windows\openNL\*.lib +# End Special Build Tool + +!ELSEIF "$(CFG)" == "OpenNL - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../../obj/windows/intern/opennl/Debug/" +# PROP Intermediate_Dir "../../../../obj/windows/intern/opennl/imf/Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../extern" /I "../../superlu" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/opennl/Debug/blender_ONL.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO copy header files XCOPY /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\opennl\include\*.h ECHO copy library XCOPY /Y ..\..\..\..\obj\windows\intern\openNL\debug\*.lib ..\..\..\..\..\lib\windows\openNL\debug\*.lib +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "OpenNL - Win32 Release" +# Name "OpenNL - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\superlu\colamd.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\get_perm_c.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\heap_relax_snode.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\lsame.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\memory.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\mmd.c +# End Source File +# Begin Source File + +SOURCE=..\..\intern\opennl.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\relax_snode.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\scolumn_bmod.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\scolumn_dfs.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\scopy_to_ucol.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sgssv.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sgstrf.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sgstrs.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\smemory.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\smyblas2.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sp_coletree.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sp_ienv.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sp_preorder.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\spanel_bmod.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\spanel_dfs.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\spivotL.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\spruneL.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\ssnode_bmod.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\ssnode_dfs.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\ssp_blas2.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\ssp_blas3.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\strsv.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\superlu_timer.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\sutil.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\util.c +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\xerbla.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\superlu\Cnames.h +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\colamd.h +# End Source File +# Begin Source File + +SOURCE=..\..\extern\ONL_opennl.h +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\ssp_defs.h +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\supermatrix.h +# End Source File +# Begin Source File + +SOURCE=..\..\superlu\util.h +# End Source File +# End Group +# End Target +# End Project diff --git a/intern/opennl/make/msvc_6_0/OpenNL.dsw b/intern/opennl/make/msvc_6_0/OpenNL.dsw index 407aeb006fd..5b7c9138c97 100644 --- a/intern/opennl/make/msvc_6_0/OpenNL.dsw +++ b/intern/opennl/make/msvc_6_0/OpenNL.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "OpenNL"=.\OpenNL.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "OpenNL"=.\OpenNL.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/intern/string/make/msvc_6_0/string.dsp b/intern/string/make/msvc_6_0/string.dsp index c6ac70e193a..38250e44170 100644 --- a/intern/string/make/msvc_6_0/string.dsp +++ b/intern/string/make/msvc_6_0/string.dsp @@ -1,122 +1,122 @@ -# Microsoft Developer Studio Project File - Name="string" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=string - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "string.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "string.mak" CFG="string - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "string - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "string - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "string - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\intern\string" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\string" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\string\libstring.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\string\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\string\*.lib ..\..\..\..\..\lib\windows\string\lib\*.a ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "string - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../../../../obj/windows/intern/string/debug" -# PROP Intermediate_Dir "../../../../obj/windows/intern/string/debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/string/debug\libstring.lib" -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\string\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\string\debug\*.lib ..\..\..\..\..\lib\windows\string\lib\debug\*.a ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "string - Win32 Release" -# Name "string - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\intern\STR_String.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "intern" - -# PROP Default_Filter "" -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\STR_HashedString.h -# End Source File -# Begin Source File - -SOURCE=..\..\STR_String.h -# End Source File -# End Group -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="string" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=string - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "string.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "string.mak" CFG="string - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "string - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "string - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "string - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\intern\string" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\string" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\string\libstring.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\string\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\string\*.lib ..\..\..\..\..\lib\windows\string\lib\*.a ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "string - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../../obj/windows/intern/string/debug" +# PROP Intermediate_Dir "../../../../obj/windows/intern/string/debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../../../obj/windows/intern/string/debug\libstring.lib" +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\*.h ..\..\..\..\..\lib\windows\string\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\string\debug\*.lib ..\..\..\..\..\lib\windows\string\lib\debug\*.a ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "string - Win32 Release" +# Name "string - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\intern\STR_String.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "intern" + +# PROP Default_Filter "" +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\STR_HashedString.h +# End Source File +# Begin Source File + +SOURCE=..\..\STR_String.h +# End Source File +# End Group +# End Group +# End Target +# End Project diff --git a/intern/string/make/msvc_6_0/string.dsw b/intern/string/make/msvc_6_0/string.dsw index b599b6407c5..23886681438 100644 --- a/intern/string/make/msvc_6_0/string.dsw +++ b/intern/string/make/msvc_6_0/string.dsw @@ -1,29 +1,29 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "string"=".\string.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "string"=".\string.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/projectfiles/blender/BLO_readblenfile/BLO_readblenfile.dsp b/projectfiles/blender/BLO_readblenfile/BLO_readblenfile.dsp index 8e478f425d9..2cfb77b61aa 100644 --- a/projectfiles/blender/BLO_readblenfile/BLO_readblenfile.dsp +++ b/projectfiles/blender/BLO_readblenfile/BLO_readblenfile.dsp @@ -1,155 +1,155 @@ -# Microsoft Developer Studio Project File - Name="BLO_readblenfile" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BLO_readblenfile - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BLO_readblenfile.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BLO_readblenfile.mak" CFG="BLO_readblenfile - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BLO_readblenfile - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_readblenfile - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_readblenfile - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_readblenfile - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BLO_readblenfile - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BLO_readblenfile___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BLO_readblenfile___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BLO_readblenfile___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BLO_readblenfile___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BLO_readblenfile - Win32 Release" -# Name "BLO_readblenfile - Win32 Debug" -# Name "BLO_readblenfile - Win32 MT DLL Release" -# Name "BLO_readblenfile - Win32 MT DLL Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\readblenfile\intern\BLO_readblenfile.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\readblenfile\BLO_readblenfile.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BLO_readblenfile" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BLO_readblenfile - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BLO_readblenfile.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BLO_readblenfile.mak" CFG="BLO_readblenfile - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BLO_readblenfile - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_readblenfile - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_readblenfile - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_readblenfile - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BLO_readblenfile - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BLO_readblenfile___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BLO_readblenfile___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_readblenfile - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BLO_readblenfile___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BLO_readblenfile___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\readblenfile\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\readstreamglue\\" /I "..\..\..\source\blender\blenloader\\" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readstreamglue" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BLO_readblenfile - Win32 Release" +# Name "BLO_readblenfile - Win32 Debug" +# Name "BLO_readblenfile - Win32 MT DLL Release" +# Name "BLO_readblenfile - Win32 MT DLL Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\readblenfile\intern\BLO_readblenfile.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\readblenfile\BLO_readblenfile.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/BPY_python/BPY_python.dsp b/projectfiles/blender/BPY_python/BPY_python.dsp index e122f0ffe90..2cbb9e05717 100644 --- a/projectfiles/blender/BPY_python/BPY_python.dsp +++ b/projectfiles/blender/BPY_python/BPY_python.dsp @@ -1,588 +1,588 @@ -# Microsoft Developer Studio Project File - Name="BPY_python" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BPY_python - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BPY_python.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BPY_python.mak" CFG="BPY_python - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BPY_python - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BPY_python - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BPY_python - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\bpython" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\bpython" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\bpython\include" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /I "..\..\source\blender\python" /I "../../../../lib/windows/bsp/include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\bpython\include" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "..\..\..\source\blender\python" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BPY_python - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\bpython\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\bpython\debug" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /w /W0 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\img" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\source\blender\bpython\include" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /I "..\..\source\blender\python" /I "../../../../lib/windows/bsp/include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\bpython\include" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "..\..\..\source\blender\python" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BPY_python - Win32 Release" -# Name "BPY_python - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Armature.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\BezTriple.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\BGL.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Blender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Bone.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\BPY_interface.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\BPY_menus.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Camera.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\charRGBA.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\constant.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Constraint.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\CurNurb.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Curve.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Draw.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Effect.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\euler.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\EXPP_interface.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Font.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\gen_utils.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Geometry.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Group.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\IDProp.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Image.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Ipo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Ipocurve.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Key.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Lamp.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Lattice.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Library.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\logic.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Material.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Mathutils.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\matrix.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Mesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\meshPrimitive.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Metaball.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Modifier.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\MTex.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\NLA.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\NMesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Noise.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Object.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Particle.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\point.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Pose.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\quat.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Registry.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\rgbTuple.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Scene.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneRadio.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneRender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneTimeLine.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Sound.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\SurfNurb.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Sys.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Text.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Text3d.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Texture.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Types.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\vector.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Window.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\windowTheme.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\World.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Armature.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\BezTriple.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\BGL.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Blender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Bone.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\BPY_extern.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\BPY_menus.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\bpy_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Camera.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\charRGBA.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\constant.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Constraint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\CurNurb.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Curve.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Draw.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Effect.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\euler.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\EXPP_interface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Font.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\gen_utils.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Geometry.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Group.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Image.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Ipo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Ipocurve.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Key.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Lamp.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Lattice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Material.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Mathutils.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\matrix.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Mesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\meshPrimitive.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Metaball.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Modifier.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\modules.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\MTex.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\NLA.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\NMesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Object.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Particle.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\point.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\quat.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Registry.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\rgbTuple.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneRadio.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneRender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\sceneTimeLine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Sound.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\SurfNurb.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Sys.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Text.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Text3d.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Texture.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\vector.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\Window.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\windowTheme.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\python\api2_2x\World.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BPY_python" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BPY_python - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BPY_python.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BPY_python.mak" CFG="BPY_python - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BPY_python - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BPY_python - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BPY_python - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\bpython" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\bpython" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\bpython\include" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /I "..\..\source\blender\python" /I "../../../../lib/windows/bsp/include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\bpython\include" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "..\..\..\source\blender\python" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BPY_python - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\bpython\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\bpython\debug" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /w /W0 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\img" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\source\blender\bpython\include" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /I "..\..\source\blender\python" /I "../../../../lib/windows/bsp/include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\bpython\include" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "..\..\..\source\blender\python" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BPY_python - Win32 Release" +# Name "BPY_python - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Armature.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\BezTriple.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\BGL.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Blender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Bone.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\BPY_interface.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\BPY_menus.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Camera.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\charRGBA.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\constant.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Constraint.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\CurNurb.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Curve.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Draw.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Effect.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\euler.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\EXPP_interface.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Font.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\gen_utils.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Geometry.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Group.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\IDProp.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Image.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Ipo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Ipocurve.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Key.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Lamp.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Lattice.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Library.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\logic.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Material.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Mathutils.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\matrix.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Mesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\meshPrimitive.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Metaball.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Modifier.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\MTex.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\NLA.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\NMesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Noise.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Object.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Particle.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\point.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Pose.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\quat.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Registry.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\rgbTuple.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Scene.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneRadio.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneRender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneTimeLine.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Sound.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\SurfNurb.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Sys.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Text.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Text3d.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Texture.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Types.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\vector.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Window.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\windowTheme.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\World.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Armature.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\BezTriple.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\BGL.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Blender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Bone.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\BPY_extern.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\BPY_menus.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\bpy_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Camera.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\charRGBA.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\constant.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Constraint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\CurNurb.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Curve.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Draw.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Effect.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\euler.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\EXPP_interface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Font.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\gen_utils.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Geometry.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Group.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Image.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Ipo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Ipocurve.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Key.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Lamp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Lattice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Material.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Mathutils.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\matrix.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Mesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\meshPrimitive.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Metaball.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Modifier.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\modules.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\MTex.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\NLA.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\NMesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Object.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Particle.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\point.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\quat.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Registry.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\rgbTuple.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneRadio.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneRender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\sceneTimeLine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Sound.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\SurfNurb.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Sys.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Text.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Text3d.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Texture.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\vector.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\Window.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\windowTheme.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\python\api2_2x\World.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/avi/BL_avi.dsp b/projectfiles/blender/avi/BL_avi.dsp index 1237ddcec47..4aafde508c0 100644 --- a/projectfiles/blender/avi/BL_avi.dsp +++ b/projectfiles/blender/avi/BL_avi.dsp @@ -1,199 +1,199 @@ -# Microsoft Developer Studio Project File - Name="BL_avi" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_avi - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_avi.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_avi.mak" CFG="BL_avi - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_avi - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_avi - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_avi - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_avi - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_avi - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\avi" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_avi - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\avi\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_avi - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BL_avi___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BL_avi___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\avi\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\avi\debug\BL_avi.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_avi - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BL_avi___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BL_avi___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\avi\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\avi\BL_avi.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BL_avi - Win32 Release" -# Name "BL_avi - Win32 Debug" -# Name "BL_avi - Win32 MT DLL Debug" -# Name "BL_avi - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\avi.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\avirgb.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\codecs.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\endian.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\mjpeg.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\options.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\rgb32.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\AVI_avi.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\avi_intern.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\avirgb.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\endian.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\mjpeg.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\avi\intern\rgb32.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_avi" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_avi - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_avi.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_avi.mak" CFG="BL_avi - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_avi - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_avi - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_avi - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_avi - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_avi - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\avi" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_avi - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\avi\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_avi - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BL_avi___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BL_avi___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\avi\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\avi\debug\BL_avi.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_avi - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BL_avi___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BL_avi___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\avi\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\avi\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "DWORDS_LITTLEENDIAN" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\avi\BL_avi.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BL_avi - Win32 Release" +# Name "BL_avi - Win32 Debug" +# Name "BL_avi - Win32 MT DLL Debug" +# Name "BL_avi - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\avi.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\avirgb.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\codecs.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\endian.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\mjpeg.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\options.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\rgb32.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\AVI_avi.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\avi_intern.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\avirgb.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\endian.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\mjpeg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\avi\intern\rgb32.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/blender.dsp b/projectfiles/blender/blender.dsp index 17cd7022d82..48bc7b4b41e 100644 --- a/projectfiles/blender/blender.dsp +++ b/projectfiles/blender/blender.dsp @@ -1,124 +1,124 @@ -# Microsoft Developer Studio Project File - Name="blender" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=blender - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "blender.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "blender.mak" CFG="blender - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "blender - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "blender - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "blender - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\obj\windows\blender" -# PROP Intermediate_Dir "..\..\obj\windows\blender" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\python" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "WITH_QUICKTIME" /YX /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 solid.lib SDL.lib freetype2ST.lib ftgl_static_ST.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.a libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.a libbsp.a libbmfont.a libghost.a libstring.a ws2_32.lib dxguid.lib opengl32.lib libjpeg.a glu32.lib user32.lib shell32.lib gdi32.lib vfw32.lib advapi32.lib winmm.lib ole32.lib libdecimation.a libiksolver.a libpng.a zlib.lib libmoto.a blender_ONL.lib blender_elbeem.lib boolop.lib BLI_bullet.lib pthreadVC2.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"msvcprt.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"glut32.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcpd.lib" /nodefaultlib:"libcp.lib" /nodefaultlib:"libcmtd.lib" /out:"..\..\bin\blender.exe" /libpath:"..\..\..\lib\windows\sdl\lib" /libpath:"..\..\..\lib\windows\freetype\lib" /libpath:"..\..\..\lib\windows\ftgl\lib" /libpath:"..\..\..\lib\windows\gettext\lib" /libpath:"..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\lib\windows\bsp\lib" /libpath:"..\..\..\lib\windows\moto\lib" /libpath:"..\..\..\lib\windows\bmfont\lib" /libpath:"..\..\..\lib\windows\ghost\lib" /libpath:"..\..\..\lib\windows\python\frozen" /libpath:"..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\lib\windows\string\lib" /libpath:"..\..\..\lib\windows\solid\lib" /libpath:"..\..\..\lib\windows\python\lib" /libpath:"..\..\..\lib\windows\iksolver\lib" /libpath:"..\..\..\lib\windows\decimation\lib" /libpath:"..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\obj\windows\intern\soundsystem\dummy" /libpath:"..\..\obj\windows\intern\soundsystem\openal" /libpath:"..\..\..\lib\windows\soundsystem\lib\\" /libpath:"..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\lib\windows\opennl" /libpath:"..\..\..\lib\windows\elbeem\lib" /libpath:"..\..\..\lib\windows\boolop\lib" /libpath:"..\..\..\lib\windows\bullet\lib" /libpath:"..\..\..\lib\windows\pthreads\lib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying required 3rd party dlls... XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\bin\ XCOPY /Y ..\..\..\lib\windows\sdl\lib\*dll ..\..\bin\ ECHO Done -# End Special Build Tool - -!ELSEIF "$(CFG)" == "blender - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\obj\windows\blender\debug" -# PROP Intermediate_Dir "..\..\obj\windows\blender\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\python" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "WITH_QUICKTIME" /YX /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 solid.lib SDL.lib freetype2ST.lib ftgl_static_ST.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.a libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.a libbsp.a libbmfont.a libghost.a libstring.a ws2_32.lib dxguid.lib opengl32.lib libjpeg.a glu32.lib user32.lib gdi32.lib shell32.lib vfw32.lib advapi32.lib winmm.lib ole32.lib libdecimation.a libiksolver.a libpng.a zlib.lib libmoto.a blender_ONL.lib blender_elbeem.lib boolop.lib BLI_bullet_d.lib pthreadVC2.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"glut32.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcpd.lib" /nodefaultlib:"libcp.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"libcpmtd.lib" /nodefaultlib:"msvcprtd.lib" /out:"..\..\bin\debug\blender.exe" /pdbtype:sept /libpath:"..\..\..\lib\windows\sdl\lib" /libpath:"..\..\..\lib\windows\freetype\lib" /libpath:"..\..\..\lib\windows\ftgl\lib" /libpath:"..\..\..\lib\windows\gettext\lib" /libpath:"..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\lib\windows\bsp\lib\debug" /libpath:"..\..\..\lib\windows\moto\lib\debug" /libpath:"..\..\..\lib\windows\bmfont\lib\debug" /libpath:"..\..\..\lib\windows\ghost\lib\debug" /libpath:"..\..\..\lib\windows\python\frozen" /libpath:"..\..\..\lib\windows\guardedalloc\lib\debug" /libpath:"..\..\..\lib\windows\string\lib\debug" /libpath:"..\..\..\lib\windows\solid\lib\\" /libpath:"..\..\..\lib\windows\python\lib" /libpath:"..\..\..\lib\windows\iksolver\lib\debug" /libpath:"..\..\..\lib\windows\decimation\lib\debug" /libpath:"..\..\..\lib\windows\openal\lib" /libpath:"..\..\obj\windows\intern\soundsystem\dummy\debug" /libpath:"..\..\obj\windows\intern\soundsystem\openal\debug" /libpath:"..\..\..\lib\windows\soundsystem\lib\debug\\" /libpath:"..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\lib\windows\blenkey\lib\debug" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\lib\windows\opennl\debug" /libpath:"..\..\..\lib\windows\elbeem\lib\debug" /libpath:"..\..\..\lib\windows\boolop\lib" /libpath:"..\..\..\lib\windows\bullet\lib" /libpath:"..\..\..\lib\windows\elbeem\lib" /libpath:"..\..\..\lib\windows\pthreads\lib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=ECHO Copying required 3rd party dlls... XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\bin\ ECHO Done -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "blender - Win32 Release" -# Name "blender - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\source\creator\creator.c -# End Source File -# Begin Source File - -SOURCE=..\..\source\icons\winblender.rc -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\..\source\icons\winblender.ico -# End Source File -# Begin Source File - -SOURCE=..\..\source\icons\winblenderfile.ico -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="blender" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=blender - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "blender.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "blender.mak" CFG="blender - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "blender - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "blender - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "blender - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\obj\windows\blender" +# PROP Intermediate_Dir "..\..\obj\windows\blender" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\python" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "WITH_QUICKTIME" /YX /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 solid.lib SDL.lib freetype2ST.lib ftgl_static_ST.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.a libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.a libbsp.a libbmfont.a libghost.a libstring.a ws2_32.lib dxguid.lib opengl32.lib libjpeg.a glu32.lib user32.lib shell32.lib gdi32.lib vfw32.lib advapi32.lib winmm.lib ole32.lib libdecimation.a libiksolver.a libpng.a zlib.lib libmoto.a blender_ONL.lib blender_elbeem.lib boolop.lib BLI_bullet.lib pthreadVC2.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"msvcprt.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"glut32.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcpd.lib" /nodefaultlib:"libcp.lib" /nodefaultlib:"libcmtd.lib" /out:"..\..\bin\blender.exe" /libpath:"..\..\..\lib\windows\sdl\lib" /libpath:"..\..\..\lib\windows\freetype\lib" /libpath:"..\..\..\lib\windows\ftgl\lib" /libpath:"..\..\..\lib\windows\gettext\lib" /libpath:"..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\lib\windows\bsp\lib" /libpath:"..\..\..\lib\windows\moto\lib" /libpath:"..\..\..\lib\windows\bmfont\lib" /libpath:"..\..\..\lib\windows\ghost\lib" /libpath:"..\..\..\lib\windows\python\frozen" /libpath:"..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\lib\windows\string\lib" /libpath:"..\..\..\lib\windows\solid\lib" /libpath:"..\..\..\lib\windows\python\lib" /libpath:"..\..\..\lib\windows\iksolver\lib" /libpath:"..\..\..\lib\windows\decimation\lib" /libpath:"..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\obj\windows\intern\soundsystem\dummy" /libpath:"..\..\obj\windows\intern\soundsystem\openal" /libpath:"..\..\..\lib\windows\soundsystem\lib\\" /libpath:"..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\lib\windows\opennl" /libpath:"..\..\..\lib\windows\elbeem\lib" /libpath:"..\..\..\lib\windows\boolop\lib" /libpath:"..\..\..\lib\windows\bullet\lib" /libpath:"..\..\..\lib\windows\pthreads\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying required 3rd party dlls... XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\bin\ XCOPY /Y ..\..\..\lib\windows\sdl\lib\*dll ..\..\bin\ ECHO Done +# End Special Build Tool + +!ELSEIF "$(CFG)" == "blender - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\obj\windows\blender\debug" +# PROP Intermediate_Dir "..\..\obj\windows\blender\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\source\blender\misc" /I "..\..\..\lib\windows\guardedalloc\include" /I "..\..\source\blender\blenlib" /I "..\..\source\kernel\gen_messaging" /I "..\..\source\blender\include" /I "..\..\source\blender" /I "..\..\source\blender\makesdna" /I "..\..\source\blender\blenkernel" /I "..\..\source\blender\blenloader" /I "..\..\source\blender\python" /I "..\..\source\blender\imbuf" /I "..\..\source\blender\render\extern\include" /I "..\..\source\blender\radiosity\extern\include" /I "..\..\source\kernel\gen_system" /I "..\..\source\blender\renderconverter\\" /I "..\..\source\blender\renderui" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "WITH_QUICKTIME" /YX /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 solid.lib SDL.lib freetype2ST.lib ftgl_static_ST.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.a libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.a libbsp.a libbmfont.a libghost.a libstring.a ws2_32.lib dxguid.lib opengl32.lib libjpeg.a glu32.lib user32.lib gdi32.lib shell32.lib vfw32.lib advapi32.lib winmm.lib ole32.lib libdecimation.a libiksolver.a libpng.a zlib.lib libmoto.a blender_ONL.lib blender_elbeem.lib boolop.lib BLI_bullet_d.lib pthreadVC2.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"glut32.lib" /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcpd.lib" /nodefaultlib:"libcp.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"libcpmtd.lib" /nodefaultlib:"msvcprtd.lib" /out:"..\..\bin\debug\blender.exe" /pdbtype:sept /libpath:"..\..\..\lib\windows\sdl\lib" /libpath:"..\..\..\lib\windows\freetype\lib" /libpath:"..\..\..\lib\windows\ftgl\lib" /libpath:"..\..\..\lib\windows\gettext\lib" /libpath:"..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\lib\windows\bsp\lib\debug" /libpath:"..\..\..\lib\windows\moto\lib\debug" /libpath:"..\..\..\lib\windows\bmfont\lib\debug" /libpath:"..\..\..\lib\windows\ghost\lib\debug" /libpath:"..\..\..\lib\windows\python\frozen" /libpath:"..\..\..\lib\windows\guardedalloc\lib\debug" /libpath:"..\..\..\lib\windows\string\lib\debug" /libpath:"..\..\..\lib\windows\solid\lib\\" /libpath:"..\..\..\lib\windows\python\lib" /libpath:"..\..\..\lib\windows\iksolver\lib\debug" /libpath:"..\..\..\lib\windows\decimation\lib\debug" /libpath:"..\..\..\lib\windows\openal\lib" /libpath:"..\..\obj\windows\intern\soundsystem\dummy\debug" /libpath:"..\..\obj\windows\intern\soundsystem\openal\debug" /libpath:"..\..\..\lib\windows\soundsystem\lib\debug\\" /libpath:"..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\lib\windows\blenkey\lib\debug" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\lib\windows\opennl\debug" /libpath:"..\..\..\lib\windows\elbeem\lib\debug" /libpath:"..\..\..\lib\windows\boolop\lib" /libpath:"..\..\..\lib\windows\bullet\lib" /libpath:"..\..\..\lib\windows\elbeem\lib" /libpath:"..\..\..\lib\windows\pthreads\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=ECHO Copying required 3rd party dlls... XCOPY /Y ..\..\..\lib\windows\gettext\lib\*.dll ..\..\bin\ ECHO Done +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "blender - Win32 Release" +# Name "blender - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\source\creator\creator.c +# End Source File +# Begin Source File + +SOURCE=..\..\source\icons\winblender.rc +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\source\icons\winblender.ico +# End Source File +# Begin Source File + +SOURCE=..\..\source\icons\winblenderfile.ico +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/blender.dsw b/projectfiles/blender/blender.dsw index 3a69055807e..c7369f9df6c 100644 --- a/projectfiles/blender/blender.dsw +++ b/projectfiles/blender/blender.dsw @@ -1,743 +1,743 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "BKE_blenkernel"=.\blenkernel\BKE_blenkernel.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BLI_blenlib"=.\blenlib\BLI_blenlib.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BLO_loader"=.\loader\BLO_loader.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BLO_readblenfile"=.\BLO_readblenfile\BLO_readblenfile.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BL_avi"=.\avi\BL_avi.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BL_imbuf"=.\imbuf\BL_imbuf.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BL_src"=.\src\BL_src.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BL_src_cre"=.\src\BL_src_cre.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BPY_python"=.\BPY_python\BPY_python.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BRA_radiosity"=.\radiosity\BRA_radiosity.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BRE_render"=.\render\BRE_render.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name BRE_yafray - End Project Dependency -}}} - -############################################################################### - -Project: "BRE_renderconverter"=.\renderconverter\BRE_renderconverter.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BRE_yafray"=.\yafray\BRE_yafray.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Bullet"=..\..\extern\bullet\Bullet\BLI_Bullet.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "BulletDynamics"=..\..\extern\bullet\BulletDynamics\BLI_BulletDynamics.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "DNA_makesdna"=.\makesdna\DNA_makesdna.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "EXP_expressions"=..\gameengine\expression\EXP_expressions.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "FTF_ftfont"=.\ftfont\FTF_ftfont.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "GP_axctl"=..\gameengine\gameplayer\axctl\GP_axctl.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name KX_converter - End Project Dependency - Begin Project Dependency - Project_Dep_Name EXP_expressions - End Project Dependency - Begin Project Dependency - Project_Dep_Name SCA_GameLogic - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_ketsji - End Project Dependency - Begin Project Dependency - Project_Dep_Name SG_SceneGraph - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_openglrasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_rasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name SYS_system - End Project Dependency - Begin Project Dependency - Project_Dep_Name GP_common - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_loopbacknetwork - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name DNA_makesdna - End Project Dependency - Begin Project Dependency - Project_Dep_Name gen_messaging - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_verify - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_decrypt - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_loader - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_readblenfile - End Project Dependency - Begin Project Dependency - Project_Dep_Name BKE_blenkernel - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_avi - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_imbuf - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLI_blenlib - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_OpenAL - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Physics - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Ode - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Dummy - End Project Dependency -}}} - -############################################################################### - -Project: "GP_common"=..\gameengine\gameplayer\common\GP_common.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "GP_ghost"=..\gameengine\gameplayer\ghost\GP_ghost.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name BKE_blenkernel - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_avi - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_imbuf - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLI_blenlib - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_loader - End Project Dependency - Begin Project Dependency - Project_Dep_Name DNA_makesdna - End Project Dependency - Begin Project Dependency - Project_Dep_Name EXP_expressions - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_converter - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_ketsji - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_loopbacknetwork - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_openglrasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_rasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name SCA_GameLogic - End Project Dependency - Begin Project Dependency - Project_Dep_Name SG_SceneGraph - End Project Dependency - Begin Project Dependency - Project_Dep_Name SYS_system - End Project Dependency - Begin Project Dependency - Project_Dep_Name gen_messaging - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_readblenfile - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_decrypt - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_verify - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_OpenAL - End Project Dependency - Begin Project Dependency - Project_Dep_Name GP_common - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Physics - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Dummy - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Sumo - End Project Dependency -}}} - -############################################################################### - -Project: "KX_blenderhook"=..\gameengine\blenderhook\KX_blenderhook.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "KX_converter"=..\gameengine\converter\KX_converter.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "KX_ketsji"=..\gameengine\ketsji\KX_ketsji.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "KX_network"=..\gameengine\ketsji\network\KX_network.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "NG_loopbacknetwork"=..\gameengine\network\loopbacknetwork\NG_loopbacknetwork.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "NG_network"=..\gameengine\network\network\NG_network.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "PHY_Dummy"=..\GAMEENGINE\PHYSICS\PHY_PHYSICS\PHY_Dummy\PHY_Dummy.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "PHY_Ode"=..\gameengine\physics\PHY_Physics\PHY_Ode\PHY_Ode.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "PHY_Physics"=..\gameengine\physics\PHY_Physics\PHY_Physics.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "PHY_Sumo"=..\gameengine\physics\PHY_Physics\PHY_Sumo\PHY_Sumo.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "RAS_openglrasterizer"=..\gameengine\rasterizer\openglrasterizer\RAS_openglrasterizer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "RAS_rasterizer"=..\gameengine\rasterizer\RAS_rasterizer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SCA_GameLogic"=..\gameengine\gamelogic\SCA_GameLogic.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SG_SceneGraph"=..\gameengine\scenegraph\SG_SceneGraph.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SYS_system"=..\kernel\system\SYS_system.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "blender"=.\blender.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name BKE_blenkernel - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_avi - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_imbuf - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLI_blenlib - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_decrypt - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_encrypt - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_loader - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_sign - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_verify - End Project Dependency - Begin Project Dependency - Project_Dep_Name BRA_radiosity - End Project Dependency - Begin Project Dependency - Project_Dep_Name BRE_render - End Project Dependency - Begin Project Dependency - Project_Dep_Name DNA_makesdna - End Project Dependency - Begin Project Dependency - Project_Dep_Name EXP_expressions - End Project Dependency - Begin Project Dependency - Project_Dep_Name gen_messaging - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_loopbacknetwork - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_openglrasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_rasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name SCA_GameLogic - End Project Dependency - Begin Project Dependency - Project_Dep_Name SG_SceneGraph - End Project Dependency - Begin Project Dependency - Project_Dep_Name SYS_system - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_src_pub - End Project Dependency - Begin Project Dependency - Project_Dep_Name blenpluginapi - End Project Dependency - Begin Project Dependency - Project_Dep_Name BL_src - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_OpenAL - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Dummy - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Physics - End Project Dependency - Begin Project Dependency - Project_Dep_Name FTF_ftfont - End Project Dependency - Begin Project Dependency - Project_Dep_Name BPY_python - End Project Dependency - Begin Project Dependency - Project_Dep_Name PHY_Sumo - End Project Dependency - Begin Project Dependency - Project_Dep_Name BLO_readblenfile - End Project Dependency - Begin Project Dependency - Project_Dep_Name Bullet - End Project Dependency - Begin Project Dependency - Project_Dep_Name BulletDynamics - End Project Dependency -}}} - -############################################################################### - -Project: "blenpluginapi"=.\blenpluginapi\blenpluginapi\blenpluginapi.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "gen_messaging"=..\KERNEL\gen_messaging\gen_messaging.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "BKE_blenkernel"=.\blenkernel\BKE_blenkernel.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BLI_blenlib"=.\blenlib\BLI_blenlib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BLO_loader"=.\loader\BLO_loader.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BLO_readblenfile"=.\BLO_readblenfile\BLO_readblenfile.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BL_avi"=.\avi\BL_avi.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BL_imbuf"=.\imbuf\BL_imbuf.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BL_src"=.\src\BL_src.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BL_src_cre"=.\src\BL_src_cre.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BPY_python"=.\BPY_python\BPY_python.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BRA_radiosity"=.\radiosity\BRA_radiosity.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BRE_render"=.\render\BRE_render.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name BRE_yafray + End Project Dependency +}}} + +############################################################################### + +Project: "BRE_renderconverter"=.\renderconverter\BRE_renderconverter.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BRE_yafray"=.\yafray\BRE_yafray.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Bullet"=..\..\extern\bullet\Bullet\BLI_Bullet.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "BulletDynamics"=..\..\extern\bullet\BulletDynamics\BLI_BulletDynamics.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "DNA_makesdna"=.\makesdna\DNA_makesdna.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "EXP_expressions"=..\gameengine\expression\EXP_expressions.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "FTF_ftfont"=.\ftfont\FTF_ftfont.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "GP_axctl"=..\gameengine\gameplayer\axctl\GP_axctl.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name KX_converter + End Project Dependency + Begin Project Dependency + Project_Dep_Name EXP_expressions + End Project Dependency + Begin Project Dependency + Project_Dep_Name SCA_GameLogic + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_ketsji + End Project Dependency + Begin Project Dependency + Project_Dep_Name SG_SceneGraph + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_openglrasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_rasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name SYS_system + End Project Dependency + Begin Project Dependency + Project_Dep_Name GP_common + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_loopbacknetwork + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name DNA_makesdna + End Project Dependency + Begin Project Dependency + Project_Dep_Name gen_messaging + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_verify + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_decrypt + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_loader + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_readblenfile + End Project Dependency + Begin Project Dependency + Project_Dep_Name BKE_blenkernel + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_avi + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_imbuf + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLI_blenlib + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_OpenAL + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Physics + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Ode + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Dummy + End Project Dependency +}}} + +############################################################################### + +Project: "GP_common"=..\gameengine\gameplayer\common\GP_common.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "GP_ghost"=..\gameengine\gameplayer\ghost\GP_ghost.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name BKE_blenkernel + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_avi + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_imbuf + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLI_blenlib + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_loader + End Project Dependency + Begin Project Dependency + Project_Dep_Name DNA_makesdna + End Project Dependency + Begin Project Dependency + Project_Dep_Name EXP_expressions + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_converter + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_ketsji + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_loopbacknetwork + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_openglrasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_rasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name SCA_GameLogic + End Project Dependency + Begin Project Dependency + Project_Dep_Name SG_SceneGraph + End Project Dependency + Begin Project Dependency + Project_Dep_Name SYS_system + End Project Dependency + Begin Project Dependency + Project_Dep_Name gen_messaging + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_readblenfile + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_decrypt + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_verify + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_OpenAL + End Project Dependency + Begin Project Dependency + Project_Dep_Name GP_common + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Physics + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Dummy + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Sumo + End Project Dependency +}}} + +############################################################################### + +Project: "KX_blenderhook"=..\gameengine\blenderhook\KX_blenderhook.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "KX_converter"=..\gameengine\converter\KX_converter.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "KX_ketsji"=..\gameengine\ketsji\KX_ketsji.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "KX_network"=..\gameengine\ketsji\network\KX_network.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NG_loopbacknetwork"=..\gameengine\network\loopbacknetwork\NG_loopbacknetwork.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NG_network"=..\gameengine\network\network\NG_network.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PHY_Dummy"=..\GAMEENGINE\PHYSICS\PHY_PHYSICS\PHY_Dummy\PHY_Dummy.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PHY_Ode"=..\gameengine\physics\PHY_Physics\PHY_Ode\PHY_Ode.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PHY_Physics"=..\gameengine\physics\PHY_Physics\PHY_Physics.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "PHY_Sumo"=..\gameengine\physics\PHY_Physics\PHY_Sumo\PHY_Sumo.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RAS_openglrasterizer"=..\gameengine\rasterizer\openglrasterizer\RAS_openglrasterizer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RAS_rasterizer"=..\gameengine\rasterizer\RAS_rasterizer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SCA_GameLogic"=..\gameengine\gamelogic\SCA_GameLogic.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SG_SceneGraph"=..\gameengine\scenegraph\SG_SceneGraph.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SYS_system"=..\kernel\system\SYS_system.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "blender"=.\blender.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name BKE_blenkernel + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_avi + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_imbuf + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLI_blenlib + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_decrypt + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_encrypt + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_loader + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_sign + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_verify + End Project Dependency + Begin Project Dependency + Project_Dep_Name BRA_radiosity + End Project Dependency + Begin Project Dependency + Project_Dep_Name BRE_render + End Project Dependency + Begin Project Dependency + Project_Dep_Name DNA_makesdna + End Project Dependency + Begin Project Dependency + Project_Dep_Name EXP_expressions + End Project Dependency + Begin Project Dependency + Project_Dep_Name gen_messaging + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_loopbacknetwork + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_openglrasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_rasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name SCA_GameLogic + End Project Dependency + Begin Project Dependency + Project_Dep_Name SG_SceneGraph + End Project Dependency + Begin Project Dependency + Project_Dep_Name SYS_system + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_src_pub + End Project Dependency + Begin Project Dependency + Project_Dep_Name blenpluginapi + End Project Dependency + Begin Project Dependency + Project_Dep_Name BL_src + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_OpenAL + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Dummy + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Physics + End Project Dependency + Begin Project Dependency + Project_Dep_Name FTF_ftfont + End Project Dependency + Begin Project Dependency + Project_Dep_Name BPY_python + End Project Dependency + Begin Project Dependency + Project_Dep_Name PHY_Sumo + End Project Dependency + Begin Project Dependency + Project_Dep_Name BLO_readblenfile + End Project Dependency + Begin Project Dependency + Project_Dep_Name Bullet + End Project Dependency + Begin Project Dependency + Project_Dep_Name BulletDynamics + End Project Dependency +}}} + +############################################################################### + +Project: "blenpluginapi"=.\blenpluginapi\blenpluginapi\blenpluginapi.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "gen_messaging"=..\KERNEL\gen_messaging\gen_messaging.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/projectfiles/blender/blenkernel/BKE_blenkernel.dsp b/projectfiles/blender/blenkernel/BKE_blenkernel.dsp index 171bfab7dad..d430498d44d 100644 --- a/projectfiles/blender/blenkernel/BKE_blenkernel.dsp +++ b/projectfiles/blender/blenkernel/BKE_blenkernel.dsp @@ -1,564 +1,564 @@ -# Microsoft Developer Studio Project File - Name="BKE_blenkernel" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BKE_blenkernel - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BKE_blenkernel.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BKE_blenkernel.mak" CFG="BKE_blenkernel - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BKE_blenkernel - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BKE_blenkernel - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BKE_blenkernel - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BKE_blenkernel - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BKE_blenkernel - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\decimation\include" /I "../../../../lib/windows/zlib/include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /D "USE_CCGSUBSURFLIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\debug" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\decimation\include" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BKE_blenkernel___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BKE_blenkernel___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll_debug" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT BASE CPP /WX -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\blenloader" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /WX -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenkernel\debug\BKE_blenkernel.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BKE_blenkernel___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BKE_blenkernel___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenkernel\BKE_blenkernel.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BKE_blenkernel - Win32 Release" -# Name "BKE_blenkernel - Win32 Debug" -# Name "BKE_blenkernel - Win32 MT DLL Debug" -# Name "BKE_blenkernel - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\action.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\idprop.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\anim.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\armature.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\blender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\bmfont.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\brush.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\CCGSubSurf.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\cdderivedmesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\colortools.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\constraint.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\curve.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\customdata.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\deform.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\depsgraph.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\DerivedMesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\displist.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\effect.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\exotic.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\font.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\group.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\icons.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\image.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\ipo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\key.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\lattice.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\library.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\material.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\mball.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\mesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\modifier.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\nla.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\node.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\node_composite.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\node_shaders.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\object.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\packedFile.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\property.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\sca.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\scene.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\screen.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\script.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\softbody.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\sound.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\subsurf_ccg.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\text.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\texture.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\world.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\writeavi.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\writeframeserver.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_action.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_anim.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_armature.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_bad_level_calls.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_blender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_bmfont.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_bmfont_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_booleanops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_booleanops_mesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_brush.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_cdderivedmesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_constraint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_curve.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_customdata.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_deform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_depsgraph.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_DerivedMesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_displist.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_effect.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_endian.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_exotic.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_font.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_global.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_group.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_image.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_ipo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_key.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_lattice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_library.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_main.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_material.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_mball.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_mesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_modifier.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_nla.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_object.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_packedFile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_plugin_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_property.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_sca.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_screen.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_script.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_softbody.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_sound.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_subsurf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_text.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_texture.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_utildefines.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_world.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\BKE_writeavi.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\intern\CCGSubSurf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenkernel\depsgraph_private.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BKE_blenkernel" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BKE_blenkernel - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BKE_blenkernel.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BKE_blenkernel.mak" CFG="BKE_blenkernel - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BKE_blenkernel - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BKE_blenkernel - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BKE_blenkernel - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BKE_blenkernel - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BKE_blenkernel - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\decimation\include" /I "../../../../lib/windows/zlib/include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /D "USE_CCGSUBSURFLIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\debug" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\decimation\include" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BKE_blenkernel___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BKE_blenkernel___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll_debug" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT BASE CPP /WX +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\blenloader" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /WX +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenkernel\debug\BKE_blenkernel.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BKE_blenkernel - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BKE_blenkernel___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BKE_blenkernel___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenkernel\mtdll" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenlib" /I "../../../source/gameengine\SoundSystem\\" /I "../../../../lib/windows/iksolver/include" /I "../../../../lib/windows/bsp/include" /I "..\..\..\intern\elbeem\extern" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenkernel\BKE_blenkernel.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BKE_blenkernel - Win32 Release" +# Name "BKE_blenkernel - Win32 Debug" +# Name "BKE_blenkernel - Win32 MT DLL Debug" +# Name "BKE_blenkernel - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\action.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\idprop.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\anim.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\armature.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\blender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\bmfont.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\brush.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\CCGSubSurf.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\cdderivedmesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\colortools.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\constraint.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\curve.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\customdata.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\deform.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\depsgraph.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\DerivedMesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\displist.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\effect.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\exotic.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\font.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\group.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\icons.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\image.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\ipo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\key.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\lattice.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\library.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\material.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\mball.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\mesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\modifier.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\nla.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\node.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\node_composite.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\node_shaders.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\object.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\packedFile.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\property.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\sca.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\scene.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\screen.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\script.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\softbody.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\sound.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\subsurf_ccg.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\text.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\texture.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\world.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\writeavi.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\writeframeserver.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_action.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_anim.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_armature.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_bad_level_calls.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_blender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_bmfont.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_bmfont_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_booleanops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_booleanops_mesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_brush.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_cdderivedmesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_constraint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_curve.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_customdata.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_deform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_depsgraph.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_DerivedMesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_displist.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_effect.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_endian.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_exotic.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_font.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_global.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_group.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_image.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_ipo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_key.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_lattice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_library.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_main.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_material.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_mball.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_mesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_modifier.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_nla.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_object.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_packedFile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_plugin_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_property.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_sca.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_screen.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_script.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_softbody.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_sound.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_subsurf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_text.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_texture.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_utildefines.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_world.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\BKE_writeavi.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\intern\CCGSubSurf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenkernel\depsgraph_private.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/blenlib/BLI_blenlib.dsp b/projectfiles/blender/blenlib/BLI_blenlib.dsp index 137725d3f7f..0a5ed2c4d9d 100644 --- a/projectfiles/blender/blenlib/BLI_blenlib.dsp +++ b/projectfiles/blender/blenlib/BLI_blenlib.dsp @@ -1,318 +1,318 @@ -# Microsoft Developer Studio Project File - Name="BLI_blenlib" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BLI_blenlib - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BLI_blenlib.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BLI_blenlib.mak" CFG="BLI_blenlib - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BLI_blenlib - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BLI_blenlib - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BLI_blenlib - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BLI_blenlib - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BLI_blenlib - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\freetype\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\freetype\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BLI_blenlib___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BLI_blenlib___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenlib\debug\BLI_blenlib.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BLI_blenlib___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BLI_blenlib___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenlib\BLI_blenlib.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BLI_blenlib - Win32 Release" -# Name "BLI_blenlib - Win32 Debug" -# Name "BLI_blenlib - Win32 MT DLL Debug" -# Name "BLI_blenlib - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\arithb.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_dynstr.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_ghash.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_heap.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_linklist.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_memarena.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\dynlib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\edgehash.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\fileops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\freetypefont.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\gsqueue.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\jitter.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\matrixops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\noise.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\psfont.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\rand.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\rct.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\scanfill.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\storage.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\threads.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\time.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\util.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\vectorops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\winstuff.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_arithb.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_blenlib.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_callbacks.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_edgehash.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_editVert.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_fileops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_ghash.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_linklist.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_memarena.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_scanfill.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_storage.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_storage_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\intern\BLI_util.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\BLI_winstuff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\MTC_matrixops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\MTC_vectorops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\PIL_dynlib.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenlib\PIL_time.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BLI_blenlib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BLI_blenlib - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BLI_blenlib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BLI_blenlib.mak" CFG="BLI_blenlib - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BLI_blenlib - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BLI_blenlib - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BLI_blenlib - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BLI_blenlib - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BLI_blenlib - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\freetype\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\freetype\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /I "../../../../lib/windows/zlib/include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_FREETYPE2" /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BLI_blenlib___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BLI_blenlib___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenlib\debug\BLI_blenlib.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLI_blenlib - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BLI_blenlib___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BLI_blenlib___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\blenlib\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\blenlib\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\blenlib\BLI_blenlib.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BLI_blenlib - Win32 Release" +# Name "BLI_blenlib - Win32 Debug" +# Name "BLI_blenlib - Win32 MT DLL Debug" +# Name "BLI_blenlib - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\arithb.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_dynstr.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_ghash.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_heap.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_linklist.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_memarena.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\dynlib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\edgehash.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\fileops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\freetypefont.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\gsqueue.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\jitter.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\matrixops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\noise.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\psfont.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\rand.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\rct.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\scanfill.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\storage.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\threads.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\time.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\util.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\vectorops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\winstuff.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_arithb.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_blenlib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_callbacks.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_edgehash.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_editVert.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_fileops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_ghash.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_linklist.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_memarena.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_scanfill.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_storage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_storage_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\intern\BLI_util.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\BLI_winstuff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\MTC_matrixops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\MTC_vectorops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\PIL_dynlib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenlib\PIL_time.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/blenpluginapi/blenpluginapi/blenpluginapi.dsp b/projectfiles/blender/blenpluginapi/blenpluginapi/blenpluginapi.dsp index 6b219ffad19..935335448a4 100644 --- a/projectfiles/blender/blenpluginapi/blenpluginapi/blenpluginapi.dsp +++ b/projectfiles/blender/blenpluginapi/blenpluginapi/blenpluginapi.dsp @@ -1,119 +1,119 @@ -# Microsoft Developer Studio Project File - Name="blenpluginapi" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=blenpluginapi - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "blenpluginapi.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "blenpluginapi.mak" CFG="blenpluginapi - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "blenpluginapi - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "blenpluginapi - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "blenpluginapi - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\blender\blenpluginapi" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\blenpluginapi" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\blender" /I "..\..\..\..\source\blender\blenpluginapi" /I "..\..\..\..\source\blender\blenlib" /I "..\..\..\..\source\blender\imbuf" /I "..\..\..\..\source\blender\makesdna" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\blenpluginapi.lib" - -!ELSEIF "$(CFG)" == "blenpluginapi - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\blender\blenpluginapi\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\blenpluginapi\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\blender" /I "..\..\..\..\source\blender\blenpluginapi" /I "..\..\..\..\source\blender\blenlib" /I "..\..\..\..\source\blender\imbuf" /I "..\..\..\..\source\blender\makesdna" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# SUBTRACT CPP /X -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\debug\blenpluginapi.lib" - -!ENDIF - -# Begin Target - -# Name "blenpluginapi - Win32 Release" -# Name "blenpluginapi - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\intern\pluginapi.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\documentation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\floatpatch.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\iff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\plugin.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenpluginapi\util.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="blenpluginapi" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=blenpluginapi - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "blenpluginapi.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "blenpluginapi.mak" CFG="blenpluginapi - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "blenpluginapi - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "blenpluginapi - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "blenpluginapi - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\blender\blenpluginapi" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\blenpluginapi" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\blender" /I "..\..\..\..\source\blender\blenpluginapi" /I "..\..\..\..\source\blender\blenlib" /I "..\..\..\..\source\blender\imbuf" /I "..\..\..\..\source\blender\makesdna" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\blenpluginapi.lib" + +!ELSEIF "$(CFG)" == "blenpluginapi - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\blender\blenpluginapi\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\blenpluginapi\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\blender" /I "..\..\..\..\source\blender\blenpluginapi" /I "..\..\..\..\source\blender\blenlib" /I "..\..\..\..\source\blender\imbuf" /I "..\..\..\..\source\blender\makesdna" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# SUBTRACT CPP /X +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\debug\blenpluginapi.lib" + +!ENDIF + +# Begin Target + +# Name "blenpluginapi - Win32 Release" +# Name "blenpluginapi - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\intern\pluginapi.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\documentation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\floatpatch.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\iff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\plugin.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenpluginapi\util.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/ftfont/FTF_ftfont.dsp b/projectfiles/blender/ftfont/FTF_ftfont.dsp index 7ecd50aa75f..9a90df08483 100644 --- a/projectfiles/blender/ftfont/FTF_ftfont.dsp +++ b/projectfiles/blender/ftfont/FTF_ftfont.dsp @@ -1,118 +1,118 @@ -# Microsoft Developer Studio Project File - Name="FTF_ftfont" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=FTF_ftfont - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "FTF_ftfont.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "FTF_ftfont.mak" CFG="FTF_ftfont - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "FTF_ftfont - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "FTF_ftfont - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "FTF_ftfont - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\ftfont" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\ftfont" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "../../../source\blender\makesdna" /I "../../../source\blender\blenloader" /I "../../../source\blender\blenlib" /I "../../../../lib/windows/ftgl/include" /I "../../../../lib/windows/freetype/include" /I "../../../lib/windows/iconv/include" /I "../../../../lib/windows/gettext/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "WCHAR_T16" /D "HAVE_LC_MESSAGES" /YX /FD /c -# ADD BASE RSC /l 0x411 /d "NDEBUG" -# ADD RSC /l 0x411 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "FTF_ftfont - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\ftfont" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\ftfont" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../source\blender\blenlib" /I "../../../source\blender\makesdna" /I "../../../../lib/windows/ftgl/include" /I "../../../../lib/windows/freetype/include" /I "../../../lib/windows/iconv/include" /I "../../../../lib/windows/gettext/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "WCHAR_T16" /D "HAVE_LC_MESSAGES" /D "FTGL_LIBRARY_STATIC" /YX /FD /GZ /c -# ADD BASE RSC /l 0x411 /d "_DEBUG" -# ADD RSC /l 0x411 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "FTF_ftfont - Win32 Release" -# Name "FTF_ftfont - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\ftfont\intern\FTF_Api.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\ftfont\intern\FTF_TTFont.cpp -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\blender\ftfont\FTF_Api.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\ftfont\FTF_Settings.h -# End Source File -# End Group -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\blender\ftfont\intern\FTF_TTFont.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="FTF_ftfont" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=FTF_ftfont - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "FTF_ftfont.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "FTF_ftfont.mak" CFG="FTF_ftfont - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "FTF_ftfont - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "FTF_ftfont - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "FTF_ftfont - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\ftfont" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\ftfont" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../../source\blender\makesdna" /I "../../../source\blender\blenloader" /I "../../../source\blender\blenlib" /I "../../../../lib/windows/ftgl/include" /I "../../../../lib/windows/freetype/include" /I "../../../lib/windows/iconv/include" /I "../../../../lib/windows/gettext/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "WCHAR_T16" /D "HAVE_LC_MESSAGES" /YX /FD /c +# ADD BASE RSC /l 0x411 /d "NDEBUG" +# ADD RSC /l 0x411 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "FTF_ftfont - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\ftfont" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\ftfont" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../source\blender\blenlib" /I "../../../source\blender\makesdna" /I "../../../../lib/windows/ftgl/include" /I "../../../../lib/windows/freetype/include" /I "../../../lib/windows/iconv/include" /I "../../../../lib/windows/gettext/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "WCHAR_T16" /D "HAVE_LC_MESSAGES" /D "FTGL_LIBRARY_STATIC" /YX /FD /GZ /c +# ADD BASE RSC /l 0x411 /d "_DEBUG" +# ADD RSC /l 0x411 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "FTF_ftfont - Win32 Release" +# Name "FTF_ftfont - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\ftfont\intern\FTF_Api.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\ftfont\intern\FTF_TTFont.cpp +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\blender\ftfont\FTF_Api.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\ftfont\FTF_Settings.h +# End Source File +# End Group +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\blender\ftfont\intern\FTF_TTFont.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/glut/BL_glut.dsp b/projectfiles/blender/glut/BL_glut.dsp index 2e351603e67..a4f1573ab38 100644 --- a/projectfiles/blender/glut/BL_glut.dsp +++ b/projectfiles/blender/glut/BL_glut.dsp @@ -1,324 +1,324 @@ -# Microsoft Developer Studio Project File - Name="BL_glut" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_glut - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_glut.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_glut.mak" CFG="BL_glut - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_glut - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_glut - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_glut - Win32 Profile" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_glut - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\glut" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\\" /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\BL_glut.lib" - -!ELSEIF "$(CFG)" == "BL_glut - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\glut\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\debug\BL_glut.lib" - -!ELSEIF "$(CFG)" == "BL_glut - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BL_glut___Win32_Profile" -# PROP BASE Intermediate_Dir "BL_glut___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "BL_glut___Win32_Profile" -# PROP Intermediate_Dir "BL_glut___Win32_Profile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\debug\BL_glut.lib" -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\profile\BL_glut.lib" - -!ENDIF - -# Begin Target - -# Name "BL_glut - Win32 Release" -# Name "BL_glut - Win32 Debug" -# Name "BL_glut - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_8x13.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_9x15.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_bitmap.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_blender.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_bwidth.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_cindex.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_cmap.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_cursor.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_dials.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_draw.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_dstr.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_event.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_ext.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_fullscrn.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_get.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_hel10.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_hel12.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_hel18.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_helb10.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_helb12.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_helb14.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_helb8.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_init.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_input.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_mesa.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_modifier.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_mroman.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_overlay.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_roman.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_scr12.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_scr14.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_scr15.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_shapes.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_space.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_stroke.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_swap.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_swidth.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_tablet.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_teapot.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_tr10.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_tr24.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_util.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_vidresize.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_warp.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_win.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\glut_winmisc.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\win32_glx.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\win32_menu.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\win32_util.c" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\blender\glut-win\win32_x11.c" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\glut\blenderglut.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_glut" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_glut - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_glut.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_glut.mak" CFG="BL_glut - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_glut - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_glut - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_glut - Win32 Profile" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_glut - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\glut" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\\" /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\BL_glut.lib" + +!ELSEIF "$(CFG)" == "BL_glut - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\blender\glut\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\debug\BL_glut.lib" + +!ELSEIF "$(CFG)" == "BL_glut - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BL_glut___Win32_Profile" +# PROP BASE Intermediate_Dir "BL_glut___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "BL_glut___Win32_Profile" +# PROP Intermediate_Dir "BL_glut___Win32_Profile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\source\blender\glut-win" /I "..\..\..\source\blender\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\debug\BL_glut.lib" +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\blender\glut\profile\BL_glut.lib" + +!ENDIF + +# Begin Target + +# Name "BL_glut - Win32 Release" +# Name "BL_glut - Win32 Debug" +# Name "BL_glut - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_8x13.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_9x15.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_bitmap.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_blender.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_bwidth.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_cindex.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_cmap.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_cursor.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_dials.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_draw.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_dstr.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_event.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_ext.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_fullscrn.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_get.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_hel10.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_hel12.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_hel18.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_helb10.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_helb12.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_helb14.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_helb8.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_init.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_input.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_mesa.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_modifier.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_mroman.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_overlay.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_roman.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_scr12.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_scr14.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_scr15.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_shapes.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_space.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_stroke.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_swap.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_swidth.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_tablet.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_teapot.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_tr10.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_tr24.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_util.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_vidresize.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_warp.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_win.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\glut_winmisc.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\win32_glx.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\win32_menu.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\win32_util.c" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\blender\glut-win\win32_x11.c" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\glut\blenderglut.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/imbuf/BL_imbuf.dsp b/projectfiles/blender/imbuf/BL_imbuf.dsp index 002426124b6..04d81d8229c 100644 --- a/projectfiles/blender/imbuf/BL_imbuf.dsp +++ b/projectfiles/blender/imbuf/BL_imbuf.dsp @@ -1,438 +1,438 @@ -# Microsoft Developer Studio Project File - Name="BL_imbuf" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_imbuf - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_imbuf.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_imbuf.mak" CFG="BL_imbuf - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_imbuf - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_imbuf - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_imbuf - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_imbuf - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_imbuf - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\imbuf\intern" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\tiff\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_imbuf - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\blender\imbuf\intern" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /FD /I /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_imbuf - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BL_imbuf___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BL_imbuf___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna..\..\..\lib\windows\\" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\imbuf\debug\BL_imbuf.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_imbuf - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BL_imbuf___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BL_imbuf___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\blender\makesdna..\..\..\lib\windows\\" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\imbuf\BL_imbuf.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BL_imbuf - Win32 Release" -# Name "BL_imbuf - Win32 Debug" -# Name "BL_imbuf - Win32 MT DLL Debug" -# Name "BL_imbuf - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\allocimbuf.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\amiga.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\anim.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\anim5.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\antialias.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\bitplanes.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\bmp.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineon_dpx.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonlib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cmap.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cspace.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\data.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\dither.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\divers.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxlib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\dynlibtiff.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\filter.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\ham.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\hamx.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\iff.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\imageprocess.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\iris.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\jpeg.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageCore.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageLib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logmemfile.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\png.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\quicktime\apple\quicktime_export.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\quicktime\apple\quicktime_import.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\radiance_hdr.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\readimage.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\rectop.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\rotate.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\scaling.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\targa.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\tiff.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\util.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\writeimage.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cin_debug_stuff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonlib.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxlib.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\dynlibtiff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_allocimbuf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_amiga.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_anim.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_anim5.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_bitplanes.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_bmp.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_cmap.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_divers.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_filter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_ham.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_hamx.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_iff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\IMB_imbuf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\IMB_imbuf_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_iris.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_jpeg.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_png.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_radiance_hdr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_targa.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\IMB_tiff.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\imbuf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\imbuf_patch.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageCore.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageLib.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logmemfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\imbuf\intern\matrix.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\quicktime\quicktime_export.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\quicktime\quicktime_import.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_imbuf" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_imbuf - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_imbuf.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_imbuf.mak" CFG="BL_imbuf - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_imbuf - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_imbuf - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_imbuf - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_imbuf - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_imbuf - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\imbuf\intern" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\tiff\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_imbuf - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\blender\imbuf\intern" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /FD /I /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_imbuf - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BL_imbuf___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BL_imbuf___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna..\..\..\lib\windows\\" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\imbuf\debug\BL_imbuf.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_imbuf - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BL_imbuf___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BL_imbuf___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\imbuf\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\imbuf\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\source\blender\makesdna" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\blender\makesdna..\..\..\lib\windows\\" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\avi" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\include" /I "..\..\..\..\lib\windows\jpeg\include" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\..\lib\windows\png\include" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\tiff\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\imbuf\BL_imbuf.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BL_imbuf - Win32 Release" +# Name "BL_imbuf - Win32 Debug" +# Name "BL_imbuf - Win32 MT DLL Debug" +# Name "BL_imbuf - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\allocimbuf.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\amiga.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\anim.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\anim5.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\antialias.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\bitplanes.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\bmp.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineon_dpx.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonlib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cmap.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cspace.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\data.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\dither.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\divers.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxlib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\dynlibtiff.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\filter.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\ham.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\hamx.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\iff.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\imageprocess.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\iris.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\jpeg.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageCore.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageLib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logmemfile.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\png.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\quicktime\apple\quicktime_export.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\quicktime\apple\quicktime_import.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\radiance_hdr.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\readimage.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\rectop.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\rotate.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\scaling.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\targa.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\tiff.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\util.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\writeimage.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cin_debug_stuff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\cineonlib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\dpxlib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\dynlibtiff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_allocimbuf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_amiga.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_anim.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_anim5.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_bitplanes.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_bmp.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_cmap.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_divers.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_filter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_ham.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_hamx.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_iff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\IMB_imbuf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\IMB_imbuf_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_iris.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_jpeg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_png.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_radiance_hdr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_targa.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\IMB_tiff.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\imbuf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\imbuf_patch.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageCore.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logImageLib.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\cineon\logmemfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\imbuf\intern\matrix.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\quicktime\quicktime_export.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\quicktime\quicktime_import.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/img/BL_img.dsp b/projectfiles/blender/img/BL_img.dsp index 16f0827fbe9..465db34f4da 100644 --- a/projectfiles/blender/img/BL_img.dsp +++ b/projectfiles/blender/img/BL_img.dsp @@ -1,171 +1,171 @@ -# Microsoft Developer Studio Project File - Name="BL_img" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_IMG - WIN32 DEBUG -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_img.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_img.mak" CFG="BL_IMG - WIN32 DEBUG" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_img - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_img - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_img - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\img" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\img" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_img - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\img\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\img\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BL_img - Win32 Release" -# Name "BL_img - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Api.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_BrushRGBA32.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_CanvasRGBA32.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Line.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Pixmap.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_PixmapRGBA32.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Rect.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "intern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_BrushRGBA32.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_CanvasRGBA32.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Color.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Line.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_MemPtr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Pixmap.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_PixmapRGBA32.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Rect.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\img\intern\IMG_Types.h -# End Source File -# End Group -# Begin Group "extern" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\blender\img\IMG_Api.h -# End Source File -# End Group -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_img" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_IMG - WIN32 DEBUG +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_img.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_img.mak" CFG="BL_IMG - WIN32 DEBUG" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_img - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_img - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_img - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\img" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\img" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_img - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\img\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\img\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BL_img - Win32 Release" +# Name "BL_img - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Api.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_BrushRGBA32.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_CanvasRGBA32.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Line.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Pixmap.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_PixmapRGBA32.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Rect.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "intern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_BrushRGBA32.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_CanvasRGBA32.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Color.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Line.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_MemPtr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Pixmap.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_PixmapRGBA32.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Rect.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\img\intern\IMG_Types.h +# End Source File +# End Group +# Begin Group "extern" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\blender\img\IMG_Api.h +# End Source File +# End Group +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/loader/BLO_loader.dsp b/projectfiles/blender/loader/BLO_loader.dsp index 13b32246652..6671f256bc9 100644 --- a/projectfiles/blender/loader/BLO_loader.dsp +++ b/projectfiles/blender/loader/BLO_loader.dsp @@ -1,186 +1,186 @@ -# Microsoft Developer Studio Project File - Name="BLO_loader" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BLO_loader - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BLO_loader.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BLO_loader.mak" CFG="BLO_loader - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BLO_loader - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_loader - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_loader - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "BLO_loader - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BLO_loader - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\loader" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\blenloader" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_loader - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\loader\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_loader - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BLO_loader___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "BLO_loader___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\loader\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\loader\debug\BLO_loader.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BLO_loader - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "BLO_loader___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "BLO_loader___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\loader\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\loader\BLO_loader.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BLO_loader - Win32 Release" -# Name "BLO_loader - Win32 Debug" -# Name "BLO_loader - Win32 MT DLL Debug" -# Name "BLO_loader - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\intern\genfile.c -# ADD CPP /I "..\..\..\source\blender" -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\intern\readblenentry.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\intern\readfile.c -# ADD CPP /I "..\..\..\source\blender" -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\intern\undofile.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\intern\writefile.c -# ADD CPP /I "..\..\..\source\blender" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\BLO_genfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\BLO_readfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\BLO_soundfile.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenloader\BLO_undofile.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BLO_loader" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BLO_loader - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BLO_loader.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BLO_loader.mak" CFG="BLO_loader - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BLO_loader - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_loader - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_loader - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "BLO_loader - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BLO_loader - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\loader" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\blender\blenloader" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_loader - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\loader\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_loader - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BLO_loader___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "BLO_loader___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\loader\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\loader\debug\BLO_loader.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BLO_loader - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "BLO_loader___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "BLO_loader___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\loader\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\loader\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\streamglue\\" /I "..\..\..\source\blender\readblenfile\\" /I "..\..\..\source\blender\writeblenfile\\" /I "..\..\..\source\blender\deflate\\" /I "..\..\..\source\blender\inflate\\" /I "..\..\..\..\lib\windows\zlib\include" /I "..\..\..\source\blender\readblenfile" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\blender\writestreamglue" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\python" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\blender\loader\BLO_loader.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BLO_loader - Win32 Release" +# Name "BLO_loader - Win32 Debug" +# Name "BLO_loader - Win32 MT DLL Debug" +# Name "BLO_loader - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\intern\genfile.c +# ADD CPP /I "..\..\..\source\blender" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\intern\readblenentry.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\intern\readfile.c +# ADD CPP /I "..\..\..\source\blender" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\intern\undofile.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\intern\writefile.c +# ADD CPP /I "..\..\..\source\blender" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\BLO_genfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\BLO_readfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\BLO_soundfile.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenloader\BLO_undofile.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/makesdna/DNA_makesdna.dsp b/projectfiles/blender/makesdna/DNA_makesdna.dsp index 993968c2f6d..e08d44ade7c 100644 --- a/projectfiles/blender/makesdna/DNA_makesdna.dsp +++ b/projectfiles/blender/makesdna/DNA_makesdna.dsp @@ -1,373 +1,373 @@ -# Microsoft Developer Studio Project File - Name="DNA_makesdna" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=DNA_makesdna - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "DNA_makesdna.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "DNA_makesdna.mak" CFG="DNA_makesdna - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "DNA_makesdna - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "DNA_makesdna - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "DNA_makesdna - Win32 MT DLL Release" (based on "Win32 (x86) Console Application") -!MESSAGE "DNA_makesdna - Win32 MT DLL Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "DNA_makesdna - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo /o"DNA_makesdna.bsc" -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 libguardedalloc.a BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /nodefaultlib:"libc.lib" /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\obj\windows\blender\blenlib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Building DNA -PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c -# End Special Build Tool - -!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo /o"DNA_makesdna.bsc" -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 libguardedalloc.a BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /pdbtype:sept /libpath:"..\..\..\..\lib\windows\guardedalloc\lib\debug" /libpath:"..\..\..\obj\windows\blender\blenlib\debug" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Desc=Building DNA -PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c -# End Special Build Tool - -!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "DNA_makesdna___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "DNA_makesdna___Win32_MT_DLL_Release" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\mtdll" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo /o"DNA_makesdna.bsc" -# ADD BSC32 /nologo /o"DNA_makesdna.bsc" -LINK32=link.exe -# ADD BASE LINK32 BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /out:"..\..\..\source\blender\makesdna\intern\DNA_makesdna.exe" /libpath:"..\..\..\..\obj\windows\blender\blenlib" -# SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 libguardedalloc.a /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\obj\windows\blender\blenlib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c -# End Special Build Tool - -!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "DNA_makesdna___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "DNA_makesdna___Win32_MT_DLL_Debug" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\mtdll_debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo /o"DNA_makesdna.bsc" -# ADD BSC32 /nologo /o"DNA_makesdna.bsc" -LINK32=link.exe -# ADD BASE LINK32 BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /out:"..\..\..\source\blender\makesdna\debug\DNA_makesdna.exe" /pdbtype:sept /libpath:"..\..\..\..\obj\windows\blender\blenlib\debug" -# SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 libguardedalloc.a /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE="$(InputPath)" -PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "DNA_makesdna - Win32 Release" -# Name "DNA_makesdna - Win32 Debug" -# Name "DNA_makesdna - Win32 MT DLL Release" -# Name "DNA_makesdna - Win32 MT DLL Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\intern\makesdna.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_action_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_actuator_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_armature_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_camera_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_constraint_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_controller_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_curve_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_customdata_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_documentation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_effect_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_fileglobal_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_group_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_ID.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_image_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_ipo_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_key_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_lamp_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_lattice_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_listBase.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_material_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_mesh_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_meshdata_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_meta_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_modifier_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_nla_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_object_force.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_object_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_oops_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_packedFile_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_property_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_radio_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_scene_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_screen_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_scriptlink_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_sdna_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_sensor_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_sequence_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_sound_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_space_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_text_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_texture_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_userdef_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_vec_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_vfont_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_view2d_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_view3d_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_wave_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\DNA_world_types.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="DNA_makesdna" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=DNA_makesdna - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "DNA_makesdna.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "DNA_makesdna.mak" CFG="DNA_makesdna - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "DNA_makesdna - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "DNA_makesdna - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "DNA_makesdna - Win32 MT DLL Release" (based on "Win32 (x86) Console Application") +!MESSAGE "DNA_makesdna - Win32 MT DLL Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "DNA_makesdna - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo /o"DNA_makesdna.bsc" +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 libguardedalloc.a BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /nodefaultlib:"libc.lib" /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\obj\windows\blender\blenlib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Building DNA +PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c +# End Special Build Tool + +!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo /o"DNA_makesdna.bsc" +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 libguardedalloc.a BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /pdbtype:sept /libpath:"..\..\..\..\lib\windows\guardedalloc\lib\debug" /libpath:"..\..\..\obj\windows\blender\blenlib\debug" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Desc=Building DNA +PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c +# End Special Build Tool + +!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "DNA_makesdna___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "DNA_makesdna___Win32_MT_DLL_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\mtdll" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo /o"DNA_makesdna.bsc" +# ADD BSC32 /nologo /o"DNA_makesdna.bsc" +LINK32=link.exe +# ADD BASE LINK32 BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /out:"..\..\..\source\blender\makesdna\intern\DNA_makesdna.exe" /libpath:"..\..\..\..\obj\windows\blender\blenlib" +# SUBTRACT BASE LINK32 /pdb:none +# ADD LINK32 libguardedalloc.a /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /machine:I386 /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\obj\windows\blender\blenlib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c +# End Special Build Tool + +!ELSEIF "$(CFG)" == "DNA_makesdna - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "DNA_makesdna___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "DNA_makesdna___Win32_MT_DLL_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\source\blender\makesdna\intern" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\makesdna\mtdll_debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo /o"DNA_makesdna.bsc" +# ADD BSC32 /nologo /o"DNA_makesdna.bsc" +LINK32=link.exe +# ADD BASE LINK32 BLI_blenlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /out:"..\..\..\source\blender\makesdna\debug\DNA_makesdna.exe" /pdbtype:sept /libpath:"..\..\..\..\obj\windows\blender\blenlib\debug" +# SUBTRACT BASE LINK32 /pdb:none +# ADD LINK32 libguardedalloc.a /nologo /subsystem:console /pdb:"DNA_makesdna.pdb" /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\windows\guardedalloc\lib" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=CD ..\..\..\source\blender\makesdna\intern\ DNA_makesdna.exe dna.c +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "DNA_makesdna - Win32 Release" +# Name "DNA_makesdna - Win32 Debug" +# Name "DNA_makesdna - Win32 MT DLL Release" +# Name "DNA_makesdna - Win32 MT DLL Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\intern\makesdna.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_action_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_actuator_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_armature_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_camera_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_constraint_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_controller_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_curve_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_customdata_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_documentation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_effect_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_fileglobal_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_group_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_ID.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_image_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_ipo_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_key_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_lamp_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_lattice_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_listBase.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_material_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_mesh_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_meshdata_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_meta_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_modifier_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_nla_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_object_force.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_object_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_oops_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_packedFile_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_property_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_radio_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_scene_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_screen_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_scriptlink_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_sdna_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_sensor_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_sequence_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_sound_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_space_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_text_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_texture_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_userdef_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_vec_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_vfont_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_view2d_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_view3d_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_wave_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\DNA_world_types.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/radiosity/BRA_radiosity.dsp b/projectfiles/blender/radiosity/BRA_radiosity.dsp index be9e33e311f..4bae7c4e50f 100644 --- a/projectfiles/blender/radiosity/BRA_radiosity.dsp +++ b/projectfiles/blender/radiosity/BRA_radiosity.dsp @@ -1,133 +1,133 @@ -# Microsoft Developer Studio Project File - Name="BRA_radiosity" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BRA_radiosity - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BRA_radiosity.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BRA_radiosity.mak" CFG="BRA_radiosity - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BRA_radiosity - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BRA_radiosity - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BRA_radiosity - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\radiosity" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\radiosity" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\intern\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BRA_radiosity - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\radiosity\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\radiosity\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\intern\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BRA_radiosity - Win32 Release" -# Name "BRA_radiosity - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\raddisplay.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radfactors.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radio.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radnode.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radpostprocess.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radpreprocess.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\intern\source\radrender.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\extern\include\radio.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\radiosity\extern\include\radio_types.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BRA_radiosity" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BRA_radiosity - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BRA_radiosity.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BRA_radiosity.mak" CFG="BRA_radiosity - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BRA_radiosity - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BRA_radiosity - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BRA_radiosity - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\radiosity" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\radiosity" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\intern\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BRA_radiosity - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\radiosity\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\radiosity\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\render\intern\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BRA_radiosity - Win32 Release" +# Name "BRA_radiosity - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\raddisplay.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radfactors.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radio.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radnode.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radpostprocess.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radpreprocess.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\intern\source\radrender.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\extern\include\radio.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\radiosity\extern\include\radio_types.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/render/BRE_render.dsp b/projectfiles/blender/render/BRE_render.dsp index 7d29bce934c..2e41812071f 100644 --- a/projectfiles/blender/render/BRE_render.dsp +++ b/projectfiles/blender/render/BRE_render.dsp @@ -1,192 +1,192 @@ -# Microsoft Developer Studio Project File - Name="BRE_render" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BRE_render - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BRE_render.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BRE_render.mak" CFG="BRE_render - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BRE_render - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BRE_render - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BRE_render - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\render" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\kernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\intern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender" /I "..\..\..\source\blender\yafray" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BRE_render - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\render\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\kernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\intern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender" /I "..\..\..\source\blender\yafray" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BRE_render - Win32 Release" -# Name "BRE_render - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\convertblender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\envmap.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\gammaCorrectionTables.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\imagetexture.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\initrender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\pipeline.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\pixelblending.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\pixelshading.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\ray.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\rendercore.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\renderdatabase.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\shadbuf.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\texture.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\source\zbuf.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\edgeRender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\envmap.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\gammaCorrectionTables.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\initrender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\pixelblending.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\pixelshading.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\rendercore.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\shadbuf.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\texture.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\render\intern\include\zbuf.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BRE_render" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BRE_render - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BRE_render.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BRE_render.mak" CFG="BRE_render - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BRE_render - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BRE_render - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BRE_render - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\render" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\kernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\intern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender" /I "..\..\..\source\blender\yafray" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BRE_render - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\render\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\kernel\gen_messaging" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\kernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\intern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender" /I "..\..\..\source\blender\yafray" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "WITH_QUICKTIME" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BRE_render - Win32 Release" +# Name "BRE_render - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\convertblender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\envmap.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\gammaCorrectionTables.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\imagetexture.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\initrender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\pipeline.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\pixelblending.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\pixelshading.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\ray.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\rendercore.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\renderdatabase.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\shadbuf.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\texture.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\source\zbuf.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\edgeRender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\envmap.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\gammaCorrectionTables.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\initrender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\pixelblending.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\pixelshading.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\rendercore.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\shadbuf.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\texture.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\render\intern\include\zbuf.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/renderconverter/BRE_renderconverter.dsp b/projectfiles/blender/renderconverter/BRE_renderconverter.dsp index 4b3729061a8..6f07a365069 100644 --- a/projectfiles/blender/renderconverter/BRE_renderconverter.dsp +++ b/projectfiles/blender/renderconverter/BRE_renderconverter.dsp @@ -1,102 +1,102 @@ -# Microsoft Developer Studio Project File - Name="BRE_renderconverter" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BRE_renderconverter - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BRE_renderconverter.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BRE_renderconverter.mak" CFG="BRE_renderconverter - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BRE_renderconverter - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BRE_renderconverter - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BRE_renderconverter - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\renderconverter" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\renderconverter" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\yafray" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BRE_renderconverter - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BRE_renderconverter___Win32_Debug" -# PROP BASE Intermediate_Dir "BRE_renderconverter___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\render\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\yafray" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x413 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\renderconverter\debug\BRE_renderconverter.lib" - -!ENDIF - -# Begin Target - -# Name "BRE_renderconverter - Win32 Release" -# Name "BRE_renderconverter - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\renderconverter\intern\convertBlenderScene.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\renderconverter\RE_renderconverter.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BRE_renderconverter" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BRE_renderconverter - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BRE_renderconverter.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BRE_renderconverter.mak" CFG="BRE_renderconverter - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BRE_renderconverter - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BRE_renderconverter - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BRE_renderconverter - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\renderconverter" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\renderconverter" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\yafray" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BRE_renderconverter - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BRE_renderconverter___Win32_Debug" +# PROP BASE Intermediate_Dir "BRE_renderconverter___Win32_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\render\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\render\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\yafray" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\render\extern\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x413 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\renderconverter\debug\BRE_renderconverter.lib" + +!ENDIF + +# Begin Target + +# Name "BRE_renderconverter - Win32 Release" +# Name "BRE_renderconverter - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\renderconverter\intern\convertBlenderScene.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\renderconverter\RE_renderconverter.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/src/BL_src.dsp b/projectfiles/blender/src/BL_src.dsp index d6a1c3945e9..82bc14bc0a8 100644 --- a/projectfiles/blender/src/BL_src.dsp +++ b/projectfiles/blender/src/BL_src.dsp @@ -1,1040 +1,1040 @@ -# Microsoft Developer Studio Project File - Name="BL_src" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_SRC - WIN32 DEBUG -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_src.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_src.mak" CFG="BL_SRC - WIN32 DEBUG" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_src - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_src - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_src - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\src" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\sdl\include\\" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\renderui" /I "..\..\..\..\lib\windows\soundsystem\include\\" /I "..\..\..\..\lib\windows\python\include\python2.0\\" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\blender\ftfont" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\lib\windows\bsp\include" /I "..\..\..\..\lib\windows\opennl\include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "xGAMEBLENDER" /D "WITH_QUICKTIME" /D "INTERNATIONAL" /FR /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "BL_src - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\src\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\sdl\include\\" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\renderui" /I "..\..\..\..\lib\windows\soundsystem\include\\" /I "..\..\..\..\lib\windows\python\include\python2.0\\" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\blender\ftfont" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\lib\windows\bsp\include" /I "..\..\..\..\lib\windows\opennl\include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "xGAMEBLENDER" /D "WITH_QUICKTIME" /D "INTERNATIONAL" /U "_DEBUG" /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "BL_src - Win32 Release" -# Name "BL_src - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\src\B.blend.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\Bfont.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\bfont.ttf.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\blenderbuttons.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\booleanops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\booleanops_mesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\butspace.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_editing.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_logic.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_object.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_scene.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_script.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\buttons_shading.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\cmap.tga.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\cmovie.tga.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\cursors.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawaction.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawarmature.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawdeps.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawimage.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawimasel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawipo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawmesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawnla.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawnode.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawobject.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawoops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawscene.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawscript.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawseq.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawsound.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawtext.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawtime.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\drawview.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\edit.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editaction.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editarmature.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editconstraint.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editcurve.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editdeform.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editface.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editfont.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editgroup.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editimasel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editipo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editipo_lib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editipo_mods.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editkey.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editlattice.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmball.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh_add.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh_lib.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh_loop.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh_mods.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmesh_tools.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editmode_undo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editnla.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editnode.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editobject.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editoops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editscreen.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editseq.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editsima.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editsound.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\edittime.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\editview.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\eventdebug.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\filesel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\fluidsim.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\ghostwinlay.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\glutil.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\hddaudio.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_action.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_buttonswin.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_filesel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_image.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_imasel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_info.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_ipo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_nla.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_node.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_oops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_script.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_seq.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_sound.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_text.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_time.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\header_view3d.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\headerbuttons.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\imagepaint.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\imasel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\interface.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\interface_draw.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\interface_icons.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\interface_panel.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\keyval.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\language.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\lorem.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\mainqueue.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\meshtools.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\multires.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\mywindow.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\oops.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\outliner.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\parametrizer.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\playanim.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\blenpluginapi\intern\pluginapi.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\poseobject.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\preview.blend.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\previewrender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\renderwin.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\resources.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\retopo.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\scrarea.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\screendump.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\sculptmode.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\seqaudio.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\seqeffects.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\seqscopes.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\sequence.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\space.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\spacetypes.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\splash.jpg.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\swapbuffers.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\toets.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\toolbox.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_constraints.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_conversions.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_generics.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_manipulator.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_numinput.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\transform_snap.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\unwrapper.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\usiblender.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\view.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\vpaint.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\writeavicodec.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\writeimage.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\writemovie.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_drawaction.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_drawmesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_drawobject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_editcurve.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_editface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_editmball.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_editobject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_sculptmode.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_unwrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BDR_vpaint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_butspace.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_cursors.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawimage.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawoops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawscene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawscript.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawseq.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_drawtext.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editaction.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editarmature.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editconstraint.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editdeform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editfont.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editgroup.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editkey.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editlattice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editmesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editmode_undo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editnla.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editoops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editsca.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editseq.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editsima.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editsound.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_editview.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_fsmenu.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_gl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_glutil.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_graphics.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_imasel.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_interface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_keyval.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_language.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_mainqueue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_meshtools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_mywindow.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_oops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_outliner.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_poseobject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_previewrender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_renderwin.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_resources.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_retopo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_scrarea.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_screen.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_space.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_spacetypes.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_tbcallback.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_toets.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_toolbox.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_transform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_usiblender.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_writeavicodec.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_writeimage.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BIF_writemovie.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\blendef.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BPI_script.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_buttons.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_drawimasel.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_drawipo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_drawnla.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_drawoops.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_drawview.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_edit.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_editaction.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_editaction_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_editipo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_editipo_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_editnla_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_filesel.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_headerbuttons.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_seqaudio.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_sequence.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_time.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_trans_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_types.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\BSE_view.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\butspace.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\editmesh.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\multires.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\parametrizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\parametrizer_intern.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\include\transform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\winlay.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_src" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_SRC - WIN32 DEBUG +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_src.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_src.mak" CFG="BL_SRC - WIN32 DEBUG" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_src - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_src - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_src - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\src" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\sdl\include\\" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\renderui" /I "..\..\..\..\lib\windows\soundsystem\include\\" /I "..\..\..\..\lib\windows\python\include\python2.0\\" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\blender\ftfont" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\lib\windows\bsp\include" /I "..\..\..\..\lib\windows\opennl\include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "xGAMEBLENDER" /D "WITH_QUICKTIME" /D "INTERNATIONAL" /FR /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "BL_src - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\src\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\sdl\include\\" /I "..\..\..\source\blender\img" /I "..\..\..\source\blender\renderui" /I "..\..\..\..\lib\windows\soundsystem\include\\" /I "..\..\..\..\lib\windows\python\include\python2.0\\" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\blender\ftfont" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\blender\quicktime" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\lib\windows\bsp\include" /I "..\..\..\..\lib\windows\opennl\include" /I "..\..\..\intern\elbeem\extern" /I "..\..\..\..\lib\windows\memutil\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "xGAMEBLENDER" /D "WITH_QUICKTIME" /D "INTERNATIONAL" /U "_DEBUG" /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "BL_src - Win32 Release" +# Name "BL_src - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\src\B.blend.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\Bfont.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\bfont.ttf.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\blenderbuttons.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\booleanops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\booleanops_mesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\butspace.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_editing.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_logic.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_object.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_scene.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_script.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\buttons_shading.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\cmap.tga.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\cmovie.tga.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\cursors.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawaction.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawarmature.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawdeps.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawimage.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawimasel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawipo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawmesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawnla.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawnode.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawoops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawscene.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawscript.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawseq.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawsound.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawtext.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawtime.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\drawview.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\edit.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editaction.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editarmature.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editconstraint.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editcurve.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editdeform.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editface.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editfont.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editgroup.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editimasel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editipo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editipo_lib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editipo_mods.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editkey.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editlattice.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmball.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh_add.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh_lib.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh_loop.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh_mods.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmesh_tools.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editmode_undo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editnla.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editnode.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editoops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editscreen.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editseq.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editsima.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editsound.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\edittime.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\editview.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\eventdebug.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\filesel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\fluidsim.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\ghostwinlay.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\glutil.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\hddaudio.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_action.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_buttonswin.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_filesel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_image.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_imasel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_info.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_ipo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_nla.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_node.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_oops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_script.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_seq.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_sound.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_text.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_time.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\header_view3d.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\headerbuttons.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\imagepaint.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\imasel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\interface.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\interface_draw.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\interface_icons.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\interface_panel.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\keyval.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\language.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\lorem.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\mainqueue.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\meshtools.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\multires.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\mywindow.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\oops.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\outliner.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\parametrizer.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\playanim.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\blenpluginapi\intern\pluginapi.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\poseobject.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\preview.blend.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\previewrender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\renderwin.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\resources.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\retopo.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\scrarea.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\screendump.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\sculptmode.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\seqaudio.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\seqeffects.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\seqscopes.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\sequence.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\space.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\spacetypes.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\splash.jpg.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\swapbuffers.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\toets.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\toolbox.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_constraints.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_conversions.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_generics.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_manipulator.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_numinput.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\transform_snap.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\unwrapper.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\usiblender.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\view.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\vpaint.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\writeavicodec.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\writeimage.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\writemovie.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_drawaction.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_drawmesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_drawobject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_editcurve.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_editface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_editmball.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_editobject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_sculptmode.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_unwrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BDR_vpaint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_butspace.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_cursors.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawimage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawoops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawscene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawscript.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawseq.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_drawtext.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editaction.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editarmature.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editconstraint.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editdeform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editfont.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editgroup.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editkey.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editlattice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editmesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editmode_undo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editnla.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editoops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editsca.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editseq.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editsima.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editsound.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_editview.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_fsmenu.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_gl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_glutil.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_graphics.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_imasel.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_interface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_keyval.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_language.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_mainqueue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_meshtools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_mywindow.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_oops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_outliner.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_poseobject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_previewrender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_renderwin.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_resources.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_retopo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_scrarea.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_screen.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_space.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_spacetypes.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_tbcallback.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_toets.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_toolbox.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_transform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_usiblender.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_writeavicodec.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_writeimage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BIF_writemovie.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\blendef.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BPI_script.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_buttons.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_drawimasel.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_drawipo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_drawnla.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_drawoops.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_drawview.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_edit.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_editaction.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_editaction_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_editipo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_editipo_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_editnla_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_filesel.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_headerbuttons.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_seqaudio.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_sequence.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_time.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_trans_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\BSE_view.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\butspace.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\editmesh.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\multires.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\parametrizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\parametrizer_intern.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\include\transform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\winlay.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/blender/src/BL_src_cre.dsp b/projectfiles/blender/src/BL_src_cre.dsp index 1705b45a96f..448f0962dcf 100644 --- a/projectfiles/blender/src/BL_src_cre.dsp +++ b/projectfiles/blender/src/BL_src_cre.dsp @@ -1,102 +1,102 @@ -# Microsoft Developer Studio Project File - Name="BL_src_cre" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=BL_src_cre - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BL_src_cre.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BL_src_cre.mak" CFG="BL_src_cre - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BL_src_cre - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "BL_src_cre - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BL_src_cre - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\blender\src_cre" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src_cre" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderui" /I "..\..\..\source\gameengine\soundsystem\\" /I "..\..\..\..\lib\windows\python\include\python2.2\\" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "NAN_GAME" /D "GAME" /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\src\BL_src_cre.lib" - -!ELSEIF "$(CFG)" == "BL_src_cre - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\blender\src_cre\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src_cre\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderui" /I "..\..\..\source\gameengine\soundsystem\\" /I "..\..\..\..\lib\windows\python\include\python2.2\\" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "NAN_GAME" /D "GAME" /U "_DEBUG" /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\src\debug\BL_src_cre.lib" - -!ENDIF - -# Begin Target - -# Name "BL_src_cre - Win32 Release" -# Name "BL_src_cre - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\blender\src\cre\license.jpeg.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\blender\src\cre\license_key.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BL_src_cre" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=BL_src_cre - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BL_src_cre.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BL_src_cre.mak" CFG="BL_src_cre - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BL_src_cre - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "BL_src_cre - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BL_src_cre - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\blender\src_cre" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src_cre" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderui" /I "..\..\..\source\gameengine\soundsystem\\" /I "..\..\..\..\lib\windows\python\include\python2.2\\" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "NAN_GAME" /D "GAME" /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\src\BL_src_cre.lib" + +!ELSEIF "$(CFG)" == "BL_src_cre - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\blender\src_cre\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\blender\src_cre\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\renderui" /I "..\..\..\source\gameengine\soundsystem\\" /I "..\..\..\..\lib\windows\python\include\python2.2\\" /I "..\..\..\source\blender\renderconverter" /I "..\..\..\source\blender\verify" /I "..\..\..\source\blender\readstreamglue" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\blender\blenloader" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\radiosity\extern\include" /I "..\..\..\source\blender\render\extern\include" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\..\lib\windows\decimation\include" /I "..\..\..\source\blender\blenpluginapi\\" /I "..\..\..\..\lib\windows\blenkey\include" /I "..\..\..\..\lib\windows\pthreads\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "_CONSOLE" /D "NAN_GAME" /D "GAME" /U "_DEBUG" /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\obj\windows\blender\src\debug\BL_src_cre.lib" + +!ENDIF + +# Begin Target + +# Name "BL_src_cre - Win32 Release" +# Name "BL_src_cre - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\blender\src\cre\license.jpeg.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\blender\src\cre\license_key.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# End Target +# End Project diff --git a/projectfiles/datatoc/datatoc.dsp b/projectfiles/datatoc/datatoc.dsp index 4e55182bb2c..f5dd5348fda 100644 --- a/projectfiles/datatoc/datatoc.dsp +++ b/projectfiles/datatoc/datatoc.dsp @@ -1,100 +1,100 @@ -# Microsoft Developer Studio Project File - Name="datatoc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=datatoc - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "datatoc.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "datatoc.mak" CFG="datatoc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "datatoc - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "datatoc - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "datatoc - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "datatoc - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "datatoc - Win32 Release" -# Name "datatoc - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\release\datafiles\datatoc.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="datatoc" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=datatoc - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "datatoc.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "datatoc.mak" CFG="datatoc - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "datatoc - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "datatoc - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "datatoc - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "datatoc - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "datatoc - Win32 Release" +# Name "datatoc - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\release\datafiles\datatoc.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/blenderhook/KX_blenderhook.dsp b/projectfiles/gameengine/blenderhook/KX_blenderhook.dsp index c3657ed30c5..f43db4bf02b 100644 --- a/projectfiles/gameengine/blenderhook/KX_blenderhook.dsp +++ b/projectfiles/gameengine/blenderhook/KX_blenderhook.dsp @@ -1,161 +1,161 @@ -# Microsoft Developer Studio Project File - Name="KX_blenderhook" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=KX_blenderhook - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "KX_blenderhook.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "KX_blenderhook.mak" CFG="KX_blenderhook - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "KX_blenderhook - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_blenderhook - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "KX_blenderhook - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\blenderhook" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\blenderhook" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\extern\solid" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\gameengine\Converter\\" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\gameengine\ketsji" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\blenloader" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_blenderhook - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\blenderhook\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\blenderhook\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\extern\solid" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\gameengine\Converter\\" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\gameengine\ketsji" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\blenloader" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "KX_blenderhook - Win32 Release" -# Name "KX_blenderhook - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\BL_KetsjiEmbedStart.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderCanvas.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderGL.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderInputDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderKeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderMouseDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderPolyMaterial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderRenderTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderSystem.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderCanvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderGL.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderMouseDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderPolyMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderSystem.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="KX_blenderhook" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=KX_blenderhook - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "KX_blenderhook.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "KX_blenderhook.mak" CFG="KX_blenderhook - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "KX_blenderhook - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_blenderhook - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "KX_blenderhook - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\blenderhook" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\blenderhook" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\extern\solid" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\gameengine\Converter\\" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\gameengine\ketsji" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\blenloader" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_blenderhook - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\blenderhook\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\blenderhook\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\extern\solid" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\source\gameengine\Converter\\" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\gameengine\ketsji" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\blender\misc" /I "..\..\..\source\blender\blenloader" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "KX_blenderhook - Win32 Release" +# Name "KX_blenderhook - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\BL_KetsjiEmbedStart.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderCanvas.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderGL.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderInputDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderKeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderMouseDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderPolyMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderRenderTools.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderSystem.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderCanvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderGL.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderMouseDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderPolyMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\BlenderRoutines\KX_BlenderSystem.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/converter/KX_converter.dsp b/projectfiles/gameengine/converter/KX_converter.dsp index 96826d3004b..5eb80f58305 100644 --- a/projectfiles/gameengine/converter/KX_converter.dsp +++ b/projectfiles/gameengine/converter/KX_converter.dsp @@ -1,278 +1,278 @@ -# Microsoft Developer Studio Project File - Name="KX_converter" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=KX_converter - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "KX_converter.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "KX_converter.mak" CFG="KX_converter - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "KX_converter - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_converter - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_converter - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_converter - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "KX_converter - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\source\gameengine\physics\Dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\\gameengine\physics\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "USE_SUMO_SOLID" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_converter - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\debug" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\source\gameengine\physics\Dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\\gameengine\physics\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /D "WIN32" /D "_MBCS" /D "_LIB" /D "USE_SUMO_SOLID" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_converter - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "KX_converter___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "KX_converter___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\mtdll_debug" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\converter\debug\KX_converter.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_converter - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "KX_converter___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "KX_converter___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\mtdll" -# PROP Target_Dir "" -MTL=midl.exe -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\converter\KX_converter.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "KX_converter - Win32 Release" -# Name "KX_converter - Win32 Debug" -# Name "KX_converter - Win32 MT DLL Debug" -# Name "KX_converter - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_ActionActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_ArmatureObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_BlenderDataConversion.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_DeformableGameObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_MeshDeformer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_SkinDeformer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_SkinMeshObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BlenderWorldInfo.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Bullet\CcdPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Bullet\CcdPhysicsEnvironment.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderScalarInterpolator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderSceneConverter.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertActuators.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertControllers.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertProperties.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertSensors.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_IpoConvert.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_ActionActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_ArmatureObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_BlenderDataConversion.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_DeformableGameObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_MeshDeformer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_SkinDeformer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BL_SkinMeshObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\BlenderWorldInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderScalarInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderSceneConverter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertActuators.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertControllers.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertProperties.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertSensors.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Converter\KX_IpoConvert.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="KX_converter" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=KX_converter - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "KX_converter.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "KX_converter.mak" CFG="KX_converter - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "KX_converter - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_converter - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_converter - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_converter - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "KX_converter - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\source\gameengine\physics\Dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\\gameengine\physics\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "USE_SUMO_SOLID" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_converter - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\debug" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\source\gameengine\physics\Dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\\gameengine\physics\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /D "WIN32" /D "_MBCS" /D "_LIB" /D "USE_SUMO_SOLID" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_converter - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "KX_converter___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "KX_converter___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\mtdll_debug" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\converter\debug\KX_converter.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_converter - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "KX_converter___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "KX_converter___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\converter\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\converter\mtdll" +# PROP Target_Dir "" +MTL=midl.exe +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\ode" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\gameengine\BlenderRoutines" /I "..\..\..\source\sumo\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\source\gameengine\Ketsji" /I "..\..\..\source\gameengine\SceneGraph" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\source\gameengine\soundsystem\snd_blenderwavecache" /I "..\..\..\source\blender\blenlib" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\BlOde" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\converter\KX_converter.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "KX_converter - Win32 Release" +# Name "KX_converter - Win32 Debug" +# Name "KX_converter - Win32 MT DLL Debug" +# Name "KX_converter - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_ActionActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_ArmatureObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_BlenderDataConversion.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_DeformableGameObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_MeshDeformer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_SkinDeformer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_SkinMeshObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BlenderWorldInfo.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Bullet\CcdPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Bullet\CcdPhysicsEnvironment.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderScalarInterpolator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderSceneConverter.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertActuators.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertControllers.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertProperties.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertSensors.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_IpoConvert.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_ActionActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_ArmatureObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_BlenderDataConversion.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_DeformableGameObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_MeshDeformer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_SkinDeformer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BL_SkinMeshObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\BlenderWorldInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderScalarInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_BlenderSceneConverter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertActuators.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertControllers.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertProperties.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_ConvertSensors.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Converter\KX_IpoConvert.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/expression/EXP_expressions.dsp b/projectfiles/gameengine/expression/EXP_expressions.dsp index 94ded903d41..7fa6e9da45e 100644 --- a/projectfiles/gameengine/expression/EXP_expressions.dsp +++ b/projectfiles/gameengine/expression/EXP_expressions.dsp @@ -1,302 +1,302 @@ -# Microsoft Developer Studio Project File - Name="EXP_expressions" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=EXP_expressions - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "EXP_expressions.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "EXP_expressions.mak" CFG="EXP_expressions - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "EXP_expressions - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "EXP_expressions - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "EXP_expressions - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "EXP_expressions - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "EXP_expressions - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\intern\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "EXP_expressions - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\intern\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "EXP_expressions - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "EXP_expressions___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "EXP_expressions___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\expressions\debug\EXP_expressions.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "EXP_expressions - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "EXP_expressions___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "EXP_expressions___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\expressions\EXP_expressions.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "EXP_expressions - Win32 Release" -# Name "EXP_expressions - Win32 Debug" -# Name "EXP_expressions - Win32 MT DLL Debug" -# Name "EXP_expressions - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\BoolValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ConstExpr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\EmptyValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ErrorValue.cpp -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Expressions\EXP_C-Api.cpp" -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Expression.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\FloatValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IdentifierExpr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IfExpr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\InputParser.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IntValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\KX_HashedPtr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ListValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Operator1Expr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Operator2Expr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\PyObjectPlus.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\StringValue.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Value.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\VectorValue.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\BoolValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ConstExpr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\EmptyValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ErrorValue.h -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Expressions\EXP_C-Api.h" -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Expression.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\FloatValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IdentifierExpr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IfExpr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\InputParser.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\IntValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\KX_HashedPtr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\ListValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Operator1Expr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Operator2Expr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\PyObjectPlus.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\StringValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\Value.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\VectorValue.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Expressions\VoidValue.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="EXP_expressions" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=EXP_expressions - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "EXP_expressions.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "EXP_expressions.mak" CFG="EXP_expressions - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "EXP_expressions - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "EXP_expressions - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "EXP_expressions - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "EXP_expressions - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "EXP_expressions - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\intern\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "EXP_expressions - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\intern\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "EXP_expressions - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "EXP_expressions___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "EXP_expressions___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\expressions\debug\EXP_expressions.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "EXP_expressions - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "EXP_expressions___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "EXP_expressions___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\expressions\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\expressions\EXP_expressions.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "EXP_expressions - Win32 Release" +# Name "EXP_expressions - Win32 Debug" +# Name "EXP_expressions - Win32 MT DLL Debug" +# Name "EXP_expressions - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\BoolValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ConstExpr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\EmptyValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ErrorValue.cpp +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Expressions\EXP_C-Api.cpp" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Expression.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\FloatValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IdentifierExpr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IfExpr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\InputParser.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IntValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\KX_HashedPtr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ListValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Operator1Expr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Operator2Expr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\PyObjectPlus.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\StringValue.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Value.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\VectorValue.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\BoolValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ConstExpr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\EmptyValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ErrorValue.h +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Expressions\EXP_C-Api.h" +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Expression.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\FloatValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IdentifierExpr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IfExpr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\InputParser.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\IntValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\KX_HashedPtr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\ListValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Operator1Expr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Operator2Expr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\PyObjectPlus.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\StringValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\Value.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\VectorValue.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Expressions\VoidValue.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/gamelogic/SCA_gamelogic.dsp b/projectfiles/gameengine/gamelogic/SCA_gamelogic.dsp index 45be1cf2772..fcdbf33a80c 100644 --- a/projectfiles/gameengine/gamelogic/SCA_gamelogic.dsp +++ b/projectfiles/gameengine/gamelogic/SCA_gamelogic.dsp @@ -1,406 +1,406 @@ -# Microsoft Developer Studio Project File - Name="SCA_GameLogic" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SCA_GameLogic - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SCA_GameLogic.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SCA_GameLogic.mak" CFG="SCA_GameLogic - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SCA_GameLogic - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SCA_GameLogic - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SCA_GameLogic - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SCA_GameLogic - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SCA_GameLogic - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SCA_GameLogic___Win32_Debug" -# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SCA_GameLogic___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gamelogic\debug\SCA_GameLogic.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SCA_GameLogic___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gamelogic\SCA_GameLogic.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "SCA_GameLogic - Win32 Release" -# Name "SCA_GameLogic - Win32 Debug" -# Name "SCA_GameLogic - Win32 MT DLL Debug" -# Name "SCA_GameLogic - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Group "JoystickImp" - -# PROP Default_Filter "cpp" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_Joystick.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickEvents.cpp -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ANDController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_EventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ExpressionController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IScene.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ISensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_LogicManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ORController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertySensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PythonController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomNumberGenerator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_TimeEventManager.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "Joystick" - -# PROP Default_Filter "h" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_Joystick.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickDefines.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickPrivate.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ANDController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_EventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ExpressionController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IScene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ISensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ORController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertySensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PythonController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomNumberGenerator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\GameLogic\SCA_TimeEventManager.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SCA_GameLogic" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SCA_GameLogic - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SCA_GameLogic.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SCA_GameLogic.mak" CFG="SCA_GameLogic - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SCA_GameLogic - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SCA_GameLogic - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SCA_GameLogic - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SCA_GameLogic - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SCA_GameLogic - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SCA_GameLogic___Win32_Debug" +# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SCA_GameLogic___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gamelogic\debug\SCA_GameLogic.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SCA_GameLogic - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SCA_GameLogic___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SCA_GameLogic___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\gamelogic\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\sdl\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gamelogic\SCA_GameLogic.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "SCA_GameLogic - Win32 Release" +# Name "SCA_GameLogic - Win32 Debug" +# Name "SCA_GameLogic - Win32 MT DLL Debug" +# Name "SCA_GameLogic - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "JoystickImp" + +# PROP Default_Filter "cpp" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_Joystick.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickEvents.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ANDController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_EventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ExpressionController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IScene.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ISensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_LogicManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ORController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertySensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PythonController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomNumberGenerator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_TimeEventManager.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "Joystick" + +# PROP Default_Filter "h" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_Joystick.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickDefines.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\Joystick\SCA_JoystickPrivate.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ANDController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_EventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ExpressionController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_IScene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ISensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_JoystickSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_MouseSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_ORController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertyEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PropertySensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_PythonController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomNumberGenerator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_RandomSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\GameLogic\SCA_TimeEventManager.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/axctl/GP_axctl.dsp b/projectfiles/gameengine/gameplayer/axctl/GP_axctl.dsp index 99b6798bf59..56ba052b32d 100644 --- a/projectfiles/gameengine/gameplayer/axctl/GP_axctl.dsp +++ b/projectfiles/gameengine/gameplayer/axctl/GP_axctl.dsp @@ -1,253 +1,253 @@ -# Microsoft Developer Studio Project File - Name="GP_axctl" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=GP_axctl - Win32 MT DLL Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_axctl.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_axctl.mak" CFG="GP_axctl - Win32 MT DLL Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_axctl - Win32 MT DLL Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "GP_axctl - Win32 MT DLL Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_axctl - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_axctl___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "GP_axctl___Win32_MT_DLL_Debug" -# PROP BASE Target_Ext "ocx" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll_debug" -# PROP Target_Ext "ocx" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\GamePlayer\common" /I "..\..\..\..\source\gameengine\GamePlayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /U "_DEBUG" /YX /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 opengl32.lib glu32.lib glaux.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/ActiveXgp.ocx" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" -# SUBTRACT BASE LINK32 /nodefaultlib -# ADD LINK32 openal_static.lib libmoto.a libguardedalloc.a libbmfont.a libstring.a ws2_32.lib opengl32.lib glu32.lib glaux.lib dxguid.lib ole32.lib vfw32.lib libblenkey.a libeay32.lib libz.a libpng.a libjpeg.a odelib.lib /nologo /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrt.lib" /out:"..\..\..\..\obj\windows\debug\Blender3DPlugin.ocx" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\ode\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib" /libpath:"../../../../../lib/windows/bmfont/lib" /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/python/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont/lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\\" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "GP_axctl - Win32 MT DLL Release" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "GP_axctl___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "GP_axctl___Win32_MT_DLL_Release" -# PROP BASE Target_Ext "ocx" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll" -# PROP Target_Ext "ocx" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\GamePlayer\common" /I "..\..\..\..\source\gameengine\GamePlayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 opengl32.lib glu32.lib glaux.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/ActiveXgp.ocx" -# ADD LINK32 openal_static.lib libmoto.a libguardedalloc.a libbmfont.a libstring.a ws2_32.lib opengl32.lib glu32.lib glaux.lib dxguid.lib ole32.lib vfw32.lib libblenkey.a libeay32.lib libz.a libpng.a libjpeg.a odelib.lib /nologo /subsystem:windows /dll /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrtd.lib" /out:"..\..\..\..\obj\windows\Blender3DPlugin.ocx" /libpath:"..\..\..\..\..\lib\windows\ode\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont/lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "GP_axctl - Win32 MT DLL Debug" -# Name "GP_axctl - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderDataPathProperty.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.def -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.odl -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.rc -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerPpg.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\CControlRefresher.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\MemoryResource.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\RawImageRsrc.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\SafeControl.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\StdAfx.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderDataPathProperty.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerPpg.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\CControlRefresher.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\MemoryResource.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\RawImageRsrc.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\Resource.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\SafeControl.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.ico -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.bmp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\splash.bmp -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ActiveXandNetscapeTest.html -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.html -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerDuo.html -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\load.blend -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_blender.raw -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_blender3d.raw -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_nan.raw -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ReadMe.txt -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ReadMeBuilding.txt -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_axctl" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=GP_axctl - Win32 MT DLL Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_axctl.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_axctl.mak" CFG="GP_axctl - Win32 MT DLL Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_axctl - Win32 MT DLL Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "GP_axctl - Win32 MT DLL Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_axctl - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 2 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_axctl___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "GP_axctl___Win32_MT_DLL_Debug" +# PROP BASE Target_Ext "ocx" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll_debug" +# PROP Target_Ext "ocx" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\GamePlayer\common" /I "..\..\..\..\source\gameengine\GamePlayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /U "_DEBUG" /YX /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 opengl32.lib glu32.lib glaux.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/ActiveXgp.ocx" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" +# SUBTRACT BASE LINK32 /nodefaultlib +# ADD LINK32 openal_static.lib libmoto.a libguardedalloc.a libbmfont.a libstring.a ws2_32.lib opengl32.lib glu32.lib glaux.lib dxguid.lib ole32.lib vfw32.lib libblenkey.a libeay32.lib libz.a libpng.a libjpeg.a odelib.lib /nologo /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrt.lib" /out:"..\..\..\..\obj\windows\debug\Blender3DPlugin.ocx" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\ode\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib" /libpath:"../../../../../lib/windows/bmfont/lib" /libpath:"../../../../../lib/windows/string/lib" /libpath:"../../../../../lib/windows/python/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont/lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\\" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "GP_axctl - Win32 MT DLL Release" + +# PROP BASE Use_MFC 2 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "GP_axctl___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "GP_axctl___Win32_MT_DLL_Release" +# PROP BASE Target_Ext "ocx" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 2 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\axctl\mtdll" +# PROP Target_Ext "ocx" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\GamePlayer\common" /I "..\..\..\..\source\gameengine\GamePlayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 opengl32.lib glu32.lib glaux.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/ActiveXgp.ocx" +# ADD LINK32 openal_static.lib libmoto.a libguardedalloc.a libbmfont.a libstring.a ws2_32.lib opengl32.lib glu32.lib glaux.lib dxguid.lib ole32.lib vfw32.lib libblenkey.a libeay32.lib libz.a libpng.a libjpeg.a odelib.lib /nologo /subsystem:windows /dll /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrtd.lib" /out:"..\..\..\..\obj\windows\Blender3DPlugin.ocx" /libpath:"..\..\..\..\..\lib\windows\ode\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\openal\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont/lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib\mt_dll" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "GP_axctl - Win32 MT DLL Debug" +# Name "GP_axctl - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderDataPathProperty.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.def +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.odl +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.rc +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerPpg.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\CControlRefresher.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\MemoryResource.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\RawImageRsrc.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\SafeControl.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\StdAfx.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderDataPathProperty.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerPpg.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\CControlRefresher.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\MemoryResource.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\RawImageRsrc.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\Resource.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\SafeControl.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.ico +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerCtl.bmp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\splash.bmp +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ActiveXandNetscapeTest.html +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayer.html +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\BlenderPlayerDuo.html +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\load.blend +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_blender.raw +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_blender3d.raw +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\logo_nan.raw +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ReadMe.txt +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ActiveX\ReadMeBuilding.txt +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/common/GP_common.dsp b/projectfiles/gameengine/gameplayer/common/GP_common.dsp index c1509608731..d3103c4f88a 100644 --- a/projectfiles/gameengine/gameplayer/common/GP_common.dsp +++ b/projectfiles/gameengine/gameplayer/common/GP_common.dsp @@ -1,255 +1,255 @@ -# Microsoft Developer Studio Project File - Name="GP_common" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=GP_common - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_common.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_common.mak" CFG="GP_common - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_common - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "GP_common - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "GP_common - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "GP_common - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_common - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "GP_common - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /FD /GZ /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "GP_common - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_common___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "GP_common___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gameplayer\common\debug\GP_common.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "GP_common - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "GP_common___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "GP_common___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gameplayer\common\GP_common.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "GP_common - Win32 Release" -# Name "GP_common - Win32 Debug" -# Name "GP_common - Win32 MT DLL Debug" -# Name "GP_common - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\bmfont.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Canvas.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Engine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_KeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawImage.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawLoadDotBlendArray.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawLogoArrays.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RenderTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_System.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Canvas.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Engine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_KeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_System.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Canvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Engine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_KeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_System.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Canvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Engine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_KeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_System.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\Makefile -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_common" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=GP_common - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_common.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_common.mak" CFG="GP_common - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_common - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "GP_common - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "GP_common - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "GP_common - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_common - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "GP_common - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /FD /GZ /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "GP_common - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_common___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "GP_common___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gameplayer\common\debug\GP_common.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "GP_common - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "GP_common___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "GP_common___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\common\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\..\source\gameengine\Converter" /I "..\..\..\..\source\gameengine\soundsystem\snd_dummy" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\GamePlayer\common\\" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\gameplayer\common\GP_common.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "GP_common - Win32 Release" +# Name "GP_common - Win32 Debug" +# Name "GP_common - Win32 MT DLL Debug" +# Name "GP_common - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\bmfont.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Canvas.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Engine.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_KeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawImage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawLoadDotBlendArray.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RawLogoArrays.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RenderTools.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_System.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Canvas.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Engine.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_KeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_System.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Canvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_Engine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_KeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_MouseDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_PolygonMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_RenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\GPC_System.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Canvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_Engine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_KeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\windows\GPW_System.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\common\Makefile +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/ghost/GP_ghost.dsp b/projectfiles/gameengine/gameplayer/ghost/GP_ghost.dsp index d569d6fceac..63ce23d2647 100644 --- a/projectfiles/gameengine/gameplayer/ghost/GP_ghost.dsp +++ b/projectfiles/gameengine/gameplayer/ghost/GP_ghost.dsp @@ -1,156 +1,156 @@ -# Microsoft Developer Studio Project File - Name="GP_ghost" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=GP_ghost - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_ghost.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_ghost.mak" CFG="GP_ghost - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_ghost - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_ghost - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_ghost - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ghost\" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\gameengine\Physics\Ode" /I "..\..\..\..\source\gameengine\Physics" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/readblenfile" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 libguardedalloc.a libstring.a libghost.a odelib.lib fmodvc.lib libbmfont.a ws2_32.lib kernel32.lib user32.lib gdi32.lib vfw32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.a opengl32.lib glu32.lib openal_static.lib dxguid.lib libblenkey.a libeay32.lib libpng.a libz.a libmoto.a /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"msvcrtd.lib" /nodefaultlib:"msvcprt.lib" /out:"..\..\..\..\obj\windows\blenderplayer.exe" /libpath:"..\..\..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\ghost\lib" /libpath:"..\..\..\..\..\lib\windows\jpeg/lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" /libpath:"..\..\..\..\..\lib\windows\zlib\lib" /libpath:"..\..\..\..\..\lib\windows\ode-0.03\lib" /libpath:"../../../../../lib/windows/fmod/lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "GP_ghost - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ghost\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Physics\Ode" /I "..\..\..\..\source\gameengine\Physics" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/readblenfile" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\ghost\include" /I "../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "dSINGLE" /U "_DEBUG" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 libguardedalloc.a libstring.a libghost.a odelib.lib fmodvc.lib libbmfont.a ws2_32.lib kernel32.lib user32.lib gdi32.lib vfw32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib openal_static.lib libjpeg.a dxguid.lib libblenkey.a libeay32.lib libpng.a libz.a libmoto.a /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"msvcrtd.lib" /nodefaultlib:"msvcprtd.lib" /out:"..\..\..\..\obj\windows\debug\blenderplayer.exe" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont\lib\\" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\string\lib\\" /libpath:"..\..\..\..\..\lib\windows\ghost\lib\\" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib\\" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\..\..\lib\windows\ode-0.03\lib" /libpath:"../../../../../lib/windows/fmod/lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "GP_ghost - Win32 Release" -# Name "GP_ghost - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Application.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Canvas.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_ghost.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_KeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\icons\winplayer.rc -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Application.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Canvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_KeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\..\..\..\source\icons\winplayer.ico -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\Makefile -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_ghost" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=GP_ghost - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_ghost.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_ghost.mak" CFG="GP_ghost - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_ghost - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_ghost - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_ghost - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ghost\" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\gameengine\Physics\Ode" /I "..\..\..\..\source\gameengine\Physics" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/readblenfile" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\ghost\include" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 libguardedalloc.a libstring.a libghost.a odelib.lib fmodvc.lib libbmfont.a ws2_32.lib kernel32.lib user32.lib gdi32.lib vfw32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.a opengl32.lib glu32.lib openal_static.lib dxguid.lib libblenkey.a libeay32.lib libpng.a libz.a libmoto.a /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"msvcrtd.lib" /nodefaultlib:"msvcprt.lib" /out:"..\..\..\..\obj\windows\blenderplayer.exe" /libpath:"..\..\..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont\lib" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\string\lib" /libpath:"..\..\..\..\..\lib\windows\ghost\lib" /libpath:"..\..\..\..\..\lib\windows\jpeg/lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib" /libpath:"..\..\..\..\..\lib\windows\zlib\lib" /libpath:"..\..\..\..\..\lib\windows\ode-0.03\lib" /libpath:"../../../../../lib/windows/fmod/lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" +# SUBTRACT LINK32 /pdb:none + +!ELSEIF "$(CFG)" == "GP_ghost - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ghost\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Physics\Ode" /I "..\..\..\..\source\gameengine\Physics" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\bmfont\include" /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/readblenfile" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\ghost\include" /I "../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "dSINGLE" /U "_DEBUG" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 libguardedalloc.a libstring.a libghost.a odelib.lib fmodvc.lib libbmfont.a ws2_32.lib kernel32.lib user32.lib gdi32.lib vfw32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib openal_static.lib libjpeg.a dxguid.lib libblenkey.a libeay32.lib libpng.a libz.a libmoto.a /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libc.lib" /nodefaultlib:"libcmt.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib:"msvcrtd.lib" /nodefaultlib:"msvcprtd.lib" /out:"..\..\..\..\obj\windows\debug\blenderplayer.exe" /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\ode\lib" /libpath:"..\..\..\..\..\lib\windows\bmfont\lib\\" /libpath:"..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"..\..\..\..\..\lib\windows\string\lib\\" /libpath:"..\..\..\..\..\lib\windows\ghost\lib\\" /libpath:"..\..\..\..\..\lib\windows\jpeg\lib" /libpath:"..\..\..\..\..\lib\windows\moto\lib\\" /libpath:"..\..\..\..\..\lib\windows\zlib\lib\\" /libpath:"..\..\..\..\..\lib\windows\png\lib\\" /libpath:"..\..\..\..\..\lib\windows\ode-0.03\lib" /libpath:"../../../../../lib/windows/fmod/lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib\\" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "GP_ghost - Win32 Release" +# Name "GP_ghost - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Application.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Canvas.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_ghost.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_KeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\icons\winplayer.rc +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Application.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_Canvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_KeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\GPG_System.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\..\..\source\icons\winplayer.ico +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\ghost\Makefile +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/glut/GP_glut.dsp b/projectfiles/gameengine/gameplayer/glut/GP_glut.dsp index 64315293ac6..7e3a2060f92 100644 --- a/projectfiles/gameengine/gameplayer/glut/GP_glut.dsp +++ b/projectfiles/gameengine/gameplayer/glut/GP_glut.dsp @@ -1,205 +1,205 @@ -# Microsoft Developer Studio Project File - Name="GP_glut" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=GP_glut - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_glut.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_glut.mak" CFG="GP_glut - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_glut - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_glut - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_glut - Win32 Profile" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_glut - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\glut" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\source\gameengine\SoundSystem" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" - -!ELSEIF "$(CFG)" == "GP_glut - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\glut\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" - -!ELSEIF "$(CFG)" == "GP_glut - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_glut___Win32_Profile" -# PROP BASE Intermediate_Dir "GP_glut___Win32_Profile" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "GP_glut___Win32_Profile" -# PROP Intermediate_Dir "GP_glut___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" -# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" - -!ENDIF - -# Begin Target - -# Name "GP_glut - Win32 Release" -# Name "GP_glut - Win32 Debug" -# Name "GP_glut - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutGamePlayer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutKeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutSystem.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutCanvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutPolygonMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutSystem.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_glut" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=GP_glut - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_glut.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_glut.mak" CFG="GP_glut - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_glut - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_glut - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_glut - Win32 Profile" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_glut - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\glut" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\source\gameengine\SoundSystem" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" + +!ELSEIF "$(CFG)" == "GP_glut - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\glut\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" + +!ELSEIF "$(CFG)" == "GP_glut - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_glut___Win32_Profile" +# PROP BASE Intermediate_Dir "GP_glut___Win32_Profile" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "GP_glut___Win32_Profile" +# PROP Intermediate_Dir "GP_glut___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\glut-3.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\source\gameengine\SoundSystem" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" +# ADD LINK32 glu32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\glut-3.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" + +!ENDIF + +# Begin Target + +# Name "GP_glut - Win32 Release" +# Name "GP_glut - Win32 Debug" +# Name "GP_glut - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutGamePlayer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutKeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutSystem.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutCanvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutPolygonMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Glut\GlutSystem.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/loader/BlenderLoader/BlenderLoader.dsp b/projectfiles/gameengine/gameplayer/loader/BlenderLoader/BlenderLoader.dsp index 1af82b0644f..eb16fea9fd2 100644 --- a/projectfiles/gameengine/gameplayer/loader/BlenderLoader/BlenderLoader.dsp +++ b/projectfiles/gameengine/gameplayer/loader/BlenderLoader/BlenderLoader.dsp @@ -1,206 +1,206 @@ -# Microsoft Developer Studio Project File - Name="BlenderLoader" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=BlenderLoader - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "BlenderLoader.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "BlenderLoader.mak" CFG="BlenderLoader - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "BlenderLoader - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "BlenderLoader - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "BlenderLoader - Win32 Profile" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "BlenderLoader - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader" -# PROP Intermediate_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "../../../../../../lib/windows/python/include/python2.0" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /I "../../../../../source/gameengine/SoundSystem/SND_Dummy" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\..\..\..\obj\windows\BlenderLoader.exe" /libpath:"../../../../../../lib/windows/moto/lib" /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" - -!ELSEIF "$(CFG)" == "BlenderLoader - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader\debug" -# PROP Intermediate_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fr /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 sdldebug.lib libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\debug\BlenderLoader.exe" /pdbtype:sept /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" - -!ELSEIF "$(CFG)" == "BlenderLoader - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "BlenderLoader___Win32_Profile" -# PROP BASE Intermediate_Dir "BlenderLoader___Win32_Profile" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "BlenderLoader___Win32_Profile" -# PROP Intermediate_Dir "BlenderLoader___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# SUBTRACT BASE CPP /Fr -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 sdldebug.lib sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\debug\BlenderLoader.exe" /pdbtype:sept /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" -# ADD LINK32 sdldebug.lib libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\profile\BlenderLoader.exe" /pdbtype:sept /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" - -!ENDIF - -# Begin Target - -# Name "BlenderLoader - Win32 Release" -# Name "BlenderLoader - Win32 Debug" -# Name "BlenderLoader - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\loader.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLKeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLSystem.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLCanvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLSystem.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="BlenderLoader" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=BlenderLoader - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BlenderLoader.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BlenderLoader.mak" CFG="BlenderLoader - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BlenderLoader - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "BlenderLoader - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "BlenderLoader - Win32 Profile" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "BlenderLoader - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader" +# PROP Intermediate_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../../../../../lib/windows/python/include/python2.0" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /I "../../../../../source/gameengine/SoundSystem/SND_Dummy" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\..\..\..\obj\windows\BlenderLoader.exe" /libpath:"../../../../../../lib/windows/moto/lib" /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" + +!ELSEIF "$(CFG)" == "BlenderLoader - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader\debug" +# PROP Intermediate_Dir "..\..\..\..\..\..\obj\windows\gameengine\gameplayer\BlenderLoader\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fr /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 sdldebug.lib libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\debug\BlenderLoader.exe" /pdbtype:sept /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" + +!ELSEIF "$(CFG)" == "BlenderLoader - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "BlenderLoader___Win32_Profile" +# PROP BASE Intermediate_Dir "BlenderLoader___Win32_Profile" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "BlenderLoader___Win32_Profile" +# PROP Intermediate_Dir "BlenderLoader___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# SUBTRACT BASE CPP /Fr +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "../../../../../../lib/windows/python/include/python1.5" /I "../../../../../source/blender/encrypt" /I "../../../../../source/blender/blenkernel" /I "../../../../../source/blender/makesdna" /I "../../../../../source/blender/blenlib" /I "../../../../../source/blender/blenloader" /I "../../../../../source/blender/render/extern/include" /I "../../../../../source/gameengine/Rasterizer" /I "../../../../../../lib\windows\sdl\SDL-1.1.7\include" /I "../../../../../source/gameengine/GameLogic" /I "..\..\..\..\..\source\sumo\include" /I "..\..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\source\kernel\gen_system" /I "../../../../../source/blender/imbuf" /I "../../../../../source/gameengine/SoundSystem" /I "../../../../../source/gameengine/SoundSystem/SND_OpenAL" /I "../../../../../source/gameengine/Ketsji" /I "../../../../../source/gameengine/Expressions" /I "../../../../../source/gameengine/SceneGraph" /I "../../../../../source/gameengine/ketsji/kxnetwork" /I "../../../../../source/gameengine/network" /I "../../../../../source/gameengine/network/loopbacknetwork" /I "../../../../../source/gameengine/GamePlayer/common" /I "../../../../../../lib/windows/iksolver/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 sdldebug.lib sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\debug\BlenderLoader.exe" /pdbtype:sept /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" +# ADD LINK32 sdldebug.lib libguardedalloc.a libmoto.a sdlmain.lib sdl.lib dxguid.lib ole32.lib libjpeg.lib glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\..\..\..\obj\windows\profile\BlenderLoader.exe" /pdbtype:sept /libpath:"..\..\..\..\..\..\lib\windows\guardedalloc\lib" /libpath:"../../../../../../lib/windows/python/lib" /libpath:"../../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../../lib/windows/sdl/SDL-1.1.7\Lib" + +!ENDIF + +# Begin Target + +# Name "BlenderLoader - Win32 Release" +# Name "BlenderLoader - Win32 Debug" +# Name "BlenderLoader - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\loader.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLKeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLSystem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLCanvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\GamePlayer\Loaders\Blender\SDLSystem.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/netscape/GP_netscape.dsp b/projectfiles/gameengine/gameplayer/netscape/GP_netscape.dsp index 60dc29e4918..e3145b14931 100644 --- a/projectfiles/gameengine/gameplayer/netscape/GP_netscape.dsp +++ b/projectfiles/gameengine/gameplayer/netscape/GP_netscape.dsp @@ -1,173 +1,173 @@ -# Microsoft Developer Studio Project File - Name="GP_netscape" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=GP_netscape - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_netscape.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_netscape.mak" CFG="GP_netscape - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_netscape - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "GP_netscape - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "GP_netscape - Win32 Profile" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_netscape - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\..\lib\windows\iksolver\include" /I "../../../../../lib/windows/moto/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib libblenkey.a libz.a /nologo /subsystem:windows /dll /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" - -!ELSEIF "$(CFG)" == "GP_netscape - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /I "../../../../../lib/windows/moto/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib libblenkey.a libz.a kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib python15.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" - -!ELSEIF "$(CFG)" == "GP_netscape - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_netscape___Win32_Profile" -# PROP BASE Intermediate_Dir "GP_netscape___Win32_Profile" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "GP_netscape___Win32_Profile" -# PROP Intermediate_Dir "GP_netscape___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# SUBTRACT CPP /Fr -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" - -!ENDIF - -# Begin Target - -# Name "GP_netscape - Win32 Release" -# Name "GP_netscape - Win32 Debug" -# Name "GP_netscape - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\BlenderPlayer.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\netscape_plugin_Plugin.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\npblender.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npblender.def -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npblender.rc -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npwin.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\NSPlugin\autodownload.html -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\Testing\NetscapeExample.html -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_netscape" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=GP_netscape - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_netscape.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_netscape.mak" CFG="GP_netscape - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_netscape - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "GP_netscape - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "GP_netscape - Win32 Profile" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_netscape - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\..\lib\windows\iksolver\include" /I "../../../../../lib/windows/moto/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib libblenkey.a libz.a /nologo /subsystem:windows /dll /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" + +!ELSEIF "$(CFG)" == "GP_netscape - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /I "../../../../../lib/windows/moto/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib libblenkey.a libz.a kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib python15.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" + +!ELSEIF "$(CFG)" == "GP_netscape - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_netscape___Win32_Profile" +# PROP BASE Intermediate_Dir "GP_netscape___Win32_Profile" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "GP_netscape___Win32_Profile" +# PROP Intermediate_Dir "GP_netscape___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# SUBTRACT CPP /Fr +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" + +!ENDIF + +# Begin Target + +# Name "GP_netscape - Win32 Release" +# Name "GP_netscape - Win32 Debug" +# Name "GP_netscape - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\BlenderPlayer.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\netscape_plugin_Plugin.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\npblender.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npblender.def +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npblender.rc +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\windows\npwin.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\NSPlugin\autodownload.html +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\Testing\NetscapeExample.html +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/netscape2/GP_netscape.dsp b/projectfiles/gameengine/gameplayer/netscape2/GP_netscape.dsp index e065ac280b7..5ebdc5c9b7d 100644 --- a/projectfiles/gameengine/gameplayer/netscape2/GP_netscape.dsp +++ b/projectfiles/gameengine/gameplayer/netscape2/GP_netscape.dsp @@ -1,181 +1,181 @@ -# Microsoft Developer Studio Project File - Name="GP_netscape2" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=GP_netscape2 - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_netscape.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_netscape.mak" CFG="GP_netscape2 - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_netscape2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "GP_netscape2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "GP_netscape2 - Win32 Profile" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_netscape2 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" /libpath:"../../../../../lib/windows/openal/lib" - -!ELSEIF "$(CFG)" == "GP_netscape2 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /FR /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\lib\windows\iksolver\lib\\" - -!ELSEIF "$(CFG)" == "GP_netscape2 - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_netscape2___Win32_Profile" -# PROP BASE Intermediate_Dir "GP_netscape2___Win32_Profile" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "GP_netscape2___Win32_Profile" -# PROP Intermediate_Dir "GP_netscape2___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c -# SUBTRACT CPP /Fr -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" -# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" - -!ENDIF - -# Begin Target - -# Name "GP_netscape2 - Win32 Release" -# Name "GP_netscape2 - Win32 Debug" -# Name "GP_netscape2 - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\Blender3DPlugin.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\netscape_plugin_Plugin.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npblender.def -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npblender.rc -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\npshell.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npwin.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\plgwnd.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\plgwnd.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\NSPlugin\autodownload.html -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\Testing\NetscapeExample.html -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_netscape2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=GP_netscape2 - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_netscape.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_netscape.mak" CFG="GP_netscape2 - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_netscape2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "GP_netscape2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "GP_netscape2 - Win32 Profile" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_netscape2 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" +# PROP Intermediate_Dir ".\Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\..\..\lib\windows\iksolver\lib\\" /libpath:"../../../../../lib/windows/openal/lib" + +!ELSEIF "$(CFG)" == "GP_netscape2 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "C:\Program Files\Netscape\Communicator\Program\Plugins" +# PROP Intermediate_Dir ".\Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /FR /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" /libpath:"../../../../../lib/windows/zlib/lib/" /libpath:"..\..\..\..\..\lib\windows\blenkey\lib" /libpath:"..\..\..\lib\windows\openssl\lib" /libpath:"..\..\..\lib\windows\iksolver\lib\\" + +!ELSEIF "$(CFG)" == "GP_netscape2 - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_netscape2___Win32_Profile" +# PROP BASE Intermediate_Dir "GP_netscape2___Win32_Profile" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "GP_netscape2___Win32_Profile" +# PROP Intermediate_Dir "GP_netscape2___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_messaging" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\rasterizer\ras_openglrasterizer" /I "..\..\..\..\source\gameengine\scenegraph" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\soundsystem" /I "..\..\..\..\source\gameengine\soundsystem\snd_openal" /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows_sdk" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\..\lib\windows\openal\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "../../../../source/blender/blenkernel" /I "../../../../source/blender/makesdna" /I "../../../../source/blender/blenlib" /I "../../../../source/blender/blenloader" /I "../../../../source/blender/render/extern/include" /I "../../../../source/blender/imbuf" /I "..\..\..\..\source\gameengine\converter" /I "..\..\..\..\source\gameengine\gameplayer\common\windows" /I "..\..\..\..\source\gameengine\gameplayer\Netscape2\windows" /I "..\..\..\..\..\lib\windows\iksolver\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# SUBTRACT CPP /Fr +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\NPBlender.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" +# ADD LINK32 libblenkey.a libeay32.lib libz.a ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libjpeg.lib opengl32.lib glu32.lib openal_static.lib dxguid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"C:\Program Files\Netscape\Communicator\Program\Plugins\npBlender3DPlugin.dll" /libpath:"../../../../../lib/windows/python/lib" /libpath:"../../../../../lib/windows/jpeg/lib" /libpath:"../../../../../lib/windows/openal/lib" + +!ENDIF + +# Begin Target + +# Name "GP_netscape2 - Win32 Release" +# Name "GP_netscape2 - Win32 Debug" +# Name "GP_netscape2 - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\Blender3DPlugin.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\makesdna\intern\dna.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\netscape_plugin_Plugin.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npblender.def +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npblender.rc +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\npshell.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\npwin.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape2\windows\plgwnd.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\blender\blenkernel\bad_level_call_stubs\stubs.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\plgwnd.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\NSPlugin\autodownload.html +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Netscape\Testing\NetscapeExample.html +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/ps2/GP_ps2.dsp b/projectfiles/gameengine/gameplayer/ps2/GP_ps2.dsp index 84aa94ef1a5..6fc1d06c3f1 100644 --- a/projectfiles/gameengine/gameplayer/ps2/GP_ps2.dsp +++ b/projectfiles/gameengine/gameplayer/ps2/GP_ps2.dsp @@ -1,182 +1,182 @@ -# Microsoft Developer Studio Project File - Name="GP_ps2" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=GP_ps2 - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_ps2.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_ps2.mak" CFG="GP_ps2 - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_ps2 - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_ps2 - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_ps2 - Win32 Profile" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_ps2 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ps2" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "GP_ps2 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ps2\debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ELSEIF "$(CFG)" == "GP_ps2 - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_ps2___Win32_Profile" -# PROP BASE Intermediate_Dir "GP_ps2___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "GP_ps2___Win32_Profile" -# PROP Intermediate_Dir "GP_ps2___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "GP_ps2 - Win32 Release" -# Name "GP_ps2 - Win32 Debug" -# Name "GP_ps2 - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\DebugActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\GPC_Init.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2DualShockDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2GamePlayer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2System.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\DebugActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\ExampleEngine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\GPC_Init.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2Canvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2DualShockDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2InputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2Rasterizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2RenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2System.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\SamplePolygonMaterial.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_ps2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=GP_ps2 - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_ps2.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_ps2.mak" CFG="GP_ps2 - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_ps2 - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_ps2 - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_ps2 - Win32 Profile" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_ps2 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ps2" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "GP_ps2 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\ps2\debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ELSEIF "$(CFG)" == "GP_ps2 - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_ps2___Win32_Profile" +# PROP BASE Intermediate_Dir "GP_ps2___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "GP_ps2___Win32_Profile" +# PROP Intermediate_Dir "GP_ps2___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\rasterizer" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "GP_ps2 - Win32 Release" +# Name "GP_ps2 - Win32 Debug" +# Name "GP_ps2 - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\DebugActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\GPC_Init.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2DualShockDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2GamePlayer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2System.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\DebugActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\ExampleEngine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\GPC_Init.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2Canvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2DualShockDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2InputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2Rasterizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2RenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\PS2System.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\PS2\SamplePolygonMaterial.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/qt/gp.dsp b/projectfiles/gameengine/gameplayer/qt/gp.dsp index 512c5b69de6..9f3e82b6cd6 100644 --- a/projectfiles/gameengine/gameplayer/qt/gp.dsp +++ b/projectfiles/gameengine/gameplayer/qt/gp.dsp @@ -1,164 +1,164 @@ -# Microsoft Developer Studio Project File - Name="gp" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=gp - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "gp.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "gp.mak" CFG="gp - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "gp - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "gp - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "gp - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qt.lib h:\qtwin\lib\qnp.lib python20.lib /nologo /subsystem:windows /machine:I386 /out:"..\..\..\..\..\obj\windows\gp.exe" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" - -!ELSEIF "$(CFG)" == "gp - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /GX /Od /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qt.lib python15_d.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\..\..\..\..\obj\windows\debug\gp.exe" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "gp - Win32 Release" -# Name "gp - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="gp" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=gp - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "gp.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "gp.mak" CFG="gp - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "gp - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "gp - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gp - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qt.lib h:\qtwin\lib\qnp.lib python20.lib /nologo /subsystem:windows /machine:I386 /out:"..\..\..\..\..\obj\windows\gp.exe" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" + +!ELSEIF "$(CFG)" == "gp - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gp\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /GX /Od /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 opengl32.lib glu32.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qt.lib python15_d.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\..\..\..\..\obj\windows\debug\gp.exe" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "gp - Win32 Release" +# Name "gp - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/qt/gpplugin.dsp b/projectfiles/gameengine/gameplayer/qt/gpplugin.dsp index 180f147c79a..65148dd706d 100644 --- a/projectfiles/gameengine/gameplayer/qt/gpplugin.dsp +++ b/projectfiles/gameengine/gameplayer/qt/gpplugin.dsp @@ -1,824 +1,824 @@ -# Microsoft Developer Studio Project File - Name="gpplugin" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=gpplugin - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "gpplugin.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "gpplugin.mak" CFG="gpplugin - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "gpplugin - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "gpplugin - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "gpplugin - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qnp.lib h:\qtwin\lib\qt.lib opengl32.lib glu32.lib python20.lib /nologo /dll /machine:I386 /out:"..\..\..\..\..\obj\windows\npWebGP.dll" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" - -!ELSEIF "$(CFG)" == "gpplugin - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /GX /Zi /Od /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "WIN32" /D "PLUGIN" /D "_DEBUG" -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x413 /d "_DEBUG" -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qnp.lib h:\qtwin\lib\qt.lib opengl32.lib glu32.lib python15_d.lib /nologo /subsystem:windows /dll /debug /machine:I386 /def:"..\..\..\..\source\gameengine\GamePlayer\Qt\GP.def" /out:"..\..\..\..\..\obj\windows\debug\npWebGP.dll" /libpath:"..\..\..\..\..\lib\windows\python\lib" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "gpplugin - Win32 Release" -# Name "gpplugin - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.cpp -DEP_CPP_GP_CP=\ - "..\..\..\..\..\qtwin\include\qapplication.h"\ - "..\..\..\..\..\qtwin\include\qarray.h"\ - "..\..\..\..\..\qtwin\include\qasciidict.h"\ - "..\..\..\..\..\qtwin\include\qbrush.h"\ - "..\..\..\..\..\qtwin\include\qcollection.h"\ - "..\..\..\..\..\qtwin\include\qcolor.h"\ - "..\..\..\..\..\qtwin\include\qconfig-large.h"\ - "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ - "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ - "..\..\..\..\..\qtwin\include\qconfig-small.h"\ - "..\..\..\..\..\qtwin\include\qconfig.h"\ - "..\..\..\..\..\qtwin\include\qcstring.h"\ - "..\..\..\..\..\qtwin\include\qcursor.h"\ - "..\..\..\..\..\qtwin\include\qdatastream.h"\ - "..\..\..\..\..\qtwin\include\qdialog.h"\ - "..\..\..\..\..\qtwin\include\qevent.h"\ - "..\..\..\..\..\qtwin\include\qfeatures.h"\ - "..\..\..\..\..\qtwin\include\qfont.h"\ - "..\..\..\..\..\qtwin\include\qfontinfo.h"\ - "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ - "..\..\..\..\..\qtwin\include\qframe.h"\ - "..\..\..\..\..\qtwin\include\qgarray.h"\ - "..\..\..\..\..\qtwin\include\qgdict.h"\ - "..\..\..\..\..\qtwin\include\qgl.h"\ - "..\..\..\..\..\qtwin\include\qglist.h"\ - "..\..\..\..\..\qtwin\include\qglobal.h"\ - "..\..\..\..\..\qtwin\include\qiconset.h"\ - "..\..\..\..\..\qtwin\include\qimage.h"\ - "..\..\..\..\..\qtwin\include\qintdict.h"\ - "..\..\..\..\..\qtwin\include\qiodevice.h"\ - "..\..\..\..\..\qtwin\include\qlist.h"\ - "..\..\..\..\..\qtwin\include\qmenudata.h"\ - "..\..\..\..\..\qtwin\include\qmessagebox.h"\ - "..\..\..\..\..\qtwin\include\qmime.h"\ - "..\..\..\..\..\qtwin\include\qnamespace.h"\ - "..\..\..\..\..\qtwin\include\qnp.h"\ - "..\..\..\..\..\qtwin\include\qobject.h"\ - "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ - "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ - "..\..\..\..\..\qtwin\include\qpainter.h"\ - "..\..\..\..\..\qtwin\include\qpalette.h"\ - "..\..\..\..\..\qtwin\include\qpen.h"\ - "..\..\..\..\..\qtwin\include\qpixmap.h"\ - "..\..\..\..\..\qtwin\include\qpngio.h"\ - "..\..\..\..\..\qtwin\include\qpoint.h"\ - "..\..\..\..\..\qtwin\include\qpointarray.h"\ - "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ - "..\..\..\..\..\qtwin\include\qrect.h"\ - "..\..\..\..\..\qtwin\include\qregexp.h"\ - "..\..\..\..\..\qtwin\include\qregion.h"\ - "..\..\..\..\..\qtwin\include\qshared.h"\ - "..\..\..\..\..\qtwin\include\qsignal.h"\ - "..\..\..\..\..\qtwin\include\qsize.h"\ - "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ - "..\..\..\..\..\qtwin\include\qstring.h"\ - "..\..\..\..\..\qtwin\include\qstringlist.h"\ - "..\..\..\..\..\qtwin\include\qstrlist.h"\ - "..\..\..\..\..\qtwin\include\qstyle.h"\ - "..\..\..\..\..\qtwin\include\qt_windows.h"\ - "..\..\..\..\..\qtwin\include\qtranslator.h"\ - "..\..\..\..\..\qtwin\include\qvaluelist.h"\ - "..\..\..\..\..\qtwin\include\qwidget.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ - "..\..\..\..\..\qtwin\include\qwmatrix.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ - "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ - "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ - -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.cpp -DEP_CPP_GP_IN=\ - "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ - "..\..\..\..\source\gameengine\Expressions\BoolValue.h"\ - "..\..\..\..\source\gameengine\Expressions\ListValue.h"\ - "..\..\..\..\source\gameengine\Expressions\PyObjectPlus.h"\ - "..\..\..\..\source\gameengine\Expressions\Value.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ANDController.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_EventManager.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IActuator.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IController.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IObject.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISensor.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_PythonController.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_GameObject.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_PythonInit.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_SoundActuator.h"\ - "..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.h"\ - "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_IObject.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_Node.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_Spatial.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedPtr.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ - "..\..\..\..\source\sumo\include\solid.h"\ - "..\..\..\..\source\sumo\include\solid_types.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ - "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ - -NODEP_CPP_GP_IN=\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\GPC_OpenALWaveCache.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\OpenALScene.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\SND_SoundObject.h"\ - -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.cpp -DEP_CPP_QTEXA=\ - "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ - "..\..\..\..\source\gameengine\Expressions\BoolValue.h"\ - "..\..\..\..\source\gameengine\Expressions\IntValue.h"\ - "..\..\..\..\source\gameengine\Expressions\ListValue.h"\ - "..\..\..\..\source\gameengine\Expressions\PyObjectPlus.h"\ - "..\..\..\..\source\gameengine\Expressions\Value.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IActuator.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IObject.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_Camera.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_GameObject.h"\ - "..\..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_CameraData.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_IObject.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_Node.h"\ - "..\..\..\..\source\gameengine\SceneGraph\SG_Spatial.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedPtr.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ - "..\..\..\..\source\sumo\Fuzzics\include\SM_Scene.h"\ - "..\..\..\..\source\sumo\include\solid.h"\ - "..\..\..\..\source\sumo\include\solid_types.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ - "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ - -NODEP_CPP_QTEXA=\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\OpenALScene.h"\ - -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.cpp -DEP_CPP_QTKEY=\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ - -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.cpp -DEP_CPP_QTOPE=\ - "..\..\..\..\..\qtwin\include\qapplication.h"\ - "..\..\..\..\..\qtwin\include\qarray.h"\ - "..\..\..\..\..\qtwin\include\qasciidict.h"\ - "..\..\..\..\..\qtwin\include\qbrush.h"\ - "..\..\..\..\..\qtwin\include\qcollection.h"\ - "..\..\..\..\..\qtwin\include\qcolor.h"\ - "..\..\..\..\..\qtwin\include\qconfig-large.h"\ - "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ - "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ - "..\..\..\..\..\qtwin\include\qconfig-small.h"\ - "..\..\..\..\..\qtwin\include\qconfig.h"\ - "..\..\..\..\..\qtwin\include\qcstring.h"\ - "..\..\..\..\..\qtwin\include\qcursor.h"\ - "..\..\..\..\..\qtwin\include\qdatastream.h"\ - "..\..\..\..\..\qtwin\include\qevent.h"\ - "..\..\..\..\..\qtwin\include\qfeatures.h"\ - "..\..\..\..\..\qtwin\include\qfont.h"\ - "..\..\..\..\..\qtwin\include\qfontinfo.h"\ - "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ - "..\..\..\..\..\qtwin\include\qframe.h"\ - "..\..\..\..\..\qtwin\include\qgarray.h"\ - "..\..\..\..\..\qtwin\include\qgdict.h"\ - "..\..\..\..\..\qtwin\include\qgl.h"\ - "..\..\..\..\..\qtwin\include\qglist.h"\ - "..\..\..\..\..\qtwin\include\qglobal.h"\ - "..\..\..\..\..\qtwin\include\qiconset.h"\ - "..\..\..\..\..\qtwin\include\qintdict.h"\ - "..\..\..\..\..\qtwin\include\qiodevice.h"\ - "..\..\..\..\..\qtwin\include\qlist.h"\ - "..\..\..\..\..\qtwin\include\qmenudata.h"\ - "..\..\..\..\..\qtwin\include\qmime.h"\ - "..\..\..\..\..\qtwin\include\qnamespace.h"\ - "..\..\..\..\..\qtwin\include\qobject.h"\ - "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ - "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ - "..\..\..\..\..\qtwin\include\qpalette.h"\ - "..\..\..\..\..\qtwin\include\qpixmap.h"\ - "..\..\..\..\..\qtwin\include\qpoint.h"\ - "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ - "..\..\..\..\..\qtwin\include\qrect.h"\ - "..\..\..\..\..\qtwin\include\qregexp.h"\ - "..\..\..\..\..\qtwin\include\qregion.h"\ - "..\..\..\..\..\qtwin\include\qshared.h"\ - "..\..\..\..\..\qtwin\include\qsignal.h"\ - "..\..\..\..\..\qtwin\include\qsize.h"\ - "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ - "..\..\..\..\..\qtwin\include\qstring.h"\ - "..\..\..\..\..\qtwin\include\qstringlist.h"\ - "..\..\..\..\..\qtwin\include\qstyle.h"\ - "..\..\..\..\..\qtwin\include\qt_windows.h"\ - "..\..\..\..\..\qtwin\include\qtranslator.h"\ - "..\..\..\..\..\qtwin\include\qvaluelist.h"\ - "..\..\..\..\..\qtwin\include\qwidget.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ - "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ - -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.cpp -DEP_CPP_QTSYS=\ - "..\..\..\..\..\qtwin\include\qapplication.h"\ - "..\..\..\..\..\qtwin\include\qarray.h"\ - "..\..\..\..\..\qtwin\include\qasciidict.h"\ - "..\..\..\..\..\qtwin\include\qbrush.h"\ - "..\..\..\..\..\qtwin\include\qcollection.h"\ - "..\..\..\..\..\qtwin\include\qcolor.h"\ - "..\..\..\..\..\qtwin\include\qconfig-large.h"\ - "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ - "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ - "..\..\..\..\..\qtwin\include\qconfig-small.h"\ - "..\..\..\..\..\qtwin\include\qconfig.h"\ - "..\..\..\..\..\qtwin\include\qcstring.h"\ - "..\..\..\..\..\qtwin\include\qcursor.h"\ - "..\..\..\..\..\qtwin\include\qdatastream.h"\ - "..\..\..\..\..\qtwin\include\qevent.h"\ - "..\..\..\..\..\qtwin\include\qfeatures.h"\ - "..\..\..\..\..\qtwin\include\qfont.h"\ - "..\..\..\..\..\qtwin\include\qfontinfo.h"\ - "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ - "..\..\..\..\..\qtwin\include\qframe.h"\ - "..\..\..\..\..\qtwin\include\qgarray.h"\ - "..\..\..\..\..\qtwin\include\qgdict.h"\ - "..\..\..\..\..\qtwin\include\qgl.h"\ - "..\..\..\..\..\qtwin\include\qglist.h"\ - "..\..\..\..\..\qtwin\include\qglobal.h"\ - "..\..\..\..\..\qtwin\include\qiconset.h"\ - "..\..\..\..\..\qtwin\include\qintdict.h"\ - "..\..\..\..\..\qtwin\include\qiodevice.h"\ - "..\..\..\..\..\qtwin\include\qlist.h"\ - "..\..\..\..\..\qtwin\include\qmenudata.h"\ - "..\..\..\..\..\qtwin\include\qmime.h"\ - "..\..\..\..\..\qtwin\include\qnamespace.h"\ - "..\..\..\..\..\qtwin\include\qobject.h"\ - "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ - "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ - "..\..\..\..\..\qtwin\include\qpalette.h"\ - "..\..\..\..\..\qtwin\include\qpixmap.h"\ - "..\..\..\..\..\qtwin\include\qpoint.h"\ - "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ - "..\..\..\..\..\qtwin\include\qrect.h"\ - "..\..\..\..\..\qtwin\include\qregexp.h"\ - "..\..\..\..\..\qtwin\include\qregion.h"\ - "..\..\..\..\..\qtwin\include\qshared.h"\ - "..\..\..\..\..\qtwin\include\qsignal.h"\ - "..\..\..\..\..\qtwin\include\qsize.h"\ - "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ - "..\..\..\..\..\qtwin\include\qstring.h"\ - "..\..\..\..\..\qtwin\include\qstringlist.h"\ - "..\..\..\..\..\qtwin\include\qstyle.h"\ - "..\..\..\..\..\qtwin\include\qt_windows.h"\ - "..\..\..\..\..\qtwin\include\qtranslator.h"\ - "..\..\..\..\..\qtwin\include\qvaluelist.h"\ - "..\..\..\..\..\qtwin\include\qwidget.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ - "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ - "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ - "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ - "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ - "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ - "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ - "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ - "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ - "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ - "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ - -NODEP_CPP_QTSYS=\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\BKE_bad_level_calls.h"\ - "..\..\..\..\source\gameengine\GamePlayer\Qt\BLO_readfile.h"\ - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\resource.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.rc -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="gpplugin" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=gpplugin - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "gpplugin.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "gpplugin.mak" CFG="gpplugin - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "gpplugin - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "gpplugin - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gpplugin - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x413 /d "NDEBUG" +# ADD RSC /l 0x413 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qnp.lib h:\qtwin\lib\qt.lib opengl32.lib glu32.lib python20.lib /nologo /dll /machine:I386 /out:"..\..\..\..\..\obj\windows\npWebGP.dll" /libpath:"..\..\..\..\..\lib\windows\python\lib\\" + +!ELSEIF "$(CFG)" == "gpplugin - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\gameplayer\qt\gpplugin\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "GPPLUGIN_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /GX /Zi /Od /I "h:\qtwin\include" /I "..\..\..\..\source\gameengine\Expressions" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\Ketsji" /I "..\..\..\..\source\gameengine\Ketsji\KXNetwork" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\source\gameengine\Network\LoopBackNetwork" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\..\source\gameengine\SceneGraph" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "WIN32" /D "PLUGIN" /D "_DEBUG" +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x413 /d "_DEBUG" +# ADD RSC /l 0x409 +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib h:\qtwin\lib\qnp.lib h:\qtwin\lib\qt.lib opengl32.lib glu32.lib python15_d.lib /nologo /subsystem:windows /dll /debug /machine:I386 /def:"..\..\..\..\source\gameengine\GamePlayer\Qt\GP.def" /out:"..\..\..\..\..\obj\windows\debug\npWebGP.dll" /libpath:"..\..\..\..\..\lib\windows\python\lib" +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "gpplugin - Win32 Release" +# Name "gpplugin - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.cpp +DEP_CPP_GP_CP=\ + "..\..\..\..\..\qtwin\include\qapplication.h"\ + "..\..\..\..\..\qtwin\include\qarray.h"\ + "..\..\..\..\..\qtwin\include\qasciidict.h"\ + "..\..\..\..\..\qtwin\include\qbrush.h"\ + "..\..\..\..\..\qtwin\include\qcollection.h"\ + "..\..\..\..\..\qtwin\include\qcolor.h"\ + "..\..\..\..\..\qtwin\include\qconfig-large.h"\ + "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ + "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ + "..\..\..\..\..\qtwin\include\qconfig-small.h"\ + "..\..\..\..\..\qtwin\include\qconfig.h"\ + "..\..\..\..\..\qtwin\include\qcstring.h"\ + "..\..\..\..\..\qtwin\include\qcursor.h"\ + "..\..\..\..\..\qtwin\include\qdatastream.h"\ + "..\..\..\..\..\qtwin\include\qdialog.h"\ + "..\..\..\..\..\qtwin\include\qevent.h"\ + "..\..\..\..\..\qtwin\include\qfeatures.h"\ + "..\..\..\..\..\qtwin\include\qfont.h"\ + "..\..\..\..\..\qtwin\include\qfontinfo.h"\ + "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ + "..\..\..\..\..\qtwin\include\qframe.h"\ + "..\..\..\..\..\qtwin\include\qgarray.h"\ + "..\..\..\..\..\qtwin\include\qgdict.h"\ + "..\..\..\..\..\qtwin\include\qgl.h"\ + "..\..\..\..\..\qtwin\include\qglist.h"\ + "..\..\..\..\..\qtwin\include\qglobal.h"\ + "..\..\..\..\..\qtwin\include\qiconset.h"\ + "..\..\..\..\..\qtwin\include\qimage.h"\ + "..\..\..\..\..\qtwin\include\qintdict.h"\ + "..\..\..\..\..\qtwin\include\qiodevice.h"\ + "..\..\..\..\..\qtwin\include\qlist.h"\ + "..\..\..\..\..\qtwin\include\qmenudata.h"\ + "..\..\..\..\..\qtwin\include\qmessagebox.h"\ + "..\..\..\..\..\qtwin\include\qmime.h"\ + "..\..\..\..\..\qtwin\include\qnamespace.h"\ + "..\..\..\..\..\qtwin\include\qnp.h"\ + "..\..\..\..\..\qtwin\include\qobject.h"\ + "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ + "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ + "..\..\..\..\..\qtwin\include\qpainter.h"\ + "..\..\..\..\..\qtwin\include\qpalette.h"\ + "..\..\..\..\..\qtwin\include\qpen.h"\ + "..\..\..\..\..\qtwin\include\qpixmap.h"\ + "..\..\..\..\..\qtwin\include\qpngio.h"\ + "..\..\..\..\..\qtwin\include\qpoint.h"\ + "..\..\..\..\..\qtwin\include\qpointarray.h"\ + "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ + "..\..\..\..\..\qtwin\include\qrect.h"\ + "..\..\..\..\..\qtwin\include\qregexp.h"\ + "..\..\..\..\..\qtwin\include\qregion.h"\ + "..\..\..\..\..\qtwin\include\qshared.h"\ + "..\..\..\..\..\qtwin\include\qsignal.h"\ + "..\..\..\..\..\qtwin\include\qsize.h"\ + "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ + "..\..\..\..\..\qtwin\include\qstring.h"\ + "..\..\..\..\..\qtwin\include\qstringlist.h"\ + "..\..\..\..\..\qtwin\include\qstrlist.h"\ + "..\..\..\..\..\qtwin\include\qstyle.h"\ + "..\..\..\..\..\qtwin\include\qt_windows.h"\ + "..\..\..\..\..\qtwin\include\qtranslator.h"\ + "..\..\..\..\..\qtwin\include\qvaluelist.h"\ + "..\..\..\..\..\qtwin\include\qwidget.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ + "..\..\..\..\..\qtwin\include\qwmatrix.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ + "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ + "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ + +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.cpp +DEP_CPP_GP_IN=\ + "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ + "..\..\..\..\source\gameengine\Expressions\BoolValue.h"\ + "..\..\..\..\source\gameengine\Expressions\ListValue.h"\ + "..\..\..\..\source\gameengine\Expressions\PyObjectPlus.h"\ + "..\..\..\..\source\gameengine\Expressions\Value.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_AlwaysEventManager.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_AlwaysSensor.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ANDController.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_EventManager.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IActuator.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IController.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IObject.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISensor.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_KeyboardManager.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_KeyboardSensor.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_PythonController.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_GameObject.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_PythonInit.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_SoundActuator.h"\ + "..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.h"\ + "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_IObject.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_Node.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_Spatial.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedPtr.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ + "..\..\..\..\source\sumo\include\solid.h"\ + "..\..\..\..\source\sumo\include\solid_types.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ + "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ + +NODEP_CPP_GP_IN=\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\GPC_OpenALWaveCache.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\OpenALScene.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\SND_SoundObject.h"\ + +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.cpp +DEP_CPP_QTEXA=\ + "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ + "..\..\..\..\source\gameengine\Expressions\BoolValue.h"\ + "..\..\..\..\source\gameengine\Expressions\IntValue.h"\ + "..\..\..\..\source\gameengine\Expressions\ListValue.h"\ + "..\..\..\..\source\gameengine\Expressions\PyObjectPlus.h"\ + "..\..\..\..\source\gameengine\Expressions\Value.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IActuator.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ILogicBrick.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IObject.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_LogicManager.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_Camera.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_GameObject.h"\ + "..\..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_CameraData.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_IObject.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_Node.h"\ + "..\..\..\..\source\gameengine\SceneGraph\SG_Spatial.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedPtr.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ + "..\..\..\..\source\sumo\Fuzzics\include\SM_Scene.h"\ + "..\..\..\..\source\sumo\include\solid.h"\ + "..\..\..\..\source\sumo\include\solid_types.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ + "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ + +NODEP_CPP_QTEXA=\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\OpenALScene.h"\ + +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.cpp +DEP_CPP_QTKEY=\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ + +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.cpp +DEP_CPP_QTOPE=\ + "..\..\..\..\..\qtwin\include\qapplication.h"\ + "..\..\..\..\..\qtwin\include\qarray.h"\ + "..\..\..\..\..\qtwin\include\qasciidict.h"\ + "..\..\..\..\..\qtwin\include\qbrush.h"\ + "..\..\..\..\..\qtwin\include\qcollection.h"\ + "..\..\..\..\..\qtwin\include\qcolor.h"\ + "..\..\..\..\..\qtwin\include\qconfig-large.h"\ + "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ + "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ + "..\..\..\..\..\qtwin\include\qconfig-small.h"\ + "..\..\..\..\..\qtwin\include\qconfig.h"\ + "..\..\..\..\..\qtwin\include\qcstring.h"\ + "..\..\..\..\..\qtwin\include\qcursor.h"\ + "..\..\..\..\..\qtwin\include\qdatastream.h"\ + "..\..\..\..\..\qtwin\include\qevent.h"\ + "..\..\..\..\..\qtwin\include\qfeatures.h"\ + "..\..\..\..\..\qtwin\include\qfont.h"\ + "..\..\..\..\..\qtwin\include\qfontinfo.h"\ + "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ + "..\..\..\..\..\qtwin\include\qframe.h"\ + "..\..\..\..\..\qtwin\include\qgarray.h"\ + "..\..\..\..\..\qtwin\include\qgdict.h"\ + "..\..\..\..\..\qtwin\include\qgl.h"\ + "..\..\..\..\..\qtwin\include\qglist.h"\ + "..\..\..\..\..\qtwin\include\qglobal.h"\ + "..\..\..\..\..\qtwin\include\qiconset.h"\ + "..\..\..\..\..\qtwin\include\qintdict.h"\ + "..\..\..\..\..\qtwin\include\qiodevice.h"\ + "..\..\..\..\..\qtwin\include\qlist.h"\ + "..\..\..\..\..\qtwin\include\qmenudata.h"\ + "..\..\..\..\..\qtwin\include\qmime.h"\ + "..\..\..\..\..\qtwin\include\qnamespace.h"\ + "..\..\..\..\..\qtwin\include\qobject.h"\ + "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ + "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ + "..\..\..\..\..\qtwin\include\qpalette.h"\ + "..\..\..\..\..\qtwin\include\qpixmap.h"\ + "..\..\..\..\..\qtwin\include\qpoint.h"\ + "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ + "..\..\..\..\..\qtwin\include\qrect.h"\ + "..\..\..\..\..\qtwin\include\qregexp.h"\ + "..\..\..\..\..\qtwin\include\qregion.h"\ + "..\..\..\..\..\qtwin\include\qshared.h"\ + "..\..\..\..\..\qtwin\include\qsignal.h"\ + "..\..\..\..\..\qtwin\include\qsize.h"\ + "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ + "..\..\..\..\..\qtwin\include\qstring.h"\ + "..\..\..\..\..\qtwin\include\qstringlist.h"\ + "..\..\..\..\..\qtwin\include\qstyle.h"\ + "..\..\..\..\..\qtwin\include\qt_windows.h"\ + "..\..\..\..\..\qtwin\include\qtranslator.h"\ + "..\..\..\..\..\qtwin\include\qvaluelist.h"\ + "..\..\..\..\..\qtwin\include\qwidget.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ + "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ + +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.cpp +DEP_CPP_QTSYS=\ + "..\..\..\..\..\qtwin\include\qapplication.h"\ + "..\..\..\..\..\qtwin\include\qarray.h"\ + "..\..\..\..\..\qtwin\include\qasciidict.h"\ + "..\..\..\..\..\qtwin\include\qbrush.h"\ + "..\..\..\..\..\qtwin\include\qcollection.h"\ + "..\..\..\..\..\qtwin\include\qcolor.h"\ + "..\..\..\..\..\qtwin\include\qconfig-large.h"\ + "..\..\..\..\..\qtwin\include\qconfig-medium.h"\ + "..\..\..\..\..\qtwin\include\qconfig-minimal.h"\ + "..\..\..\..\..\qtwin\include\qconfig-small.h"\ + "..\..\..\..\..\qtwin\include\qconfig.h"\ + "..\..\..\..\..\qtwin\include\qcstring.h"\ + "..\..\..\..\..\qtwin\include\qcursor.h"\ + "..\..\..\..\..\qtwin\include\qdatastream.h"\ + "..\..\..\..\..\qtwin\include\qevent.h"\ + "..\..\..\..\..\qtwin\include\qfeatures.h"\ + "..\..\..\..\..\qtwin\include\qfont.h"\ + "..\..\..\..\..\qtwin\include\qfontinfo.h"\ + "..\..\..\..\..\qtwin\include\qfontmetrics.h"\ + "..\..\..\..\..\qtwin\include\qframe.h"\ + "..\..\..\..\..\qtwin\include\qgarray.h"\ + "..\..\..\..\..\qtwin\include\qgdict.h"\ + "..\..\..\..\..\qtwin\include\qgl.h"\ + "..\..\..\..\..\qtwin\include\qglist.h"\ + "..\..\..\..\..\qtwin\include\qglobal.h"\ + "..\..\..\..\..\qtwin\include\qiconset.h"\ + "..\..\..\..\..\qtwin\include\qintdict.h"\ + "..\..\..\..\..\qtwin\include\qiodevice.h"\ + "..\..\..\..\..\qtwin\include\qlist.h"\ + "..\..\..\..\..\qtwin\include\qmenudata.h"\ + "..\..\..\..\..\qtwin\include\qmime.h"\ + "..\..\..\..\..\qtwin\include\qnamespace.h"\ + "..\..\..\..\..\qtwin\include\qobject.h"\ + "..\..\..\..\..\qtwin\include\qobjectdefs.h"\ + "..\..\..\..\..\qtwin\include\qpaintdevice.h"\ + "..\..\..\..\..\qtwin\include\qpalette.h"\ + "..\..\..\..\..\qtwin\include\qpixmap.h"\ + "..\..\..\..\..\qtwin\include\qpoint.h"\ + "..\..\..\..\..\qtwin\include\qpopupmenu.h"\ + "..\..\..\..\..\qtwin\include\qrect.h"\ + "..\..\..\..\..\qtwin\include\qregexp.h"\ + "..\..\..\..\..\qtwin\include\qregion.h"\ + "..\..\..\..\..\qtwin\include\qshared.h"\ + "..\..\..\..\..\qtwin\include\qsignal.h"\ + "..\..\..\..\..\qtwin\include\qsize.h"\ + "..\..\..\..\..\qtwin\include\qsizepolicy.h"\ + "..\..\..\..\..\qtwin\include\qstring.h"\ + "..\..\..\..\..\qtwin\include\qstringlist.h"\ + "..\..\..\..\..\qtwin\include\qstyle.h"\ + "..\..\..\..\..\qtwin\include\qt_windows.h"\ + "..\..\..\..\..\qtwin\include\qtranslator.h"\ + "..\..\..\..\..\qtwin\include\qvaluelist.h"\ + "..\..\..\..\..\qtwin\include\qwidget.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs.h"\ + "..\..\..\..\..\qtwin\include\qwindowdefs_win.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\abstract.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\bufferobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\ceval.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\classobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\cobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\complexobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\config.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\dictobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\fileobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\floatobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\funcobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\import.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\intrcheck.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\listobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\longobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\methodobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\modsupport.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\moduleobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\mymalloc.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\myproto.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\object.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\objimpl.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\patchlevel.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pydebug.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyerrors.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pyfpe.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pystate.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\Python.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\pythonrun.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\rangeobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sliceobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\stringobject.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\sysmodule.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\traceback.h"\ + "..\..\..\..\..\lib\windows\python\include\python1.5\tupleobject.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_IInputDevice.h"\ + "..\..\..\..\source\gameengine\GameLogic\SCA_ISystem.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h"\ + "..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h"\ + "..\..\..\..\source\gameengine\Network\NG_NetworkScene.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h"\ + "..\..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_HashedString.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_Matrix4x4.h"\ + "..\..\..\..\source\kernel\gen_system\GEN_StdString.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Map.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_MinMax.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Optimize.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_random.h"\ + "..\..\..\..\..\lib\windows\moto\include\GEN_Stream.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_assert.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Matrix3x3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Point3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Quaternion.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Scalar.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Transform.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Tuple4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector2.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector3.inl"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.h"\ + "..\..\..\..\..\lib\windows\moto\include\MT_Vector4.inl"\ + "..\..\..\..\..\lib\windows\moto\include\NM_Scalar.h"\ + +NODEP_CPP_QTSYS=\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\BKE_bad_level_calls.h"\ + "..\..\..\..\source\gameengine\GamePlayer\Qt\BLO_readfile.h"\ + +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\DebugActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP_Init.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtExampleEngine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtOpenGLWidget.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\QtSystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\resource.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\SamplePolygonMaterial.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\Qt\GP.rc +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/gameplayer/qt/qtgp.dsw b/projectfiles/gameengine/gameplayer/qt/qtgp.dsw index 22d9c5db23c..aac0b0f2423 100644 --- a/projectfiles/gameengine/gameplayer/qt/qtgp.dsw +++ b/projectfiles/gameengine/gameplayer/qt/qtgp.dsw @@ -1,323 +1,323 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "BLO_loader"=..\..\..\blender\loader\BLO_loader.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "EXP_expressions"=..\..\expression\EXP_expressions.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SCA_GameLogic"=..\..\gamelogic\SCA_GameLogic.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "KX_ketsji"=..\..\ketsji\KX_ketsji.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "KX_network"=..\..\ketsji\network\KX_network.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SG_SceneGraph"=..\..\scenegraph\SG_SceneGraph.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "NG_loopbacknetwork"=..\..\network\loopbacknetwork\NG_loopbacknetwork.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "NG_network"=..\..\network\network\NG_network.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "RAS_openglrasterizer"=..\..\rasterizer\openglrasterizer\RAS_openglrasterizer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "RAS_rasterizer"=..\..\rasterizer\RAS_rasterizer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SM_fuzzics"=..\..\..\sumo\fuzzics\SM_fuzzics.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SM_moto"=..\..\..\sumo\moto\SM_moto.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SM_solid"=..\..\..\sumo\solid\SM_solid.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SND_openal"=..\..\sound\openal\SND_openal.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SND_sound"=..\..\sound\SND_sound.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SYS_system"=..\..\..\kernel\system\SYS_system.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "gp"=.\gp.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name EXP_expressions - End Project Dependency - Begin Project Dependency - Project_Dep_Name SCA_GameLogic - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_ketsji - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name SG_SceneGraph - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_loopbacknetwork - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_openglrasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_rasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_fuzzics - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_moto - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_solid - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_openal - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_sound - End Project Dependency - Begin Project Dependency - Project_Dep_Name SYS_system - End Project Dependency -}}} - -############################################################################### - -Project: "gpplugin"=.\gpplugin.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name EXP_expressions - End Project Dependency - Begin Project Dependency - Project_Dep_Name SCA_GameLogic - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_ketsji - End Project Dependency - Begin Project Dependency - Project_Dep_Name KX_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name SG_SceneGraph - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_loopbacknetwork - End Project Dependency - Begin Project Dependency - Project_Dep_Name NG_network - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_openglrasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name RAS_rasterizer - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_fuzzics - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_moto - End Project Dependency - Begin Project Dependency - Project_Dep_Name SM_solid - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_openal - End Project Dependency - Begin Project Dependency - Project_Dep_Name SND_sound - End Project Dependency - Begin Project Dependency - Project_Dep_Name SYS_system - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "BLO_loader"=..\..\..\blender\loader\BLO_loader.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "EXP_expressions"=..\..\expression\EXP_expressions.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SCA_GameLogic"=..\..\gamelogic\SCA_GameLogic.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "KX_ketsji"=..\..\ketsji\KX_ketsji.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "KX_network"=..\..\ketsji\network\KX_network.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SG_SceneGraph"=..\..\scenegraph\SG_SceneGraph.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NG_loopbacknetwork"=..\..\network\loopbacknetwork\NG_loopbacknetwork.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "NG_network"=..\..\network\network\NG_network.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RAS_openglrasterizer"=..\..\rasterizer\openglrasterizer\RAS_openglrasterizer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "RAS_rasterizer"=..\..\rasterizer\RAS_rasterizer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SM_fuzzics"=..\..\..\sumo\fuzzics\SM_fuzzics.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SM_moto"=..\..\..\sumo\moto\SM_moto.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SM_solid"=..\..\..\sumo\solid\SM_solid.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SND_openal"=..\..\sound\openal\SND_openal.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SND_sound"=..\..\sound\SND_sound.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "SYS_system"=..\..\..\kernel\system\SYS_system.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "gp"=.\gp.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name EXP_expressions + End Project Dependency + Begin Project Dependency + Project_Dep_Name SCA_GameLogic + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_ketsji + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name SG_SceneGraph + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_loopbacknetwork + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_openglrasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_rasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_fuzzics + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_moto + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_solid + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_openal + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_sound + End Project Dependency + Begin Project Dependency + Project_Dep_Name SYS_system + End Project Dependency +}}} + +############################################################################### + +Project: "gpplugin"=.\gpplugin.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name EXP_expressions + End Project Dependency + Begin Project Dependency + Project_Dep_Name SCA_GameLogic + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_ketsji + End Project Dependency + Begin Project Dependency + Project_Dep_Name KX_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name SG_SceneGraph + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_loopbacknetwork + End Project Dependency + Begin Project Dependency + Project_Dep_Name NG_network + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_openglrasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name RAS_rasterizer + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_fuzzics + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_moto + End Project Dependency + Begin Project Dependency + Project_Dep_Name SM_solid + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_openal + End Project Dependency + Begin Project Dependency + Project_Dep_Name SND_sound + End Project Dependency + Begin Project Dependency + Project_Dep_Name SYS_system + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/projectfiles/gameengine/gameplayer/sdl/GP_sdl.dsp b/projectfiles/gameengine/gameplayer/sdl/GP_sdl.dsp index 56c758de7e9..a3a1c226d61 100644 --- a/projectfiles/gameengine/gameplayer/sdl/GP_sdl.dsp +++ b/projectfiles/gameengine/gameplayer/sdl/GP_sdl.dsp @@ -1,205 +1,205 @@ -# Microsoft Developer Studio Project File - Name="GP_sdl" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=GP_sdl - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "GP_sdl.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "GP_sdl.mak" CFG="GP_sdl - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "GP_sdl - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_sdl - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "GP_sdl - Win32 Profile" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "GP_sdl - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\sdl" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 sdl.lib sdlmain.lib kernel32.lib winspool.lib comdlg32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" - -!ELSEIF "$(CFG)" == "GP_sdl - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\sdl\debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" - -!ELSEIF "$(CFG)" == "GP_sdl - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "GP_sdl___Win32_Profile" -# PROP BASE Intermediate_Dir "GP_sdl___Win32_Profile" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "GP_sdl___Win32_Profile" -# PROP Intermediate_Dir "GP_sdl___Win32_Profile" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" -# ADD LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" - -!ENDIF - -# Begin Target - -# Name "GP_sdl - Win32 Release" -# Name "GP_sdl - Win32 Debug" -# Name "GP_sdl - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\main.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLKeyboardDevice.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLRenderTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLSystem.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLCanvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLInputDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLKeyboardDevice.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLSystem.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="GP_sdl" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=GP_sdl - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "GP_sdl.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "GP_sdl.mak" CFG="GP_sdl - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "GP_sdl - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_sdl - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE "GP_sdl - Win32 Profile" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "GP_sdl - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\sdl" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 sdl.lib sdlmain.lib kernel32.lib winspool.lib comdlg32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" + +!ELSEIF "$(CFG)" == "GP_sdl - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\gameplayer\sdl\debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" + +!ELSEIF "$(CFG)" == "GP_sdl - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "GP_sdl___Win32_Profile" +# PROP BASE Intermediate_Dir "GP_sdl___Win32_Profile" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "GP_sdl___Win32_Profile" +# PROP Intermediate_Dir "GP_sdl___Win32_Profile" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\gameengine\network\loopbacknetwork" /I "..\..\..\..\source\gameengine\gameplayer\common" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\gamelogic" /I "..\..\..\..\source\gameengine\Rasterizer" /I "..\..\..\..\source\sumo\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\sumo\Fuzzics\include" /I "..\..\..\..\..\lib\windows\sdl\SDL-1.1.7\include" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" +# ADD LINK32 glu32.lib sdlmaindebug.lib sdldebug.lib opengl32.lib user32.lib gdi32.lib advapi32.lib dxguid.lib ole32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib\windows\sdl\sdl-1.1.7\lib" /libpath:"..\..\..\..\..\lib\windows\python\lib" /libpath:"..\..\..\..\..\lib\windows\openal\lib\lib_release" + +!ENDIF + +# Begin Target + +# Name "GP_sdl - Win32 Release" +# Name "GP_sdl - Win32 Debug" +# Name "GP_sdl - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\main.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLKeyboardDevice.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLRenderTools.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLSystem.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLCanvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLInputDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLKeyboardDevice.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\GamePlayer\SDL\SDLSystem.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alc\ALc.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alu\ALu.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\alut\ALut.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alBuffer.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alEax.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alError.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alExtension.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alListener.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alSource.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\alState.obj +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\lib\windows\openal\lib\OpenAL32\OpenAL32.obj +# End Source File +# End Target +# End Project diff --git a/projectfiles/gameengine/ketsji/KX_ketsji.dsp b/projectfiles/gameengine/ketsji/KX_ketsji.dsp index b7139d01bc3..8c4370d9c9a 100644 --- a/projectfiles/gameengine/ketsji/KX_ketsji.dsp +++ b/projectfiles/gameengine/ketsji/KX_ketsji.dsp @@ -1,690 +1,690 @@ -# Microsoft Developer Studio Project File - Name="KX_ketsji" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=KX_ketsji - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "KX_ketsji.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "KX_ketsji.mak" CFG="KX_ketsji - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "KX_ketsji - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_ketsji - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_ketsji - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_ketsji - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "KX_ketsji - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\Converter" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /I "..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\source\blender\blenlib" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /D "USE_SUMO_SOLID" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_ketsji - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\Converter" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /I "..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\source\blender\blenlib" /D "JANCODEPANCO" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /D "USE_SUMO_SOLID" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_ketsji - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "KX_ketsji___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "KX_ketsji___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\ketsji\debug\KX_ketsji.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_ketsji - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "KX_ketsji___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "KX_ketsji___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\ketsji\KX_ketsji.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "KX_ketsji - Win32 Release" -# Name "KX_ketsji - Win32 Debug" -# Name "KX_ketsji - Win32 MT DLL Debug" -# Name "KX_ketsji - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Group "ActuatorsImp" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CDActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IpoActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_EndObjectActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_ReplaceMeshActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SceneActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SoundActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TrackToActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VisibilityActuator.cpp -# End Source File -# End Group -# Begin Group "SG_ControllersImp" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraIpoSGController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPO_SGController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_LightIpoSGController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObColorIpoSGController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldIpoController.cpp -# End Source File -# End Group -# Begin Group "SensorsImp" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MouseFocusSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_NearSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RadarSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RaySensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchSensor.cpp -# End Source File -# End Group -# Begin Group "IposImp" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_OrientationInterpolator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PositionInterpolator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalarInterpolator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalingInterpolator.cpp -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Material.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Shader.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Texture.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_BlenderMaterial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_BulletPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Camera.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObjects.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_EmptyObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_KetsjiEngine.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Light.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MaterialIpoController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MeshProxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MotionState.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_OdePhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PhysicsObjectWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PolygonMaterial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyConstraintBinding.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyMath.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PythonInit.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayCast.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Scene.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_BoneParentNodeRelationship.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_NodeRelationships.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SumoPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeCategoryLogger.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeLogger.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VehicleWrapper.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VertexProxy.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldInfo.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Group "Actuators" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CDActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IpoActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_EndObjectActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_ReplaceMeshActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SceneActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SoundActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TrackToActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VisibilityActuator.h -# End Source File -# End Group -# Begin Group "SG_Controllers" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraIpoSGController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPO_SGController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_LightIpoSGController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObColorIpoSGController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldIpoController.h -# End Source File -# End Group -# Begin Group "Sensors" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MouseFocusSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_NearSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RadarSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RaySensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchSensor.h -# End Source File -# End Group -# Begin Group "Ipos" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IScalarInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_OrientationInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PositionInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalarInterpolator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalingInterpolator.h -# End Source File -# End Group -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Material.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Shader.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\BL_Texture.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_BlenderMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_BulletPhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Camera.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintWrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_EmptyObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPOTransform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ISceneConverter.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_ISystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_KetsjiEngine.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Light.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MaterialIpoController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MeshProxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_MotionState.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_OdePhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PhysicsObjectWrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PolygonMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyConstraintBinding.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyMath.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_PythonInit.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayCast.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_Scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_BoneParentNodeRelationship.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_NodeRelationships.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_SumoPhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeCategoryLogger.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeLogger.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VehicleWrapper.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_VertexProxy.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldInfo.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="KX_ketsji" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=KX_ketsji - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "KX_ketsji.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "KX_ketsji.mak" CFG="KX_ketsji - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "KX_ketsji - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_ketsji - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_ketsji - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_ketsji - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "KX_ketsji - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\Converter" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /I "..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\source\blender\blenlib" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /D "USE_SUMO_SOLID" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_ketsji - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\extern\solid" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\..\lib\windows\soundsystem\include" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\Converter" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\blender\python" /I "..\..\..\source\blender\blenkernel" /I "..\..\..\source\blender\makesdna" /I "..\..\..\source\blender\include" /I "..\..\..\source\blender\imbuf" /I "..\..\..\..\lib\windows\guardedalloc\include" /I "..\..\..\source\gameengine\physics\bullet" /I "..\..\..\extern\bullet\linearmath" /I "..\..\..\extern\bullet\Bulletdynamics" /I "..\..\..\extern\bullet\Bullet" /I "..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer" /I "..\..\..\source\blender\blenlib" /D "JANCODEPANCO" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /D "USE_SUMO_SOLID" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_ketsji - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "KX_ketsji___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "KX_ketsji___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\ketsji\debug\KX_ketsji.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_ketsji - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "KX_ketsji___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "KX_ketsji___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\ketsji\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\source\gameengine\physics\common\dummy" /I "..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\..\lib\windows\moto\include" /I "..\..\..\source\kernel\gen_system" /I "..\..\..\source\gameengine\soundsystem" /I "..\..\..\source\gameengine\rasterizer" /I "..\..\..\source\gameengine\scenegraph" /I "..\..\..\source\gameengine\gamelogic" /I "..\..\..\source\gameengine\expressions" /I "..\..\..\source\sumo\include" /I "..\..\..\source\sumo\fuzzics\include" /I "..\..\..\source\gameengine\network" /I "..\..\..\source\gameengine\ketsji\kxnetwork" /I "..\..\..\source\gameengine\physics" /I "..\..\..\source\gameengine\physics\common" /I "..\..\..\source\gameengine\physics\dummy" /I "..\..\..\source\gameengine\physics\sumo" /I "..\..\..\source\gameengine\physics\sumo\fuzzics\include" /I "..\..\..\source\gameengine\physics\sumo\include" /I "..\..\..\source\gameengine\physics\BlOde" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "EXP_PYTHON_EMBEDDING" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\ketsji\KX_ketsji.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "KX_ketsji - Win32 Release" +# Name "KX_ketsji - Win32 Debug" +# Name "KX_ketsji - Win32 MT DLL Debug" +# Name "KX_ketsji - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "ActuatorsImp" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CDActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IpoActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_EndObjectActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_ReplaceMeshActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SceneActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SoundActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TrackToActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VisibilityActuator.cpp +# End Source File +# End Group +# Begin Group "SG_ControllersImp" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraIpoSGController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPO_SGController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_LightIpoSGController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObColorIpoSGController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldIpoController.cpp +# End Source File +# End Group +# Begin Group "SensorsImp" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MouseFocusSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_NearSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RadarSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RaySensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchSensor.cpp +# End Source File +# End Group +# Begin Group "IposImp" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_OrientationInterpolator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PositionInterpolator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalarInterpolator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalingInterpolator.cpp +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Material.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Shader.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Texture.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_BlenderMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_BulletPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Camera.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObjects.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_EmptyObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_KetsjiEngine.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Light.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MaterialIpoController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MeshProxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MotionState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_OdePhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PhysicsObjectWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PolygonMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyConstraintBinding.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyMath.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PythonInit.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayCast.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Scene.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_BoneParentNodeRelationship.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_NodeRelationships.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SumoPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeCategoryLogger.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeLogger.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VehicleWrapper.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VertexProxy.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldInfo.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Group "Actuators" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CDActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IpoActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObjectActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_AddObjectActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_EndObjectActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SCA_ReplaceMeshActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SceneActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SoundActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TrackToActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VisibilityActuator.h +# End Source File +# End Group +# Begin Group "SG_Controllers" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_CameraIpoSGController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPO_SGController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_LightIpoSGController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ObColorIpoSGController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldIpoController.h +# End Source File +# End Group +# Begin Group "Sensors" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MouseFocusSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_NearSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RadarSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RaySensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchSensor.h +# End Source File +# End Group +# Begin Group "Ipos" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IScalarInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_OrientationInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PositionInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalarInterpolator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ScalingInterpolator.h +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Material.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Shader.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\BL_Texture.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_BlenderMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_BulletPhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Camera.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConstraintWrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_EmptyObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_GameObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_IPOTransform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ISceneConverter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_ISystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_KetsjiEngine.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Light.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MaterialIpoController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MeshProxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_MotionState.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_OdePhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PhysicsObjectWrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PolygonMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyConstraintBinding.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PyMath.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_PythonInit.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayCast.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_RayEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_Scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_BoneParentNodeRelationship.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SG_NodeRelationships.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_SumoPhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeCategoryLogger.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TimeLogger.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_TouchEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VehicleWrapper.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_VertexProxy.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Ketsji\KX_WorldInfo.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/ketsji/network/KX_network.dsp b/projectfiles/gameengine/ketsji/network/KX_network.dsp index 0c265e9dd56..7a67a825988 100644 --- a/projectfiles/gameengine/ketsji/network/KX_network.dsp +++ b/projectfiles/gameengine/ketsji/network/KX_network.dsp @@ -1,186 +1,186 @@ -# Microsoft Developer Studio Project File - Name="KX_network" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=KX_network - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "KX_network.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "KX_network.mak" CFG="KX_network - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "KX_network - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_network - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_network - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "KX_network - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "KX_network - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_network - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_network - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "KX_network___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "KX_network___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\ketsji\network\debug\KX_network.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "KX_network - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "KX_network___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "KX_network___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\ketsji\network\KX_network.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "KX_network - Win32 Release" -# Name "KX_network - Win32 Debug" -# Name "KX_network - Win32 MT DLL Debug" -# Name "KX_network - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageSensor.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectActuator.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectSensor.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageSensor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectActuator.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectSensor.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="KX_network" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=KX_network - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "KX_network.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "KX_network.mak" CFG="KX_network - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "KX_network - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_network - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_network - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "KX_network - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "KX_network - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_network - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\python\include\python2.4" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_network - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "KX_network___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "KX_network___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\..\lib\windows\python\include\python1.5" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "WIN32" /D "_MBCS" /D "_LIB" /U "_DEBUG" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\ketsji\network\debug\KX_network.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "KX_network - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "KX_network___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "KX_network___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\ketsji\network\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /I "..\..\..\..\..\lib\windows\python\include\python2.0" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\python\include\python2.0" /I "..\..\..\..\..\lib\windows\python\include\python2.2" /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\gameengine\ketsji" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\GameLogic" /I "..\..\..\..\source\gameengine\expressions" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\ketsji\network\KX_network.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "KX_network - Win32 Release" +# Name "KX_network - Win32 Debug" +# Name "KX_network - Win32 MT DLL Debug" +# Name "KX_network - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageSensor.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectActuator.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectSensor.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkEventManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkMessageSensor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectActuator.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Ketsji\KXNetwork\KX_NetworkObjectSensor.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/network/loopbacknetwork/NG_loopbacknetwork.dsp b/projectfiles/gameengine/network/loopbacknetwork/NG_loopbacknetwork.dsp index 08bd4a1326d..30c08933fad 100644 --- a/projectfiles/gameengine/network/loopbacknetwork/NG_loopbacknetwork.dsp +++ b/projectfiles/gameengine/network/loopbacknetwork/NG_loopbacknetwork.dsp @@ -1,155 +1,155 @@ -# Microsoft Developer Studio Project File - Name="NG_loopbacknetwork" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=NG_loopbacknetwork - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "NG_loopbacknetwork.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "NG_loopbacknetwork.mak" CFG="NG_loopbacknetwork - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "NG_loopbacknetwork - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_loopbacknetwork - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_loopbacknetwork - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_loopbacknetwork - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "NG_loopbacknetwork - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "NG_loopbacknetwork___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "NG_loopbacknetwork___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug\NG_loopbacknetwork.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "NG_loopbacknetwork___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "NG_loopbacknetwork___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\NG_loopbacknetwork.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "NG_loopbacknetwork - Win32 Release" -# Name "NG_loopbacknetwork - Win32 Debug" -# Name "NG_loopbacknetwork - Win32 MT DLL Debug" -# Name "NG_loopbacknetwork - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="NG_loopbacknetwork" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=NG_loopbacknetwork - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "NG_loopbacknetwork.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "NG_loopbacknetwork.mak" CFG="NG_loopbacknetwork - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "NG_loopbacknetwork - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_loopbacknetwork - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_loopbacknetwork - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_loopbacknetwork - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "NG_loopbacknetwork - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "NG_loopbacknetwork___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "NG_loopbacknetwork___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\debug\NG_loopbacknetwork.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_loopbacknetwork - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "NG_loopbacknetwork___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "NG_loopbacknetwork___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\source\gameengine\Network" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\loopbacknetwork\NG_loopbacknetwork.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "NG_loopbacknetwork - Win32 Release" +# Name "NG_loopbacknetwork - Win32 Debug" +# Name "NG_loopbacknetwork - Win32 MT DLL Debug" +# Name "NG_loopbacknetwork - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\LoopBackNetwork\NG_LoopBackNetworkDeviceInterface.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/network/network/NG_network.dsp b/projectfiles/gameengine/network/network/NG_network.dsp index 8c13c01f7e7..ca67963500c 100644 --- a/projectfiles/gameengine/network/network/NG_network.dsp +++ b/projectfiles/gameengine/network/network/NG_network.dsp @@ -1,174 +1,174 @@ -# Microsoft Developer Studio Project File - Name="NG_network" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=NG_network - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "NG_network.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "NG_network.mak" CFG="NG_network - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "NG_network - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_network - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_network - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_network - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "NG_network - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_network - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_network - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "NG_network___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "NG_network___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\network\debug\NG_network.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_network - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "NG_network___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "NG_network___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\network\NG_network.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "NG_network - Win32 Release" -# Name "NG_network - Win32 Debug" -# Name "NG_network - Win32 MT DLL Debug" -# Name "NG_network - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkMessage.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkScene.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkMessage.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkScene.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="NG_network" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=NG_network - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "NG_network.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "NG_network.mak" CFG="NG_network - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "NG_network - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_network - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_network - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_network - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "NG_network - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_network - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\..\lib\windows\moto\include" /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_network - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "NG_network___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "NG_network___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\network\debug\NG_network.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_network - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "NG_network___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "NG_network___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\network\network\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\network\NG_network.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "NG_network - Win32 Release" +# Name "NG_network - Win32 Debug" +# Name "NG_network - Win32 MT DLL Debug" +# Name "NG_network - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkMessage.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkScene.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkDeviceInterface.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkMessage.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\NG_NetworkScene.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/network/terraplaynetwork/NG_terraplaynetwork.dsp b/projectfiles/gameengine/network/terraplaynetwork/NG_terraplaynetwork.dsp index ce407eda0f7..6653783bcae 100644 --- a/projectfiles/gameengine/network/terraplaynetwork/NG_terraplaynetwork.dsp +++ b/projectfiles/gameengine/network/terraplaynetwork/NG_terraplaynetwork.dsp @@ -1,180 +1,180 @@ -# Microsoft Developer Studio Project File - Name="NG_terraplaynetwork" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=NG_terraplaynetwork - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "NG_terraplaynetwork.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "NG_terraplaynetwork.mak" CFG="NG_terraplaynetwork - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "NG_terraplaynetwork - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_terraplaynetwork - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_terraplaynetwork - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_terraplaynetwork - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "NG_terraplaynetwork - Win32 Profile" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "NG_terraplaynetwork - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\NG_terraplaynetwork.lib" - -!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" - -!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\NG_terraplaynetwork.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_Profile" -# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "NG_terraplaynetwork___Win32_Profile" -# PROP Intermediate_Dir "NG_terraplaynetwork___Win32_Profile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" -# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\profile\NG_terraplaynetwork.lib" - -!ENDIF - -# Begin Target - -# Name "NG_terraplaynetwork - Win32 Release" -# Name "NG_terraplaynetwork - Win32 Debug" -# Name "NG_terraplaynetwork - Win32 MT DLL Debug" -# Name "NG_terraplaynetwork - Win32 MT DLL Release" -# Name "NG_terraplaynetwork - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\TerraplayNetwork\NG_TerraplayNetworkDeviceInterface.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Network\TerraplayNetwork\NG_TerraplayNetworkDeviceInterface.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="NG_terraplaynetwork" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=NG_terraplaynetwork - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "NG_terraplaynetwork.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "NG_terraplaynetwork.mak" CFG="NG_terraplaynetwork - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "NG_terraplaynetwork - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_terraplaynetwork - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_terraplaynetwork - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_terraplaynetwork - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "NG_terraplaynetwork - Win32 Profile" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "NG_terraplaynetwork - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\NG_terraplaynetwork.lib" + +!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" + +!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\NG_terraplaynetwork.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "NG_terraplaynetwork - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "NG_terraplaynetwork___Win32_Profile" +# PROP BASE Intermediate_Dir "NG_terraplaynetwork___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "NG_terraplaynetwork___Win32_Profile" +# PROP Intermediate_Dir "NG_terraplaynetwork___Win32_Profile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\..\source\gameengine\network" /I "..\..\..\..\source\kernel\gen_system" /I "..\..\..\..\..\lib\windows\terraplay\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\debug\NG_terraplaynetwork.lib" +# ADD LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\network\terraplaynetwork\profile\NG_terraplaynetwork.lib" + +!ENDIF + +# Begin Target + +# Name "NG_terraplaynetwork - Win32 Release" +# Name "NG_terraplaynetwork - Win32 Debug" +# Name "NG_terraplaynetwork - Win32 MT DLL Debug" +# Name "NG_terraplaynetwork - Win32 MT DLL Release" +# Name "NG_terraplaynetwork - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\TerraplayNetwork\NG_TerraplayNetworkDeviceInterface.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Network\TerraplayNetwork\NG_TerraplayNetworkDeviceInterface.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/physics/PHY_Physics/PHY_Dummy/PHY_Dummy.dsp b/projectfiles/gameengine/physics/PHY_Physics/PHY_Dummy/PHY_Dummy.dsp index 0cc26260fd0..0620baa5d03 100644 --- a/projectfiles/gameengine/physics/PHY_Physics/PHY_Dummy/PHY_Dummy.dsp +++ b/projectfiles/gameengine/physics/PHY_Physics/PHY_Dummy/PHY_Dummy.dsp @@ -1,154 +1,154 @@ -# Microsoft Developer Studio Project File - Name="PHY_Dummy" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=PHY_Dummy - Win32 MT DLL Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "PHY_Dummy.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "PHY_Dummy.mak" CFG="PHY_Dummy - Win32 MT DLL Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "PHY_Dummy - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Dummy - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Dummy - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Dummy - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "PHY_Dummy - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GR /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "PHY_Dummy___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "PHY_Dummy___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "PHY_Dummy___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "PHY_Dummy___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "PHY_Dummy - Win32 Release" -# Name "PHY_Dummy - Win32 Debug" -# Name "PHY_Dummy - Win32 MT DLL Debug" -# Name "PHY_Dummy - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Dummy\DummyPhysicsEnvironment.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Dummy\DummyPhysicsEnvironment.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="PHY_Dummy" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=PHY_Dummy - Win32 MT DLL Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "PHY_Dummy.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "PHY_Dummy.mak" CFG="PHY_Dummy - Win32 MT DLL Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "PHY_Dummy - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Dummy - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Dummy - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Dummy - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "PHY_Dummy - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GR /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "PHY_Dummy___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "PHY_Dummy___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Dummy - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "PHY_Dummy___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "PHY_Dummy___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\dummy\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "PHY_Dummy - Win32 Release" +# Name "PHY_Dummy - Win32 Debug" +# Name "PHY_Dummy - Win32 MT DLL Debug" +# Name "PHY_Dummy - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Dummy\DummyPhysicsEnvironment.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Dummy\DummyPhysicsEnvironment.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp b/projectfiles/gameengine/physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp index fef5dbf63f5..9d607db809c 100644 --- a/projectfiles/gameengine/physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp +++ b/projectfiles/gameengine/physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp @@ -1,162 +1,162 @@ -# Microsoft Developer Studio Project File - Name="PHY_Ode" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=PHY_Ode - Win32 MT DLL Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "PHY_Ode.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "PHY_Ode.mak" CFG="PHY_Ode - Win32 MT DLL Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "PHY_Ode - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Ode - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Ode - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Ode - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "PHY_Ode - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GR /GX /O2 /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Ode - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Ode - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "PHY_Ode___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "PHY_Ode___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /I "../../../../../source/ode/include" /I "..\..\..\..\..\..\lib\windows\ode\include" /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "dSINGLE" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Ode - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "PHY_Ode___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "PHY_Ode___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../../lib/windows/ode/include" /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "dSINGLE" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "PHY_Ode - Win32 Release" -# Name "PHY_Ode - Win32 Debug" -# Name "PHY_Ode - Win32 MT DLL Release" -# Name "PHY_Ode - Win32 MT DLL Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsEnvironment.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsEnvironment.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="PHY_Ode" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=PHY_Ode - Win32 MT DLL Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "PHY_Ode.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "PHY_Ode.mak" CFG="PHY_Ode - Win32 MT DLL Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "PHY_Ode - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Ode - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Ode - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Ode - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "PHY_Ode - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GR /GX /O2 /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Ode - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Ode - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "PHY_Ode___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "PHY_Ode___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /I "../../../../../source/ode/include" /I "..\..\..\..\..\..\lib\windows\ode\include" /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "dSINGLE" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Ode - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "PHY_Ode___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "PHY_Ode___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\..\obj\windows\gameengine\physics\ode\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../../../../lib/windows/ode/include" /I "../../../../../source/gameengine/physics/common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "dSINGLE" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\..\lib\windows\ode\include" /I "..\..\..\..\..\source\gameengine\physics\common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "PHY_Ode - Win32 Release" +# Name "PHY_Ode - Win32 Debug" +# Name "PHY_Ode - Win32 MT DLL Release" +# Name "PHY_Ode - Win32 MT DLL Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsEnvironment.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\BlOde\OdePhysicsEnvironment.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/physics/PHY_Physics/PHY_Physics.dsp b/projectfiles/gameengine/physics/PHY_Physics/PHY_Physics.dsp index f54875c2c18..bdf4e0f5db5 100644 --- a/projectfiles/gameengine/physics/PHY_Physics/PHY_Physics.dsp +++ b/projectfiles/gameengine/physics/PHY_Physics/PHY_Physics.dsp @@ -1,178 +1,178 @@ -# Microsoft Developer Studio Project File - Name="PHY_Physics" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=PHY_Physics - Win32 MT DLL Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "PHY_Physics.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "PHY_Physics.mak" CFG="PHY_Physics - Win32 MT DLL Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "PHY_Physics - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Physics - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Physics - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Physics - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "PHY_Physics - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GR /GX /O2 /I "common" /I "dummy" /I "../../../../extern/solid/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Physics - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "common" /I "dummy" /I "../../../../extern/solid/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Physics - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "PHY_Physics___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "PHY_Physics___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "common" /I "dummy" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "common" /I "dummy" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "PHY_Physics - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "PHY_Physics___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "PHY_Physics___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /I "common" /I "dummy" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "common" /I "dummy" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "PHY_Physics - Win32 Release" -# Name "PHY_Physics - Win32 Debug" -# Name "PHY_Physics - Win32 MT DLL Debug" -# Name "PHY_Physics - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IMotionState.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsEnvironment.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_DynamicTypes.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IMotionState.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsEnvironment.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_Pro.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="PHY_Physics" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=PHY_Physics - Win32 MT DLL Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "PHY_Physics.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "PHY_Physics.mak" CFG="PHY_Physics - Win32 MT DLL Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "PHY_Physics - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Physics - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Physics - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Physics - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "PHY_Physics - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GR /GX /O2 /I "common" /I "dummy" /I "../../../../extern/solid/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Physics - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "common" /I "dummy" /I "../../../../extern/solid/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Physics - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "PHY_Physics___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "PHY_Physics___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "common" /I "dummy" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "common" /I "dummy" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "PHY_Physics - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "PHY_Physics___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "PHY_Physics___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\physics\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /I "common" /I "dummy" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "common" /I "dummy" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "PHY_Physics - Win32 Release" +# Name "PHY_Physics - Win32 Debug" +# Name "PHY_Physics - Win32 MT DLL Debug" +# Name "PHY_Physics - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IMotionState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsEnvironment.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_DynamicTypes.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IMotionState.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_IPhysicsEnvironment.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Physics\common\PHY_Pro.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp b/projectfiles/gameengine/physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp index 8f148363add..1a9f6e98201 100644 --- a/projectfiles/gameengine/physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp +++ b/projectfiles/gameengine/physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp @@ -1,162 +1,162 @@ -# Microsoft Developer Studio Project File - Name="PHY_Sumo" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=PHY_Sumo - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "PHY_Sumo.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "PHY_Sumo.mak" CFG="PHY_Sumo - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "PHY_Sumo - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "PHY_Sumo - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "PHY_Sumo - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../../../extern/solid" /I "../../../../../source/gameengine/physics" /I "../../../../../source/gameengine/physics/common" /I "../../../../../source/gameengine/physics/sumo" /I "../../../../../source/gameengine/physics/sumo/include" /I "../../../../../source/gameengine/physics/sumo/fuzzics/include" /I "../../../../../../lib/windows/Moto/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\gameengine\physics\sumo\PHY_Sumo.lib" - -!ELSEIF "$(CFG)" == "PHY_Sumo - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "../../../../../extern/solid" /I "../../../../../source/gameengine/physics" /I "../../../../../source/gameengine/physics/common" /I "../../../../../source/gameengine/physics/sumo" /I "../../../../../source/gameengine/physics/sumo/include" /I "../../../../../source/gameengine/physics/sumo/fuzzics/include" /I "../../../../../../lib/windows/Moto/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\gameengine\physics\sumo\debug\PHY_Sumo.lib" - -!ENDIF - -# Begin Target - -# Name "PHY_Sumo - Win32 Release" -# Name "PHY_Sumo - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_FhObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_MotionState.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Object.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Scene.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPHYCallbackBridge.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsController.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsEnvironment.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Callback.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_ClientObjectInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_FhObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_MotionState.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Object.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Props.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Scene.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPHYCallbackBridge.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsController.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsEnvironment.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="PHY_Sumo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=PHY_Sumo - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "PHY_Sumo.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "PHY_Sumo.mak" CFG="PHY_Sumo - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "PHY_Sumo - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "PHY_Sumo - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "PHY_Sumo - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../../../extern/solid" /I "../../../../../source/gameengine/physics" /I "../../../../../source/gameengine/physics/common" /I "../../../../../source/gameengine/physics/sumo" /I "../../../../../source/gameengine/physics/sumo/include" /I "../../../../../source/gameengine/physics/sumo/fuzzics/include" /I "../../../../../../lib/windows/Moto/include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\gameengine\physics\sumo\PHY_Sumo.lib" + +!ELSEIF "$(CFG)" == "PHY_Sumo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "../../../../../extern/solid" /I "../../../../../source/gameengine/physics" /I "../../../../../source/gameengine/physics/common" /I "../../../../../source/gameengine/physics/sumo" /I "../../../../../source/gameengine/physics/sumo/include" /I "../../../../../source/gameengine/physics/sumo/fuzzics/include" /I "../../../../../../lib/windows/Moto/include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\gameengine\physics\sumo\debug\PHY_Sumo.lib" + +!ENDIF + +# Begin Target + +# Name "PHY_Sumo - Win32 Release" +# Name "PHY_Sumo - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_FhObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_MotionState.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Object.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Scene.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPHYCallbackBridge.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsController.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsEnvironment.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Callback.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_ClientObjectInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_FhObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_MotionState.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Object.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Props.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Scene.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPHYCallbackBridge.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsController.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\source\gameengine\Physics\Sumo\SumoPhysicsEnvironment.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/rasterizer/RAS_rasterizer.dsp b/projectfiles/gameengine/rasterizer/RAS_rasterizer.dsp index c764823632e..bb960e95969 100644 --- a/projectfiles/gameengine/rasterizer/RAS_rasterizer.dsp +++ b/projectfiles/gameengine/rasterizer/RAS_rasterizer.dsp @@ -1,243 +1,243 @@ -# Microsoft Developer Studio Project File - Name="RAS_rasterizer" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=RAS_rasterizer - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "RAS_rasterizer.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "RAS_rasterizer.mak" CFG="RAS_rasterizer - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "RAS_rasterizer - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_rasterizer - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_rasterizer - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_rasterizer - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "RAS_rasterizer - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "RAS_rasterizer___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "RAS_rasterizer___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "../../../../lib/windows/moto/include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\rasterizer\debug\RAS_rasterizer.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "RAS_rasterizer___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "RAS_rasterizer___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "../../../../lib/windows/moto/include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\rasterizer\RAS_rasterizer.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "RAS_rasterizer - Win32 Release" -# Name "RAS_rasterizer - Win32 Debug" -# Name "RAS_rasterizer - Win32 MT DLL Debug" -# Name "RAS_rasterizer - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_FramingManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Polygon.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_texmatrix.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexVert.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_CameraData.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Deformer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_FramingManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_LightObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_ObjectColor.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexMatrix.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="RAS_rasterizer" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=RAS_rasterizer - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "RAS_rasterizer.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "RAS_rasterizer.mak" CFG="RAS_rasterizer - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "RAS_rasterizer - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_rasterizer - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_rasterizer - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_rasterizer - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "RAS_rasterizer - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\lib\windows\moto\include\\" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "RAS_rasterizer___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "RAS_rasterizer___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "../../../../lib/windows/moto/include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\rasterizer\debug\RAS_rasterizer.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_rasterizer - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "RAS_rasterizer___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "RAS_rasterizer___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\rasterizer\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "../../../../lib/windows/moto/include" /I "..\..\..\..\lib\windows\string\include" /I "..\..\..\source\kernel\gen_system" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\rasterizer\RAS_rasterizer.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "RAS_rasterizer - Win32 Release" +# Name "RAS_rasterizer - Win32 Debug" +# Name "RAS_rasterizer - Win32 MT DLL Debug" +# Name "RAS_rasterizer - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_FramingManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Polygon.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_texmatrix.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexVert.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_BucketManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_CameraData.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Deformer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_FramingManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_ICanvas.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IPolygonMaterial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRasterizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_IRenderTools.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_LightObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MaterialBucket.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_MeshObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_ObjectColor.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_Polygon.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexMatrix.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Rasterizer\RAS_TexVert.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.dsp b/projectfiles/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.dsp index 1f1b95291ed..8b4cce618d1 100644 --- a/projectfiles/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.dsp +++ b/projectfiles/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.dsp @@ -1,183 +1,183 @@ -# Microsoft Developer Studio Project File - Name="RAS_openglrasterizer" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=RAS_openglrasterizer - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "RAS_openglrasterizer.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "RAS_openglrasterizer.mak" CFG="RAS_openglrasterizer - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "RAS_openglrasterizer - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_openglrasterizer - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_openglrasterizer - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "RAS_openglrasterizer - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "RAS_openglrasterizer - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "RAS_openglrasterizer___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "RAS_openglrasterizer___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug\RAS_openglrasterizer.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "RAS_openglrasterizer___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "RAS_openglrasterizer___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -MTL=midl.exe -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I ".../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\RAS_openglrasterizer.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "RAS_openglrasterizer - Win32 Release" -# Name "RAS_openglrasterizer - Win32 Debug" -# Name "RAS_openglrasterizer - Win32 MT DLL Debug" -# Name "RAS_openglrasterizer - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_GLExtensionManager.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_ListRasterizer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_VAOpenGLRasterizer.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_GLExtensionManager.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_ListRasterizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_VAOpenGLRasterizer.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="RAS_openglrasterizer" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=RAS_openglrasterizer - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "RAS_openglrasterizer.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "RAS_openglrasterizer.mak" CFG="RAS_openglrasterizer - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "RAS_openglrasterizer - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_openglrasterizer - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_openglrasterizer - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "RAS_openglrasterizer - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "RAS_openglrasterizer - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "RAS_openglrasterizer___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "RAS_openglrasterizer___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\debug\RAS_openglrasterizer.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "RAS_openglrasterizer - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "RAS_openglrasterizer___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "RAS_openglrasterizer___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +MTL=midl.exe +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\..\source\kernel\gen_system" /I ".../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\..\lib\windows\string\include" /I "..\..\..\..\source\kernel\gen_system" /I "../../../../../lib/windows/moto/include" /I "..\..\..\..\source\gameengine\Rasterizer" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\..\obj\windows\gameengine\rasterizer\openglrasterizer\RAS_openglrasterizer.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "RAS_openglrasterizer - Win32 Release" +# Name "RAS_openglrasterizer - Win32 Debug" +# Name "RAS_openglrasterizer - Win32 MT DLL Debug" +# Name "RAS_openglrasterizer - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_GLExtensionManager.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_ListRasterizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_VAOpenGLRasterizer.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_GLExtensionManager.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_ListRasterizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_OpenGLRasterizer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer\RAS_VAOpenGLRasterizer.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/gameengine/scenegraph/SG_scenegraph.dsp b/projectfiles/gameengine/scenegraph/SG_scenegraph.dsp index 5a2b4c8cba3..72777059b50 100644 --- a/projectfiles/gameengine/scenegraph/SG_scenegraph.dsp +++ b/projectfiles/gameengine/scenegraph/SG_scenegraph.dsp @@ -1,199 +1,199 @@ -# Microsoft Developer Studio Project File - Name="SG_SceneGraph" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SG_SceneGraph - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SG_SceneGraph.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SG_SceneGraph.mak" CFG="SG_SceneGraph - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SG_SceneGraph - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SG_SceneGraph - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SG_SceneGraph - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SG_SceneGraph - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SG_SceneGraph - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SG_SceneGraph___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SG_SceneGraph___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\scenegraph\debug\SG_SceneGraph.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SG_SceneGraph___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SG_SceneGraph___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\scenegraph\SG_SceneGraph.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "SG_SceneGraph - Win32 Release" -# Name "SG_SceneGraph - Win32 Debug" -# Name "SG_SceneGraph - Win32 MT DLL Debug" -# Name "SG_SceneGraph - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_BBox.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Controller.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_IObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Node.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Spatial.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Tree.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_BBox.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Controller.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_IObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Node.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_ParentRelation.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Spatial.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Tree.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SG_SceneGraph" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SG_SceneGraph - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SG_SceneGraph.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SG_SceneGraph.mak" CFG="SG_SceneGraph - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SG_SceneGraph - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SG_SceneGraph - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SG_SceneGraph - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SG_SceneGraph - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SG_SceneGraph - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SG_SceneGraph___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SG_SceneGraph___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\scenegraph\debug\SG_SceneGraph.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SG_SceneGraph - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SG_SceneGraph___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SG_SceneGraph___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\scenegraph\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\scenegraph\SG_SceneGraph.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "SG_SceneGraph - Win32 Release" +# Name "SG_SceneGraph - Win32 Debug" +# Name "SG_SceneGraph - Win32 MT DLL Debug" +# Name "SG_SceneGraph - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_BBox.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Controller.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_IObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Node.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Spatial.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Tree.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_BBox.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Controller.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_IObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Node.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_ParentRelation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Spatial.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\SceneGraph\SG_Tree.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/kernel/gen_messaging/gen_messaging.dsp b/projectfiles/kernel/gen_messaging/gen_messaging.dsp index 578f8971122..8aebbedecde 100644 --- a/projectfiles/kernel/gen_messaging/gen_messaging.dsp +++ b/projectfiles/kernel/gen_messaging/gen_messaging.dsp @@ -1,155 +1,155 @@ -# Microsoft Developer Studio Project File - Name="gen_messaging" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=gen_messaging - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "gen_messaging.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "gen_messaging.mak" CFG="gen_messaging - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "gen_messaging - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "gen_messaging - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "gen_messaging - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "gen_messaging - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "gen_messaging - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging" -# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "gen_messaging - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "gen_messaging - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "gen_messaging___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "gen_messaging___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "gen_messaging - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "gen_messaging___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "gen_messaging___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "gen_messaging - Win32 Release" -# Name "gen_messaging - Win32 Debug" -# Name "gen_messaging - Win32 MT DLL Release" -# Name "gen_messaging - Win32 MT DLL Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_messaging\intern\messaging.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_messaging\GEN_messaging.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="gen_messaging" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=gen_messaging - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "gen_messaging.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "gen_messaging.mak" CFG="gen_messaging - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "gen_messaging - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "gen_messaging - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "gen_messaging - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "gen_messaging - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gen_messaging - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging" +# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "gen_messaging - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "gen_messaging - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "gen_messaging___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "gen_messaging___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "gen_messaging - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "gen_messaging___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "gen_messaging___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\kernel\gen_messaging\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\source\kernel\gen_messaging" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "gen_messaging - Win32 Release" +# Name "gen_messaging - Win32 Debug" +# Name "gen_messaging - Win32 MT DLL Release" +# Name "gen_messaging - Win32 MT DLL Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_messaging\intern\messaging.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_messaging\GEN_messaging.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/kernel/system/SYS_system.dsp b/projectfiles/kernel/system/SYS_system.dsp index b424839e4ba..c5b66202f9c 100644 --- a/projectfiles/kernel/system/SYS_system.dsp +++ b/projectfiles/kernel/system/SYS_system.dsp @@ -1,183 +1,183 @@ -# Microsoft Developer Studio Project File - Name="SYS_system" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SYS_system - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SYS_system.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SYS_system.mak" CFG="SYS_system - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SYS_system - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SYS_system - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SYS_system - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SYS_system - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SYS_system - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SYS_system - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SYS_system - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SYS_system___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SYS_system___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\kernel\gen_system\debug\SYS_system.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SYS_system - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SYS_system___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SYS_system___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\kernel\gen_system\SYS_system.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "SYS_system - Win32 Release" -# Name "SYS_system - Win32 Debug" -# Name "SYS_system - Win32 MT DLL Debug" -# Name "SYS_system - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\GEN_HashedPtr.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\SYS_SingletonSystem.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\SYS_System.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\GEN_DataCache.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\GEN_HashedPtr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\GEN_Map.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\GEN_SmartPtr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\SYS_SingletonSystem.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\kernel\gen_system\SYS_System.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SYS_system" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SYS_system - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SYS_system.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SYS_system.mak" CFG="SYS_system - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SYS_system - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SYS_system - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SYS_system - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SYS_system - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SYS_system - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SYS_system - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SYS_system - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SYS_system___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SYS_system___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /MDd /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\kernel\gen_system\debug\SYS_system.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SYS_system - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SYS_system___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SYS_system___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\gameengine\kernel\gen_system\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\..\lib\windows\string\include" /I "../../../../../lib/windows/moto/include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\gameengine\kernel\gen_system\SYS_system.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "SYS_system - Win32 Release" +# Name "SYS_system - Win32 Debug" +# Name "SYS_system - Win32 MT DLL Debug" +# Name "SYS_system - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\GEN_HashedPtr.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\SYS_SingletonSystem.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\SYS_System.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\GEN_DataCache.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\GEN_HashedPtr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\GEN_Map.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\GEN_SmartPtr.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\SYS_SingletonSystem.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\kernel\gen_system\SYS_System.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/sumo/fuzzics/SM_fuzzics.dsp b/projectfiles/sumo/fuzzics/SM_fuzzics.dsp index c415810d2c9..8804fdcb796 100644 --- a/projectfiles/sumo/fuzzics/SM_fuzzics.dsp +++ b/projectfiles/sumo/fuzzics/SM_fuzzics.dsp @@ -1,216 +1,216 @@ -# Microsoft Developer Studio Project File - Name="SM_fuzzics" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SM_fuzzics - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SM_fuzzics.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SM_fuzzics.mak" CFG="SM_fuzzics - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SM_fuzzics - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_fuzzics - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_fuzzics - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_fuzzics - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_fuzzics - Win32 Profile" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SM_fuzzics - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\sumo\fuzzics" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\fuzzics" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "../../../extern/solid" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\sumo\fuzzics\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\fuzzics\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "../../../extern/solid" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_fuzzics___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\fuzzics\debug\SM_fuzzics.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SM_fuzzics___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\fuzzics\SM_fuzzics.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_fuzzics___Win32_Profile" -# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "SM_fuzzics___Win32_Profile" -# PROP Intermediate_Dir "SM_fuzzics___Win32_Profile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\fuzzics\debug\SM_fuzzics.lib" -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\fuzzics\profile\SM_fuzzics.lib" - -!ENDIF - -# Begin Target - -# Name "SM_fuzzics - Win32 Release" -# Name "SM_fuzzics - Win32 Debug" -# Name "SM_fuzzics - Win32 MT DLL Debug" -# Name "SM_fuzzics - Win32 MT DLL Release" -# Name "SM_fuzzics - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_FhObject.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Object.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Scene.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Callback.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_ClientObjectInfo.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Debug.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_FhObject.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_MotionState.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Object.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Props.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Scene.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SM_fuzzics" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SM_fuzzics - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SM_fuzzics.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SM_fuzzics.mak" CFG="SM_fuzzics - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SM_fuzzics - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_fuzzics - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_fuzzics - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_fuzzics - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_fuzzics - Win32 Profile" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SM_fuzzics - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\sumo\fuzzics" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\fuzzics" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "../../../extern/solid" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\sumo\fuzzics\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\fuzzics\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "../../../extern/solid" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_fuzzics___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\fuzzics\debug\SM_fuzzics.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SM_fuzzics___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\fuzzics\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\fuzzics\SM_fuzzics.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_fuzzics - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_fuzzics___Win32_Profile" +# PROP BASE Intermediate_Dir "SM_fuzzics___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SM_fuzzics___Win32_Profile" +# PROP Intermediate_Dir "SM_fuzzics___Win32_Profile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\Fuzzics\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\fuzzics\debug\SM_fuzzics.lib" +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\fuzzics\profile\SM_fuzzics.lib" + +!ENDIF + +# Begin Target + +# Name "SM_fuzzics - Win32 Release" +# Name "SM_fuzzics - Win32 Debug" +# Name "SM_fuzzics - Win32 MT DLL Debug" +# Name "SM_fuzzics - Win32 MT DLL Release" +# Name "SM_fuzzics - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_FhObject.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Object.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\src\SM_Scene.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Callback.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_ClientObjectInfo.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Debug.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_FhObject.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_MotionState.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Object.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Props.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\gameengine\Physics\Sumo\Fuzzics\include\SM_Scene.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/sumo/moto/SM_moto.dsp b/projectfiles/sumo/moto/SM_moto.dsp index 3fd627ce60d..0a27fad5a0d 100644 --- a/projectfiles/sumo/moto/SM_moto.dsp +++ b/projectfiles/sumo/moto/SM_moto.dsp @@ -1,332 +1,332 @@ -# Microsoft Developer Studio Project File - Name="SM_moto" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SM_moto - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SM_moto.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SM_moto.mak" CFG="SM_moto - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SM_moto - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 Profile" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SM_moto - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" - -!ELSEIF "$(CFG)" == "SM_moto - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" - -!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_moto - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_moto___Win32_Profile" -# PROP BASE Intermediate_Dir "SM_moto___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "SM_moto___Win32_Profile" -# PROP Intermediate_Dir "SM_moto___Win32_Profile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\profile\SM_moto.lib" - -!ENDIF - -# Begin Target - -# Name "SM_moto - Win32 Release" -# Name "SM_moto - Win32 Debug" -# Name "SM_moto - Win32 MT DLL Debug" -# Name "SM_moto - Win32 MT DLL Release" -# Name "SM_moto - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_CmMatrix4x4.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix3x3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix4x4.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Point3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Quaternion.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_random.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Transform.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector2.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector4.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\GEN_List.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\GEN_Map.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_assert.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_CmMatrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_MinMax.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Optimize.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_random.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Scalar.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Stream.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Transform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\NM_Scalar.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SM_moto" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SM_moto - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SM_moto.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SM_moto.mak" CFG="SM_moto - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SM_moto - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 Profile" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SM_moto - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" + +!ELSEIF "$(CFG)" == "SM_moto - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" + +!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_moto - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_moto___Win32_Profile" +# PROP BASE Intermediate_Dir "SM_moto___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SM_moto___Win32_Profile" +# PROP Intermediate_Dir "SM_moto___Win32_Profile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\profile\SM_moto.lib" + +!ENDIF + +# Begin Target + +# Name "SM_moto - Win32 Release" +# Name "SM_moto - Win32 Debug" +# Name "SM_moto - Win32 MT DLL Debug" +# Name "SM_moto - Win32 MT DLL Release" +# Name "SM_moto - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_CmMatrix4x4.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix3x3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix4x4.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Point3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Quaternion.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_random.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Transform.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector2.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector4.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\GEN_List.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\GEN_Map.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_assert.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_CmMatrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_MinMax.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Optimize.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_random.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Scalar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Stream.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Transform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\NM_Scalar.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles/sumo/solid/SM_solid.dsp b/projectfiles/sumo/solid/SM_solid.dsp index dfaa85c35d8..221a72f67ef 100644 --- a/projectfiles/sumo/solid/SM_solid.dsp +++ b/projectfiles/sumo/solid/SM_solid.dsp @@ -1,340 +1,340 @@ -# Microsoft Developer Studio Project File - Name="SM_solid" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SM_solid - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SM_solid.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SM_solid.mak" CFG="SM_solid - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SM_solid - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SM_solid - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /J /FD /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\debug\SM_solid.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\SM_solid.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "SM_solid - Win32 Release" -# Name "SM_solid - Win32 Debug" -# Name "SM_solid - Win32 MT DLL Debug" -# Name "SM_solid - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\BBoxTree.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Box.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Complex.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cone.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Convex.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cylinder.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Endpoint.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Proxy.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Scene.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_DoubleBase.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Encounter.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_FloatBase.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_LineSegment.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Object.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_RespTable.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Scene.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polyhedron.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polytope.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Sphere.cpp" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\AlgoTable.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\BBoxTree.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Box.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Complex.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cone.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Convex.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cylinder.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_AABBox.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BBox.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Endpoint.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Proxy.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Scene.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_DoubleBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Encounter.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_FloatBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_LineSegment.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Object.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Response.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_RespTable.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Scene.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBased.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\IndexArray.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polyhedron.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polytope.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Shape.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Sphere.h" -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SM_solid" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SM_solid - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SM_solid.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SM_solid.mak" CFG="SM_solid - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SM_solid - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SM_solid - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /J /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\debug\SM_solid.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\SM_solid.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "SM_solid - Win32 Release" +# Name "SM_solid - Win32 Debug" +# Name "SM_solid - Win32 MT DLL Debug" +# Name "SM_solid - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\BBoxTree.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Box.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Complex.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cone.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Convex.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cylinder.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Endpoint.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Proxy.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Scene.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_DoubleBase.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Encounter.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_FloatBase.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_LineSegment.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Object.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_RespTable.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Scene.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polyhedron.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polytope.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Sphere.cpp" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\AlgoTable.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\BBoxTree.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Box.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Complex.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cone.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Convex.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cylinder.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_AABBox.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BBox.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Endpoint.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Proxy.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Scene.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_DoubleBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Encounter.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_FloatBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_LineSegment.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Object.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Response.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_RespTable.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Scene.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBased.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\IndexArray.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polyhedron.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polytope.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Shape.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Sphere.h" +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles_vc7/sumo/moto/SM_moto.dsp b/projectfiles_vc7/sumo/moto/SM_moto.dsp index 3fd627ce60d..0a27fad5a0d 100644 --- a/projectfiles_vc7/sumo/moto/SM_moto.dsp +++ b/projectfiles_vc7/sumo/moto/SM_moto.dsp @@ -1,332 +1,332 @@ -# Microsoft Developer Studio Project File - Name="SM_moto" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SM_moto - Win32 Profile -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SM_moto.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SM_moto.mak" CFG="SM_moto - Win32 Profile" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SM_moto - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_moto - Win32 Profile" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SM_moto - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" - -!ELSEIF "$(CFG)" == "SM_moto - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" - -!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" -# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_moto - Win32 Profile" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_moto___Win32_Profile" -# PROP BASE Intermediate_Dir "SM_moto___Win32_Profile" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "SM_moto___Win32_Profile" -# PROP Intermediate_Dir "SM_moto___Win32_Profile" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" -# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\profile\SM_moto.lib" - -!ENDIF - -# Begin Target - -# Name "SM_moto - Win32 Release" -# Name "SM_moto - Win32 Debug" -# Name "SM_moto - Win32 MT DLL Debug" -# Name "SM_moto - Win32 MT DLL Release" -# Name "SM_moto - Win32 Profile" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_CmMatrix4x4.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix3x3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix4x4.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Point3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Quaternion.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_random.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Transform.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector2.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector3.cpp -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector4.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\GEN_List.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\GEN_Map.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_assert.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_CmMatrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_MinMax.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Optimize.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_random.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Scalar.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Stream.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Transform.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.inl -# End Source File -# Begin Source File - -SOURCE=..\..\..\source\sumo\MoTo\include\NM_Scalar.h -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SM_moto" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SM_moto - Win32 Profile +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SM_moto.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SM_moto.mak" CFG="SM_moto - Win32 Profile" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SM_moto - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_moto - Win32 Profile" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SM_moto - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\..\lib\windows\moto\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" + +!ELSEIF "$(CFG)" == "SM_moto - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" + +!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FR /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_moto - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SM_moto___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SM_moto___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" +# PROP Intermediate_Dir "..\..\..\..\obj\windows\sumo\moto\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\sumo\MoTo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\moto\SM_moto.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_moto - Win32 Profile" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_moto___Win32_Profile" +# PROP BASE Intermediate_Dir "SM_moto___Win32_Profile" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "SM_moto___Win32_Profile" +# PROP Intermediate_Dir "SM_moto___Win32_Profile" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /O2 /I "..\..\..\source\sumo\MoTo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\debug\SM_moto.lib" +# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\sumo\moto\profile\SM_moto.lib" + +!ENDIF + +# Begin Target + +# Name "SM_moto - Win32 Release" +# Name "SM_moto - Win32 Debug" +# Name "SM_moto - Win32 MT DLL Debug" +# Name "SM_moto - Win32 MT DLL Release" +# Name "SM_moto - Win32 Profile" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_CmMatrix4x4.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix3x3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Matrix4x4.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Point3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Quaternion.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_random.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Transform.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector2.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector3.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\src\MT_Vector4.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\GEN_List.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\GEN_Map.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_assert.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_CmMatrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix3x3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Matrix4x4.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_MinMax.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Optimize.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Point3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Quaternion.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_random.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Scalar.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Stream.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Transform.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Tuple4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector2.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector3.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\MT_Vector4.inl +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\sumo\MoTo\include\NM_Scalar.h +# End Source File +# End Group +# End Target +# End Project diff --git a/projectfiles_vc7/sumo/solid/SM_solid.dsp b/projectfiles_vc7/sumo/solid/SM_solid.dsp index dfaa85c35d8..221a72f67ef 100644 --- a/projectfiles_vc7/sumo/solid/SM_solid.dsp +++ b/projectfiles_vc7/sumo/solid/SM_solid.dsp @@ -1,340 +1,340 @@ -# Microsoft Developer Studio Project File - Name="SM_solid" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=SM_solid - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SM_solid.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SM_solid.mak" CFG="SM_solid - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SM_solid - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "SM_solid - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SM_solid - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /J /FD /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# SUBTRACT CPP /Fr -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Debug" -# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\debug\SM_solid.lib" -# ADD LIB32 /nologo - -!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Release" -# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll" -# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll" -# PROP Target_Dir "" -LINK32=link.exe -lib -# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\SM_solid.lib" -# ADD LIB32 /nologo - -!ENDIF - -# Begin Target - -# Name "SM_solid - Win32 Release" -# Name "SM_solid - Win32 Debug" -# Name "SM_solid - Win32 MT DLL Debug" -# Name "SM_solid - Win32 MT DLL Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\BBoxTree.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Box.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Complex.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cone.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Convex.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cylinder.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Endpoint.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Proxy.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Scene.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_C-api.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_DoubleBase.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Encounter.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_FloatBase.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_LineSegment.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Object.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_RespTable.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Scene.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polyhedron.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polytope.cpp" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Sphere.cpp" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\AlgoTable.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\BBoxTree.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Box.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Complex.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cone.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Convex.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cylinder.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_AABBox.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BBox.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Endpoint.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Proxy.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Scene.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_DoubleBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Encounter.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_FloatBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_LineSegment.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Object.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Response.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_RespTable.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Scene.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBase.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBased.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\IndexArray.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polyhedron.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polytope.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Shape.h" -# End Source File -# Begin Source File - -SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Sphere.h" -# End Source File -# End Group -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="SM_solid" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=SM_solid - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "SM_solid.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "SM_solid.mak" CFG="SM_solid - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "SM_solid - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 MT DLL Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "SM_solid - Win32 MT DLL Release" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "SM_solid - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /J /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# SUBTRACT CPP /Fr +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Debug" +# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll_debug" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /Gm /GX /ZI /Od /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD CPP /nologo /MDd /Gm /GX /ZI /Od /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\debug\SM_solid.lib" +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "SM_solid - Win32 MT DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "SM_solid___Win32_MT_DLL_Release" +# PROP BASE Intermediate_Dir "SM_solid___Win32_MT_DLL_Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\..\..\obj\windows\sumo\solid\mtdll" +# PROP Intermediate_Dir "..\..\..\obj\windows\sumo\solid\mtdll" +# PROP Target_Dir "" +LINK32=link.exe -lib +# ADD BASE CPP /nologo /GX /O2 /I "..\..\..\source\sumo\SOLID-3.0\include" /I "../../../../../lib/windows/moto/include" /I "..\..\..\source\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD CPP /nologo /MD /GX /O2 /I "..\..\..\source\gameengine\physics\sumo\SOLID-3.0\include" /I "../../../../lib/windows/moto/include" /I "..\..\..\source\gameengine\physics\sumo\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /J /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo /out:"..\..\..\..\..\obj\windows\sumo\solid\SM_solid.lib" +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "SM_solid - Win32 Release" +# Name "SM_solid - Win32 Debug" +# Name "SM_solid - Win32 MT DLL Debug" +# Name "SM_solid - Win32 MT DLL Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\BBoxTree.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Box.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Complex.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cone.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Convex.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Cylinder.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Endpoint.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Proxy.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_BP_Scene.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_C-api.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_DoubleBase.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Encounter.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_FloatBase.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_LineSegment.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Object.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_RespTable.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\DT_Scene.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polyhedron.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Polytope.cpp" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\src\Sphere.cpp" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\AlgoTable.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\BBoxTree.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Box.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Complex.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cone.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Convex.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Cylinder.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_AABBox.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BBox.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Endpoint.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Proxy.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_BP_Scene.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_DoubleBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Encounter.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_FloatBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_LineSegment.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Object.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Response.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_RespTable.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_Scene.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBase.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\DT_VertexBased.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\IndexArray.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polyhedron.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Polytope.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Shape.h" +# End Source File +# Begin Source File + +SOURCE="..\..\..\source\gameengine\Physics\Sumo\SOLID-3.0\include\Sphere.h" +# End Source File +# End Group +# End Target +# End Project diff --git a/release/beos-4.5-i386/specific.sh b/release/beos-4.5-i386/specific.sh old mode 100644 new mode 100755 diff --git a/release/beos-5.0-i386/specific.sh b/release/beos-5.0-i386/specific.sh old mode 100644 new mode 100755 diff --git a/release/irix-6.2-mips/specific.sh b/release/irix-6.2-mips/specific.sh old mode 100644 new mode 100755 diff --git a/release/scripts/import_web3d.py b/release/scripts/import_web3d.py old mode 100755 new mode 100644 diff --git a/release/scripts/scripttemplate_camer_object.py b/release/scripts/scripttemplate_camera_object.py similarity index 100% rename from release/scripts/scripttemplate_camer_object.py rename to release/scripts/scripttemplate_camera_object.py diff --git a/source/blender/blenkernel/BKE_bmesh.h b/source/blender/blenkernel/BKE_bmesh.h index 8ec7144faf6..04ffc0a4092 100644 --- a/source/blender/blenkernel/BKE_bmesh.h +++ b/source/blender/blenkernel/BKE_bmesh.h @@ -3,7 +3,7 @@ * * BMesh modeler structure and functions. * - * $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/BKE_bmeshCustomData.h b/source/blender/blenkernel/BKE_bmeshCustomData.h index 4f5f2641f54..e910fc13ed4 100644 --- a/source/blender/blenkernel/BKE_bmeshCustomData.h +++ b/source/blender/blenkernel/BKE_bmeshCustomData.h @@ -3,7 +3,7 @@ * * BMesh modeler structure and functions. * - * $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h index f3c13d3d820..28c826d17c3 100644 --- a/source/blender/blenkernel/BKE_cloth.h +++ b/source/blender/blenkernel/BKE_cloth.h @@ -1,7 +1,7 @@ /** * BKE_cloth.h * - * $Id: BKE_cloth.h,v 1.1 2007/08/01 02:07:27 daniel Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/BKE_collision.h b/source/blender/blenkernel/BKE_collision.h index c483148e4de..5e6485d48a3 100644 --- a/source/blender/blenkernel/BKE_collision.h +++ b/source/blender/blenkernel/BKE_collision.h @@ -1,7 +1,7 @@ /** * BKE_cloth.h * - * $Id: BKE_cloth.h,v 1.1 2007/08/01 02:07:27 daniel Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index caba63ef8ce..ecc97dd5d3b 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -1,7 +1,7 @@ /* BKE_particle.h * * - * $Id: BKE_particle.h $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/BKE_suggestions.h b/source/blender/blenkernel/BKE_suggestions.h index d58b8f58bf5..473e3f547f2 100644 --- a/source/blender/blenkernel/BKE_suggestions.h +++ b/source/blender/blenkernel/BKE_suggestions.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_Customdata.c b/source/blender/blenkernel/intern/BME_Customdata.c index 1fc8a4071dc..ea149e03959 100644 --- a/source/blender/blenkernel/intern/BME_Customdata.c +++ b/source/blender/blenkernel/intern/BME_Customdata.c @@ -3,7 +3,7 @@ * * Custom Data functions for Bmesh * - * $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_conversions.c b/source/blender/blenkernel/intern/BME_conversions.c index daf0de5b748..39af580969f 100644 --- a/source/blender/blenkernel/intern/BME_conversions.c +++ b/source/blender/blenkernel/intern/BME_conversions.c @@ -3,7 +3,7 @@ * * BMesh mesh level functions. * - * $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_eulers.c b/source/blender/blenkernel/intern/BME_eulers.c index 801e0b8bdec..d0b4ab6a9ca 100644 --- a/source/blender/blenkernel/intern/BME_eulers.c +++ b/source/blender/blenkernel/intern/BME_eulers.c @@ -3,7 +3,7 @@ * * BMesh Euler construction API. * - * $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c index ad46a7c1eb7..f635cfcfcd2 100644 --- a/source/blender/blenkernel/intern/BME_mesh.c +++ b/source/blender/blenkernel/intern/BME_mesh.c @@ -3,7 +3,7 @@ * * BMesh mesh level functions. * - * $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_structure.c b/source/blender/blenkernel/intern/BME_structure.c index ca27f5efd10..22ee48e4f7e 100644 --- a/source/blender/blenkernel/intern/BME_structure.c +++ b/source/blender/blenkernel/intern/BME_structure.c @@ -3,7 +3,7 @@ * * Low level routines for manipulating the BMesh structure. * - * $Id: BME_structure.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/BME_tools.c b/source/blender/blenkernel/intern/BME_tools.c index 90259031e5c..f3e4add34e9 100644 --- a/source/blender/blenkernel/intern/BME_tools.c +++ b/source/blender/blenkernel/intern/BME_tools.c @@ -3,7 +3,7 @@ * * Functions for changing the topology of a mesh. * - * $Id: BME_eulers.c,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/bmesh_private.h b/source/blender/blenkernel/intern/bmesh_private.h index f34ef0090f3..dd7d20bcf15 100644 --- a/source/blender/blenkernel/intern/bmesh_private.h +++ b/source/blender/blenkernel/intern/bmesh_private.h @@ -3,7 +3,7 @@ * * low level, 'private' function prototypes for bmesh kernel. * - * $Id: BKE_bmesh.h,v 1.00 2007/01/17 17:42:01 Briggs Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 44ee5c236fa..c2304c86bee 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -1,7 +1,7 @@ /* particle.c * * - * $Id: particle.c $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 8a964c5b32e..7bda29ebcaf 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1,7 +1,7 @@ /* particle_system.c * * - * $Id: particle_system.c $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/blenkernel/intern/suggestions.c b/source/blender/blenkernel/intern/suggestions.c index 6530909336c..dee33656332 100644 --- a/source/blender/blenkernel/intern/suggestions.c +++ b/source/blender/blenkernel/intern/suggestions.c @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/imbuf/intern/IMB_jp2.h b/source/blender/imbuf/intern/IMB_jp2.h index fcdd4589fca..abc6b78357c 100644 --- a/source/blender/imbuf/intern/IMB_jp2.h +++ b/source/blender/imbuf/intern/IMB_jp2.h @@ -1,7 +1,7 @@ /* * IMB_jp2.h * - * $Id: IMB_bmp.h 14444 2008-04-16 22:40:48Z hos $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/imbuf/intern/dds/Makefile b/source/blender/imbuf/intern/dds/Makefile index 28f9e24c947..e14f9320d19 100644 --- a/source/blender/imbuf/intern/dds/Makefile +++ b/source/blender/imbuf/intern/dds/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile 7037 2006-03-12 14:11:23Z ton $ +# $Id$ # # ***** BEGIN GPL LICENSE BLOCK ***** # diff --git a/source/blender/include/BDR_sketch.h b/source/blender/include/BDR_sketch.h index 55d6e1d80cf..d64f763eccd 100644 --- a/source/blender/include/BDR_sketch.h +++ b/source/blender/include/BDR_sketch.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BIF_editparticle.h b/source/blender/include/BIF_editparticle.h index 2db9aacc96b..9abf4e6c2b4 100644 --- a/source/blender/include/BIF_editparticle.h +++ b/source/blender/include/BIF_editparticle.h @@ -1,7 +1,7 @@ /* BIF_editparticle.h * * - * $Id: BIF_editparticle.h $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BIF_generate.h b/source/blender/include/BIF_generate.h index e64edf99bdc..fa70c10ac2c 100644 --- a/source/blender/include/BIF_generate.h +++ b/source/blender/include/BIF_generate.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BIF_radialcontrol.h b/source/blender/include/BIF_radialcontrol.h index 81181a3a91e..a23b9c7aa61 100644 --- a/source/blender/include/BIF_radialcontrol.h +++ b/source/blender/include/BIF_radialcontrol.h @@ -1,5 +1,5 @@ /* - * $Id: multires.h 13015 2007-12-27 07:27:03Z nicholasbishop $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BIF_retarget.h b/source/blender/include/BIF_retarget.h index 9de10fb2a38..0a58f298990 100644 --- a/source/blender/include/BIF_retarget.h +++ b/source/blender/include/BIF_retarget.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BIF_sketch.h b/source/blender/include/BIF_sketch.h index 9cd7393633e..2419d915b14 100644 --- a/source/blender/include/BIF_sketch.h +++ b/source/blender/include/BIF_sketch.h @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/include/BSE_editaction_types.h b/source/blender/include/BSE_editaction_types.h index be210415973..c0842d405e3 100644 --- a/source/blender/include/BSE_editaction_types.h +++ b/source/blender/include/BSE_editaction_types.h @@ -1,5 +1,5 @@ /** - * $Id: BIF_editaction.h 10519 2007-04-13 11:15:08Z aligorith $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/makesdna/DNA_cloth_types.h b/source/blender/makesdna/DNA_cloth_types.h index c99dc44cd5e..311a70c93ca 100644 --- a/source/blender/makesdna/DNA_cloth_types.h +++ b/source/blender/makesdna/DNA_cloth_types.h @@ -1,5 +1,5 @@ /** -* $Id: DNA_cloth_types.h,v 1.1 2007/08/01 02:28:34 daniel Exp $ +* $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 7dd69b2151c..52d427eda4e 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -1,7 +1,7 @@ /* DNA_particle_types.h * * - * $Id: DNA_particle_types.h $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/TEX_node.h b/source/blender/nodes/TEX_node.h index c52fc757507..d298f062143 100644 --- a/source/blender/nodes/TEX_node.h +++ b/source/blender/nodes/TEX_node.h @@ -1,5 +1,5 @@ /** - * $Id: CMP_node.h 12429 2007-10-29 14:37:19Z bebraw $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c b/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c index a62e4be4015..846aec490c2 100644 --- a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c +++ b/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c @@ -1,5 +1,5 @@ /** - * $Id: CMP_normalize.c,v 1.0 2007/03/24 06:57:29 scourage Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c b/source/blender/nodes/intern/SHD_nodes/SHD_invert.c index 72ee1483ecf..fbab7f64cb3 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_invert.c @@ -1,5 +1,5 @@ /** - * $Id: SHD_math.c,v 1.4 2007/04/04 13:58:12 jesterking Exp $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/TEX_nodes/Makefile b/source/blender/nodes/intern/TEX_nodes/Makefile index 7fad19a772c..ac741280478 100644 --- a/source/blender/nodes/intern/TEX_nodes/Makefile +++ b/source/blender/nodes/intern/TEX_nodes/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile 12796 2007-12-05 16:58:52Z sirdude $ +# $Id$ # # ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** # diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_image.c b/source/blender/nodes/intern/TEX_nodes/TEX_image.c index f9477fef12b..b84088da154 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_image.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_image.c @@ -1,5 +1,5 @@ /** - * $Id: TEX_image.c 10456 2007-04-04 13:58:12Z jesterking $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c index ec59769fdfd..71d9cb07e18 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c @@ -1,5 +1,5 @@ /** - * $Id: SHD_valToRgb.c 10456 2007-04-04 13:58:12Z jesterking $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/python/api2_2x/doc/epy_docgen.sh b/source/blender/python/api2_2x/doc/epy_docgen.sh old mode 100644 new mode 100755 diff --git a/source/blender/render/intern/source/raytrace.c b/source/blender/render/intern/source/raytrace.c index ec47df74d04..09d3711885a 100644 --- a/source/blender/render/intern/source/raytrace.c +++ b/source/blender/render/intern/source/raytrace.c @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/src/editarmature_generate.c b/source/blender/src/editarmature_generate.c index 189a823ab98..ad312f079bd 100644 --- a/source/blender/src/editarmature_generate.c +++ b/source/blender/src/editarmature_generate.c @@ -1,5 +1,5 @@ /** - * $Id: editarmature_generate.c $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/src/editarmature_sketch.c b/source/blender/src/editarmature_sketch.c index 1452a3d0441..38e44319b47 100644 --- a/source/blender/src/editarmature_sketch.c +++ b/source/blender/src/editarmature_sketch.c @@ -1,5 +1,5 @@ /** - * $Id: $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/src/editparticle.c b/source/blender/src/editparticle.c index 0538bcb98d7..d48b84789d8 100644 --- a/source/blender/src/editparticle.c +++ b/source/blender/src/editparticle.c @@ -1,7 +1,7 @@ /* editparticle.c * * - * $Id: editparticle.c $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/blender/src/radialcontrol.c b/source/blender/src/radialcontrol.c index 404aac225c6..b61a150bada 100644 --- a/source/blender/src/radialcontrol.c +++ b/source/blender/src/radialcontrol.c @@ -1,5 +1,5 @@ /* - * $Id: multires.c 13015 2007-12-27 07:27:03Z nicholasbishop $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/darwin/Makefile b/source/darwin/Makefile index 4959fa428e9..5ffc4350960 100644 --- a/source/darwin/Makefile +++ b/source/darwin/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 1.7 2003/05/12 18:12:25 sgefant Exp $ +# $Id$ # # ***** BEGIN GPL LICENSE BLOCK ***** # diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index fc5d679f200..3430fd85184 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -1,7 +1,7 @@ /** * Set or remove an objects parent * - * $Id: SCA_ParentActuator.cpp 13932 2008-03-01 19:05:41Z ben2610 $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h index c647e6cc8a9..257c95c9260 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.h +++ b/source/gameengine/Ketsji/KX_ParentActuator.h @@ -2,7 +2,7 @@ * Set or remove an objects parent * * - * $Id: KX_ParentActuator.h 3271 2004-10-16 11:41:50Z kester $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py index 76252e5cfad..4a5f72e7cc2 100644 --- a/source/gameengine/PyDoc/KX_ParentActuator.py +++ b/source/gameengine/PyDoc/KX_ParentActuator.py @@ -1,4 +1,4 @@ -# $Id: KX_ParentActuator.py 2615 2004-06-02 12:43:27Z kester $ +# $Id$ # Documentation for KX_ParentActuator from SCA_IActuator import * diff --git a/source/gameengine/PyDoc/SCA_JoystickSensor.py b/source/gameengine/PyDoc/SCA_JoystickSensor.py index 111ee7f4cfa..944ff64dc64 100644 --- a/source/gameengine/PyDoc/SCA_JoystickSensor.py +++ b/source/gameengine/PyDoc/SCA_JoystickSensor.py @@ -1,4 +1,4 @@ -# $Id: SCA_RandomSensor.py 15444 2008-07-05 17:05:05Z lukep $ +# $Id$ # Documentation for SCA_RandomSensor from SCA_ISensor import * diff --git a/source/gameengine/PyDoc/epy_docgen.sh b/source/gameengine/PyDoc/epy_docgen.sh old mode 100644 new mode 100755 From d1dd9fd9f09c7d406fbc006013e27e74e23548f4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 1 Apr 2009 02:02:26 +0000 Subject: [PATCH 045/201] [#18478] Unwrap (smart projections) should accept values grater than 0.25 for island margin (it works just fine when changed in original script) increased value as suggested. --- release/scripts/uvcalc_smart_project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/scripts/uvcalc_smart_project.py b/release/scripts/uvcalc_smart_project.py index d622e1a2af8..55d6ebfaa6f 100644 --- a/release/scripts/uvcalc_smart_project.py +++ b/release/scripts/uvcalc_smart_project.py @@ -870,7 +870,7 @@ def main(): 'UV Layout',\ ('Share Tex Space', USER_SHARE_SPACE, 'Objects Share texture space, map all objects into 1 uvmap.'),\ ('Stretch to bounds', USER_STRETCH_ASPECT, 'Stretch the final output to texture bounds.'),\ - ('Island Margin:', USER_ISLAND_MARGIN, 0.0, 0.25, 'Margin to reduce bleed from adjacent islands.'),\ + ('Island Margin:', USER_ISLAND_MARGIN, 0.0, 0.5, 'Margin to reduce bleed from adjacent islands.'),\ 'Fill in empty areas',\ ('Fill Holes', USER_FILL_HOLES, 'Fill in empty areas reduced texture waistage (slow).'),\ ('Fill Quality:', USER_FILL_HOLES_QUALITY, 1, 100, 'Depends on fill holes, how tightly to fill UV holes, (higher is slower)'),\ From 1e2f736d3a1813742e77373beb461a8b6645ac32 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 1 Apr 2009 07:13:55 +0000 Subject: [PATCH 046/201] [#18479] 'Consolidate into one image' does not calculate/use 'pixel margin' Thanks to Dusan Stevanovic for pointing out the fix. Also noticed alpha wasn't being rendered, enabled texface alpha. --- release/scripts/image_auto_layout.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/release/scripts/image_auto_layout.py b/release/scripts/image_auto_layout.py index c6f97a25434..d19ba1da662 100644 --- a/release/scripts/image_auto_layout.py +++ b/release/scripts/image_auto_layout.py @@ -9,7 +9,7 @@ Tooltip: 'Pack all texture images into 1 image and remap faces.' __author__ = "Campbell Barton" __url__ = ("blender", "blenderartists.org") -__version__ = "1.1 2007/02/15" +__version__ = "1.1a 2009/04/01" __bpydoc__ = """\ This script makes a new image from the used areas of all the images mapped to the selected mesh objects. @@ -273,9 +273,12 @@ def consolidate_mesh_images(mesh_list, scn, PREF_IMAGE_PATH, PREF_IMAGE_SIZE, PR # New Mesh and Object render_mat= B.Material.New() - render_mat.mode |= B.Material.Modes.SHADELESS - render_mat.mode |= B.Material.Modes.TEXFACE - render_mat.mode |= B.Material.Modes.ZTRANSP + render_mat.mode |= \ + B.Material.Modes.SHADELESS | \ + B.Material.Modes.TEXFACE | \ + B.Material.Modes.TEXFACE_ALPHA | \ + B.Material.Modes.ZTRANSP + render_mat.setAlpha(0.0) render_me= B.Mesh.New() @@ -420,7 +423,7 @@ def main(): PREF_IMAGE_PATH= PREF_IMAGE_PATH.val PREF_IMAGE_SIZE= PREF_IMAGE_SIZE.val - PREF_IMAGE_MARGIN= PREF_IMAGE_MARGIN.val + PREF_IMAGE_MARGIN= float(PREF_IMAGE_MARGIN.val) # important this is a float otherwise division wont work properly PREF_KEEP_ASPECT= PREF_KEEP_ASPECT.val PREF_ALL_SEL_OBS= PREF_ALL_SEL_OBS.val From 48e4a4834092a8772141e6240e5e70d67110f126 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 1 Apr 2009 08:59:36 +0000 Subject: [PATCH 047/201] BGE API cleanup: ReplaceMeshActuator mesh attributes now returns a KX_MeshProxy. Fix a bug in KX_MeshProxy where the Python type was not set right. --- source/gameengine/Ketsji/KX_MeshProxy.cpp | 2 +- source/gameengine/Ketsji/KX_MeshProxy.h | 1 + .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 19 +++++++++++-------- .../PyDoc/KX_SCA_ReplaceMeshActuator.py | 4 ++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index a0c0a496c06..f40c307315e 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -124,7 +124,7 @@ KX_MeshProxy::_getattr(const char *attr) KX_MeshProxy::KX_MeshProxy(RAS_MeshObject* mesh) - : m_meshobj(mesh) + : SCA_IObject(&Type), m_meshobj(mesh) { } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index 34f60a54a3a..9e08937de07 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -47,6 +47,7 @@ public: virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); virtual const STR_String & GetText(); virtual float GetNumber(); + virtual RAS_MeshObject* GetMesh() { return m_meshobj; } virtual STR_String GetName(); virtual void SetName(STR_String name); // Set the name of the value virtual void ReplicaSetName(STR_String name); diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 2f971084a39..58d6f659135 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -36,6 +36,7 @@ // Please look here for revision history. #include "KX_SCA_ReplaceMeshActuator.h" +#include "KX_MeshProxy.h" #include "PyObjectPlus.h" @@ -115,7 +116,8 @@ PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct K KX_SCA_ReplaceMeshActuator* actuator = static_cast(self); if (!actuator->m_mesh) Py_RETURN_NONE; - return PyString_FromString(const_cast(actuator->m_mesh->GetName().ReadPtr())); + KX_MeshProxy* meshproxy = new KX_MeshProxy(actuator->m_mesh); + return meshproxy; } int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) @@ -123,18 +125,19 @@ int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYAT KX_SCA_ReplaceMeshActuator* actuator = static_cast(self); if (value == Py_None) { actuator->m_mesh = NULL; - } else { - char* meshname = PyString_AsString(value); - if (!meshname) { - PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh or None"); - return 1; - } - void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); + } else if (PyString_Check(value)) { + void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(PyString_AsString(value))); if (mesh==NULL) { PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); return 1; } actuator->m_mesh= (class RAS_MeshObject*)mesh; + } else if PyObject_TypeCheck(value, &KX_MeshProxy::Type) { + KX_MeshProxy* proxy = (KX_MeshProxy*)value; + actuator->m_mesh= proxy->GetMesh(); + } else { + PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh, a mesh proxy or None"); + return 1; } return 0; } diff --git a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py index 1faf215ed56..1013dd53cb9 100644 --- a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py @@ -57,9 +57,9 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): C{ERROR: GameObject I{OBName} ReplaceMeshActuator I{ActuatorName} without object} Properties: - @ivar mesh: the name of the mesh that will replace the current one + @ivar mesh: L{KX_MeshProxy} or the name of the mesh that will replace the current one Set to None to disable actuator - @type mesh: string or None if no mesh is set + @type mesh: L{KX_MeshProxy} or None if no mesh is set """ def setMesh(name): """ From fcc23faa3a5ec3c697e85e9a6b604ac7db80a05b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 05:38:05 +0000 Subject: [PATCH 048/201] Added getitem/setitem access for KX_GameObject ob.someProp = 10 can now be... ob["someProp"] = 10 For simple get/set test with an objects 10 properties, this is ~30% faster. Though I like the attribute access, its slower because it needs to lookup BGE attributes and methods (for parent classes as well as KX_GameObject class). This could also be an advantage if there are collisions between new attributes added for 2.49 and existing properties a game uses. Made some other small optimizations, - Getting and setting property can use const char* as well as STR_String (avoids making new STR_Strings just to do the lookup). - CValue::SetPropertiesModified() and CValue::SetPropertiesModified(), were looping through all items in the std::map, advancing from the beginning each time. --- source/gameengine/Expressions/Value.cpp | 178 ++++++++++----------- source/gameengine/Expressions/Value.h | 6 +- source/gameengine/Ketsji/KX_GameObject.cpp | 76 ++++++++- source/gameengine/Ketsji/KX_GameObject.h | 8 +- 4 files changed, 174 insertions(+), 94 deletions(-) diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index ebb12636ac2..2ab0a9addee 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -320,55 +320,70 @@ STR_String CValue::op2str (VALUE_OPERATOR op) // void CValue::SetProperty(const STR_String & name,CValue* ioProperty) { - // Check if somebody is setting an empty property if (ioProperty==NULL) - { + { // Check if somebody is setting an empty property trace("Warning:trying to set empty property!"); return; } - // Make sure we have a property array - if (m_pNamedPropertyArray == NULL) + if (m_pNamedPropertyArray) + { // Try to replace property (if so -> exit as soon as we replaced it) + CValue* oldval = (*m_pNamedPropertyArray)[name]; + if (oldval) + oldval->Release(); + } + else { // Make sure we have a property array m_pNamedPropertyArray = new std::map; - - // Try to replace property (if so -> exit as soon as we replaced it) - CValue* oldval = (*m_pNamedPropertyArray)[name]; - if (oldval) - { - oldval->Release(); } // Add property at end of array (*m_pNamedPropertyArray)[name] = ioProperty->AddRef();//->Add(ioProperty); } +void CValue::SetProperty(const char* name,CValue* ioProperty) +{ + if (ioProperty==NULL) + { // Check if somebody is setting an empty property + trace("Warning:trying to set empty property!"); + return; + } + if (m_pNamedPropertyArray) + { // Try to replace property (if so -> exit as soon as we replaced it) + CValue* oldval = (*m_pNamedPropertyArray)[name]; + if (oldval) + oldval->Release(); + } + else { // Make sure we have a property array + m_pNamedPropertyArray = new std::map; + } + + // Add property at end of array + (*m_pNamedPropertyArray)[name] = ioProperty->AddRef();//->Add(ioProperty); +} // // Get pointer to a property with name , returns NULL if there is no property named // CValue* CValue::GetProperty(const STR_String & inName) { - // Check properties, as soon as we found it -> Return a pointer to the property - CValue* result = NULL; - if (m_pNamedPropertyArray) - { - std::map::iterator it = (*m_pNamedPropertyArray).find(inName); - if (!( it==m_pNamedPropertyArray->end())) - { - result = (*it).second; - } - + if (m_pNamedPropertyArray) { + std::map::iterator it = m_pNamedPropertyArray->find(inName); + if (it != m_pNamedPropertyArray->end()) + return (*it).second; } - //for (int i=0; isize(); i++) - // if ((*m_pValuePropertyArray)[i]->GetName() == inName) - // return (*m_pValuePropertyArray)[i]; - - // Did not find property with name , return NULL property pointer - return result; + return NULL; } - +CValue* CValue::GetProperty(const char *inName) +{ + if (m_pNamedPropertyArray) { + std::map::iterator it = m_pNamedPropertyArray->find(inName); + if (it != m_pNamedPropertyArray->end()) + return (*it).second; + } + return NULL; +} // // Get text description of property with name , returns an empty string if there is no property named @@ -396,26 +411,20 @@ float CValue::GetPropertyNumber(const STR_String& inName,float defnumber) // // Remove the property named , returns true if the property was succesfully removed, false if property was not found or could not be removed // -bool CValue::RemoveProperty(const STR_String & inName) +bool CValue::RemoveProperty(const char *inName) { // Check if there are properties at all which can be removed - if (m_pNamedPropertyArray) { - CValue* val = GetProperty(inName); - if (NULL != val) + if (m_pNamedPropertyArray) + { + std::map::iterator it = m_pNamedPropertyArray->find(inName); + if (it != m_pNamedPropertyArray->end()) { - val->Release(); - m_pNamedPropertyArray->erase(inName); + ((*it).second)->Release(); + m_pNamedPropertyArray->erase(it); return true; } - } + } - char err[128]; - if (m_pNamedPropertyArray) - sprintf(err, "attribute \"%s\" dosnt exist", inName.ReadPtr()); - else - sprintf(err, "attribute \"%s\" dosnt exist (no property array)", inName.ReadPtr()); - - PyErr_SetString(PyExc_AttributeError, err); return false; } @@ -426,8 +435,8 @@ vector CValue::GetPropertyNames() { vector result; if(!m_pNamedPropertyArray) return result; - for ( std::map::iterator it = m_pNamedPropertyArray->begin(); - !(it == m_pNamedPropertyArray->end());it++) + std::map::iterator it; + for (it= m_pNamedPropertyArray->begin(); (it != m_pNamedPropertyArray->end()); it++) { result.push_back((*it).first); } @@ -444,8 +453,8 @@ void CValue::ClearProperties() return; // Remove all properties - for ( std::map::iterator it = m_pNamedPropertyArray->begin(); - !(it == m_pNamedPropertyArray->end());it++) + std::map::iterator it; + for (it= m_pNamedPropertyArray->begin();(it != m_pNamedPropertyArray->end()); it++) { CValue* tmpval = (*it).second; //STR_String name = (*it).first; @@ -464,9 +473,11 @@ void CValue::ClearProperties() // void CValue::SetPropertiesModified(bool inModified) { - int numprops = GetPropertyCount(); - for (int i=0; iSetModified(inModified); + if(!m_pNamedPropertyArray) return; + std::map::iterator it; + + for (it= m_pNamedPropertyArray->begin();(it != m_pNamedPropertyArray->end()); it++) + ((*it).second)->SetModified(inModified); } @@ -476,11 +487,13 @@ void CValue::SetPropertiesModified(bool inModified) // bool CValue::IsAnyPropertyModified() { - int numprops = GetPropertyCount(); - for (int i=0;iIsModified()) + if(!m_pNamedPropertyArray) return false; + std::map::iterator it; + + for (it= m_pNamedPropertyArray->begin();(it != m_pNamedPropertyArray->end()); it++) + if (((*it).second)->IsModified()) return true; - + return false; } @@ -489,7 +502,6 @@ bool CValue::IsAnyPropertyModified() // // Get property number // - CValue* CValue::GetProperty(int inIndex) { @@ -498,8 +510,8 @@ CValue* CValue::GetProperty(int inIndex) if (m_pNamedPropertyArray) { - for ( std::map::iterator it = m_pNamedPropertyArray->begin(); - !(it == m_pNamedPropertyArray->end());it++) + std::map::iterator it; + for (it= m_pNamedPropertyArray->begin(); (it != m_pNamedPropertyArray->end()); it++) { if (count++==inIndex) { @@ -535,8 +547,8 @@ void CValue::CloneProperties(CValue *replica) if (m_pNamedPropertyArray) { replica->m_pNamedPropertyArray=NULL; - for ( std::map::iterator it = m_pNamedPropertyArray->begin(); - !(it == m_pNamedPropertyArray->end());it++) + std::map::iterator it; + for (it= m_pNamedPropertyArray->begin(); (it != m_pNamedPropertyArray->end()); it++) { CValue *val = (*it).second->GetReplica(); replica->SetProperty((*it).first,val); @@ -687,28 +699,15 @@ PyAttributeDef CValue::Attributes[] = { PyObject* CValue::_getattr(const char *attr) { - CValue* resultattr = FindIdentifier(STR_String(attr)); - STR_String text; + CValue* resultattr = GetProperty(attr); if (resultattr) { - if (resultattr->IsError()) - { - resultattr->Release(); - } else - { - // to avoid some compare problems, return a real pythonthing - PyObject* pyconvert = resultattr->ConvertValueToPython(); - if (pyconvert) - { - resultattr->Release(); - return pyconvert; - } else - { - // also check if it's already in pythoninterpreter! - return resultattr; - } - - } + PyObject* pyconvert = resultattr->ConvertValueToPython(); + + if (pyconvert) + return pyconvert; + else + return resultattr; // also check if it's already in pythoninterpreter! } _getattr_up(PyObjectPlus); } @@ -774,26 +773,25 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) int CValue::_delattr(const char *attr) { - if (!RemoveProperty(STR_String(attr))) /* sets error */ - return 1; - return 0; + if (RemoveProperty(STR_String(attr))) + return 0; + + PyErr_Format(PyExc_AttributeError, "attribute \"%s\" dosnt exist", attr); + return 1; } -int CValue::_setattr(const char *attr,PyObject* pyobj) +int CValue::_setattr(const char *attr, PyObject* pyobj) { CValue* vallie = ConvertPythonToValue(pyobj); if (vallie) { - STR_String attr_str = attr; - CValue* oldprop = GetProperty(attr_str); + CValue* oldprop = GetProperty(attr); if (oldprop) - { oldprop->SetValue(vallie); - } else - { - SetProperty(attr_str, vallie); - } + else + SetProperty(attr, vallie); + vallie->Release(); } else { @@ -811,8 +809,8 @@ PyObject* CValue::ConvertKeysToPython( void ) if (m_pNamedPropertyArray) { - for ( std::map::iterator it = m_pNamedPropertyArray->begin(); - !(it == m_pNamedPropertyArray->end());it++) + std::map::iterator it; + for (it= m_pNamedPropertyArray->begin(); (it != m_pNamedPropertyArray->end()); it++) { pystr = PyString_FromString( (*it).first ); PyList_Append(pylist, pystr); diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index caf1064dc32..4678ab1f0c2 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -283,10 +283,12 @@ public: /// Property Management virtual void SetProperty(const STR_String& name,CValue* ioProperty); // Set property , overwrites and releases a previous property with the same name if needed - virtual CValue* GetProperty(const STR_String & inName); // Get pointer to a property with name , returns NULL if there is no property named + virtual void SetProperty(const char* name,CValue* ioProperty); + virtual CValue* GetProperty(const char* inName); // Get pointer to a property with name , returns NULL if there is no property named + virtual CValue* GetProperty(const STR_String & inName); STR_String GetPropertyText(const STR_String & inName,const STR_String& deftext=""); // Get text description of property with name , returns an empty string if there is no property named float GetPropertyNumber(const STR_String& inName,float defnumber); - virtual bool RemoveProperty(const STR_String & inName); // Remove the property named , returns true if the property was succesfully removed, false if property was not found or could not be removed + virtual bool RemoveProperty(const char *inName); // Remove the property named , returns true if the property was succesfully removed, false if property was not found or could not be removed virtual vector GetPropertyNames(); virtual void ClearProperties(); // Clear all properties diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index bbfa2ad324f..281de1965d4 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1103,6 +1103,80 @@ PyObject* KX_GameObject::PyGetPosition(PyObject* self) } +int KX_GameObject::Map_Len(PyObject* self_v) +{ + return (static_cast(self_v))->GetPropertyCount(); +} + + +PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) +{ + KX_GameObject* self= static_cast(self_v); + const char *attr= PyString_AsString(item); + CValue* resultattr; + PyObject* pyconvert; + + + if(attr==NULL) { + PyErr_SetString(PyExc_TypeError, "KX_GameObject key but a string"); + return NULL; + } + + resultattr = self->GetProperty(attr); + + if(resultattr==NULL) { + PyErr_SetString(PyExc_KeyError, "KX_GameObject key does not exist"); + return NULL; + } + + pyconvert = resultattr->ConvertValueToPython(); + + return pyconvert ? pyconvert:resultattr; +} + + +int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) +{ + KX_GameObject* self= static_cast(self_v); + const char *attr= PyString_AsString(key); + + if(attr==NULL) { + PyErr_SetString(PyExc_TypeError, "KX_GameObject key but a string"); + return 1; + } + + if (val==NULL) { /* del ob["key"] */ + if (self->RemoveProperty(attr)==false) { + PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not found", attr); + return 1; + } + } + else { /* ob["key"] = value */ + CValue* vallie = self->ConvertPythonToValue(val); + + if(vallie==NULL) + return 1; /* ConvertPythonToValue sets the error */ + + CValue* oldprop = self->GetProperty(attr); + + if (oldprop) + oldprop->SetValue(vallie); + else + self->SetProperty(attr, vallie); + + vallie->Release(); + } + + return 0; +} + + +PyMappingMethods KX_GameObject::Mapping = { + (inquiry)KX_GameObject::Map_Len, /*inquiry mp_length */ + (binaryfunc)KX_GameObject::Map_GetItem, /*binaryfunc mp_subscript */ + (objobjargproc)KX_GameObject::Map_SetItem, /*objobjargproc mp_ass_subscript */ +}; + PyTypeObject KX_GameObject::Type = { PyObject_HEAD_INIT(&PyType_Type) @@ -1118,7 +1192,7 @@ PyTypeObject KX_GameObject::Type = { __repr, 0, //&cvalue_as_number, 0, - 0, + &Mapping, 0, 0 }; diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 326b3700ad7..774977f2ecf 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -822,7 +822,13 @@ public: static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - + /* getitem/setitem */ + static int Map_Len(PyObject* self); + static PyMappingMethods Mapping; + static PyObject* Map_GetItem(PyObject *self_v, PyObject *item); + static int Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val); + + private : /** From 655177aebdb51bb0572f093bcb25503f1427685a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 06:39:09 +0000 Subject: [PATCH 049/201] [#18452] Particle children API for python. from Alberto Santos (dnakhain) "This patch adds a few new variables relationated with Particle System children such as children amount, render amount, child clumping..." --- source/blender/python/api2_2x/Particle.c | 215 ++++++++++++++++++ source/blender/python/api2_2x/doc/Particle.py | 23 ++ 2 files changed, 238 insertions(+) diff --git a/source/blender/python/api2_2x/Particle.c b/source/blender/python/api2_2x/Particle.c index bbdc3942fc7..c3f2e0f89c0 100644 --- a/source/blender/python/api2_2x/Particle.c +++ b/source/blender/python/api2_2x/Particle.c @@ -134,6 +134,24 @@ static PyObject *Part_getRenderStep( BPy_PartSys * self ); static PyObject *Part_getDupOb( BPy_PartSys * self ); static PyObject *Part_getDrawAs( BPy_PartSys * self ); static PyObject *Part_GetAge( BPy_PartSys * self, PyObject * args ); +static int Part_setChildAmount( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildAmount( BPy_PartSys * self ); +static int Part_setChildType( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildType( BPy_PartSys * self ); +static int Part_setChildRenderAmount( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRenderAmount( BPy_PartSys * self ); +static int Part_setChildRadius( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRadius( BPy_PartSys * self ); +static int Part_setChildRoundness( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRoundness( BPy_PartSys * self ); +static int Part_setChildClumping( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildClumping( BPy_PartSys * self ); +static int Part_setChildShape( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildShape( BPy_PartSys * self ); +static int Part_setChildSize( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildSize( BPy_PartSys * self ); +static int Part_setChildRandom( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRandom( BPy_PartSys * self ); /*****************************************************************************/ /* Python Effect_Type callback function prototypes: */ @@ -316,6 +334,43 @@ static PyGetSetDef BPy_ParticleSys_getseters[] = { (getter)Part_getDrawAs, NULL, "Get draw type Particle.DRAWAS([ 'NONE' | 'OBJECT' | 'POINT' | ... ] )", NULL}, +/* Children */ + {"childAmount", + (getter)Part_getChildAmount, (setter)Part_setChildAmount, + "The total number of children", + NULL}, + {"childType", + (getter)Part_getChildType, (setter)Part_setChildType, + "Type of childrens ( Particle.CHILDTYPE[ 'FACES' | 'PARTICLES' | 'NONE' ] )", + NULL}, + {"childRenderAmount", + (getter)Part_getChildRenderAmount, (setter)Part_setChildRenderAmount, + "Amount of children/parent for rendering", + NULL}, + {"childRadius", + (getter)Part_getChildRadius, (setter)Part_setChildRadius, + "Radius of children around parent", + NULL}, + {"childRound", + (getter)Part_getChildRoundness, (setter)Part_setChildRoundness, + "Roundness of children around parent", + NULL}, + {"childClump", + (getter)Part_getChildClumping, (setter)Part_setChildClumping, + "Amount of clumpimg", + NULL}, + {"childShape", + (getter)Part_getChildShape, (setter)Part_setChildShape, + "Shape of clumpimg", + NULL}, + {"childSize", + (getter)Part_getChildSize, (setter)Part_setChildSize, + "A multiplier for the child particle size", + NULL}, + {"childRand", + (getter)Part_getChildRandom, (setter)Part_setChildRandom, + "Random variation to the size of the child particles", + NULL}, {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ }; @@ -710,6 +765,26 @@ static PyObject *Particle_ReactOnDict( void ) return ReactOn; } + +/* create the Blender.Particle.ChildType constant dict */ + +static PyObject *Particle_ChildTypeDict( void ) +{ + PyObject *ChildTypes = PyConstant_New( ); + + if( ChildTypes ) { + BPy_constant *c = ( BPy_constant * ) ChildTypes; + + PyConstant_Insert( c, "FACES", + PyInt_FromLong( 2 ) ); + PyConstant_Insert( c, "PARTICLES", + PyInt_FromLong( 1 ) ); + PyConstant_Insert( c, "NONE", + PyInt_FromLong( 0 ) ); + } + return ChildTypes; +} + static PyObject *Particle_DrawAs( void ) { PyObject *DrawAs = PyConstant_New( ); @@ -756,6 +831,8 @@ PyObject *ParticleSys_Init( void ){ PyObject *EmitFrom; PyObject *Dist; PyObject *DrawAs; + PyObject *ChildTypes; + if( PyType_Ready( &ParticleSys_Type ) < 0) return NULL; @@ -765,6 +842,7 @@ PyObject *ParticleSys_Init( void ){ EmitFrom = Particle_EmitFrom(); DrawAs = Particle_DrawAs(); Dist = Particle_DistrDict(); + ChildTypes = Particle_ChildTypeDict(); submodule = Py_InitModule3( "Blender.Particle", M_ParticleSys_methods, M_ParticleSys_doc ); @@ -779,6 +857,8 @@ PyObject *ParticleSys_Init( void ){ PyModule_AddObject( submodule, "DISTRIBUTION", Dist ); if( DrawAs ) PyModule_AddObject( submodule, "DRAWAS", DrawAs ); + if( ChildTypes ) + PyModule_AddObject( submodule, "CHILDTYPE", ChildTypes ); return ( submodule ); } @@ -2010,3 +2090,138 @@ static PyObject *Part_getDrawAs( BPy_PartSys * self ) { return PyInt_FromLong( (long)( self->psys->part->draw_as ) ); } + +static int Part_setChildAmount( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setIValueRange( args, &self->psys->part->child_nbr, + 0, MAX_PART_CHILDREN, 'i' ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildAmount( BPy_PartSys * self ) +{ + return PyInt_FromLong( ((int)( self->psys->part->child_nbr )) ); +} + +static int Part_setChildType( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setIValueRange( args, &self->psys->part->childtype, + 0, 2, 'h' ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildType( BPy_PartSys * self ) +{ + return PyInt_FromLong( (short)( self->psys->part->childtype ) ); +} + +static int Part_setChildRenderAmount( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setIValueRange( args, &self->psys->part->ren_child_nbr, + 0, MAX_PART_CHILDREN, 'i' ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRenderAmount( BPy_PartSys * self ) +{ + return PyInt_FromLong( ((int)( self->psys->part->ren_child_nbr )) ); +} + +static int Part_setChildRadius( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->childrad, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRadius( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->childrad )) ); +} + +static int Part_setChildRoundness( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->childflat, + 0.0, 1.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRoundness( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->childflat )) ); +} + +static int Part_setChildClumping( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->clumpfac, + -1.0, 1.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildClumping( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->clumpfac )) ); +} + +static int Part_setChildShape( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->clumppow, + -0.999, 0.999 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildShape( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->clumppow )) ); +} + +static int Part_setChildSize( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->childsize, + 0.01, 100.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildSize( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->childsize )) ); +} + +static int Part_setChildRandom( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->childrandsize, + 0.0, 1.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRandom( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->childrandsize )) ); +} diff --git a/source/blender/python/api2_2x/doc/Particle.py b/source/blender/python/api2_2x/doc/Particle.py index cf662d9147a..47bcc7c88a3 100644 --- a/source/blender/python/api2_2x/doc/Particle.py +++ b/source/blender/python/api2_2x/doc/Particle.py @@ -42,6 +42,11 @@ This module provides access to the B{Particle} in Blender. - OBJECT: Draw object - GROUP: Draw goup - BILLBOARD: Draw as billboard +@type CHILDTYPE: readonly dictionary +@var CHILDTYPE: Constant dict used for whith L{Particle.CHILDTYPE} + - NONE: set no children + - PARTICLES: set children born from particles + - FACES: set children born from faces """ class Particle: @@ -118,6 +123,24 @@ class Particle: @type duplicateObject: Blender Object @ivar drawAs: Get draw type Particle.DRAWAS([ 'NONE' | 'OBJECT' | 'POINT' | ... ]). @type drawAs: int + @ivar childAmount: The total number of children + @type childAmount: int + @ivar childType: Type of childrens ( Particle.CHILDTYPE[ 'FACES' | 'PARTICLES' | 'NONE' ] ) + @type childType: int + @ivar childRenderAmount: Amount of children/parent for rendering + @type childRenderAmount: int + @ivar childRadius: Radius of children around parent + @type childRadius: float + @ivar childRound: Roundness of children around parent + @type childRound: float + @ivar childClump: Amount of clumpimg + @type childClump: float + @ivar childShape: Shape of clumpimg + @type childShape: float + @ivar childSize: A multiplier for the child particle size + @type childSize: float + @ivar childRand: Random variation to the size of the child particles + @type childRand: float """ def freeEdit(): From 686b92f7b4ea71556a5cae61e24952bcec906602 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 06:46:56 +0000 Subject: [PATCH 050/201] [#18477] Prevent .svn directories being included in OS X app bundles from James Crosby (sheep) --- source/creator/CMakeLists.txt | 1 + source/darwin/Makefile | 1 + 2 files changed, 2 insertions(+) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 8e2a906614d..a20913bc714 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -124,6 +124,7 @@ IF(APPLE) COMMAND find ${TARGETDIR}/blender.app -name CVS -prune -exec rm -rf {} "\;" COMMAND find ${TARGETDIR}/blender.app -name CVS.sandboxinfo -prune -exec rm -rf {} "\;" COMMAND find ${TARGETDIR}/blender.app -name .DS_Store -prune -exec rm -rf {} "\;" + COMMAND find ${TARGETDIR}/blender.app -name .svn -prune -exec rm -rf {} "\;" ) ENDIF(APPLE) diff --git a/source/darwin/Makefile b/source/darwin/Makefile index 5ffc4350960..f7b513fc214 100644 --- a/source/darwin/Makefile +++ b/source/darwin/Makefile @@ -53,3 +53,4 @@ endif @echo "---> removing CVS directories and Mac hidden files from distribution" @find $(DIR)/bin/$(APPLICATION).app -name CVS -prune -exec rm -rf {} \; @find $(DIR)/bin/$(APPLICATION).app -name .DS_Store -exec rm -f {} \; + @find $(DIR)/bin/$(APPLICATION).app -name .svn -exec rm -rf {} \; From 941a8a25040b8fdce1ac0fbe11e6391e06b79c17 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 06:59:27 +0000 Subject: [PATCH 051/201] [#18472] [patch] Speeding up Blenderplayer's profile drawing from Mitchell Stokes (moguri) --- .../GamePlayer/common/GPC_RenderTools.cpp | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp index 8135635ddb3..eafdb8a96bb 100644 --- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp +++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp @@ -29,6 +29,8 @@ #include "GL/glew.h" +#include "BMF_Api.h" + #include "DNA_scene_types.h" #include "RAS_IRenderTools.h" @@ -54,6 +56,7 @@ #include "GPC_RenderTools.h" + unsigned int GPC_RenderTools::m_numgllights; GPC_RenderTools::GPC_RenderTools() @@ -311,28 +314,19 @@ void GPC_RenderTools::RenderText2D(RAS_TEXT_RENDER_MODE mode, glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); - - // Actual drawing - unsigned char colors[2][3] = { - {0x00, 0x00, 0x00}, - {0xFF, 0xFF, 0xFF} - }; - int numTimes = mode == RAS_TEXT_PADDED ? 2 : 1; - for (int i = 0; i < numTimes; i++) { - glColor3ub(colors[i][0], colors[i][1], colors[i][2]); - glRasterPos2i(xco, yco); - for (p = s, lines = 0; *p; p++) { - if (*p == '\n') - { - lines++; - glRasterPos2i(xco, yco-(lines*18)); - } - BMF_DrawCharacter(m_font, *p); - } - xco += 1; - yco += 1; + + // Actual drawing (draw black first if padded) + if (mode == RAS_IRenderTools::RAS_TEXT_PADDED) + { + glColor3ub(0, 0, 0); + glRasterPos2s(xco+1, height-yco-1); + BMF_DrawString(m_font, s); } + glColor3ub(255, 255, 255); + glRasterPos2s(xco, height-yco); + BMF_DrawString(m_font, s); + // Restore view settings glMatrixMode(GL_PROJECTION); glPopMatrix(); From da39179afd3e66caef8d0d29b67291c7d71af0dc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 08:33:45 +0000 Subject: [PATCH 052/201] [#17963] NearSensor segmentation fault bugfix in bullet Caused by using the index from closestAxis4 before checking its -1 --- .../NarrowPhaseCollision/btPersistentManifold.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp index d4e29882d37..eecf927ee10 100644 --- a/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp +++ b/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp @@ -172,6 +172,9 @@ int btPersistentManifold::addManifoldPoint(const btManifoldPoint& newPoint) #if MANIFOLD_CACHE_SIZE >= 4 //sort cache so best points come first, based on area insertIndex = sortCachedPoints(newPoint); + + if (insertIndex<0) + insertIndex=0; #else insertIndex = 0; #endif @@ -180,11 +183,7 @@ int btPersistentManifold::addManifoldPoint(const btManifoldPoint& newPoint) } else { m_cachedPoints++; - - } - if (insertIndex<0) - insertIndex=0; btAssert(m_pointCache[insertIndex].m_userPersistentData==0); m_pointCache[insertIndex] = newPoint; From 2178fcea6e2412db4d919f00b00cd5965bcbe27e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 2 Apr 2009 11:30:27 +0000 Subject: [PATCH 053/201] Script written for apricot, poly reduces based on known topologies, keeping edge loops unlike edge collapsing poly reduction. Example http://www.graphicall.org/ftp/ideasman42/unsubsurf.gif --- release/scripts/mesh_poly_reduce_grid.py | 351 +++++++++++++++++++++++ 1 file changed, 351 insertions(+) create mode 100644 release/scripts/mesh_poly_reduce_grid.py diff --git a/release/scripts/mesh_poly_reduce_grid.py b/release/scripts/mesh_poly_reduce_grid.py new file mode 100644 index 00000000000..3741a47723a --- /dev/null +++ b/release/scripts/mesh_poly_reduce_grid.py @@ -0,0 +1,351 @@ +#!BPY +""" +Name: 'Poly Reduce Selection (Unsubsurf)' +Blender: 245 +Group: 'Mesh' +Tooltip: 'pradictable mesh simplifaction maintaining face loops' +""" + +from Blender import Scene, Mesh, Window, sys +import BPyMessages +import bpy + +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# Script copyright (C) Campbell J Barton +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ***** END GPL LICENCE BLOCK ***** +# -------------------------------------------------------------------------- + + +def my_mesh_util(me): + me_verts = me.verts + + vert_faces = [ [] for v in me_verts] + vert_faces_corner = [ [] for v in me_verts] + + + # Ignore topology where there are not 2 faces connected to an edge. + edge_count = {} + for f in me.faces: + for edkey in f.edge_keys: + try: + edge_count[edkey] += 1 + except: + edge_count[edkey] = 1 + + for edkey, count in edge_count.iteritems(): + + # Ignore verts that connect to edges with more then 2 faces. + if count != 2: + vert_faces[edkey[0]] = None + vert_faces[edkey[1]] = None + # Done + + + + def faces_set_verts(face_ls): + unique_verts = set() + for f in face_ls: + for v in f: + unique_verts.add(v.index) + return unique_verts + + for f in me.faces: + for corner, v in enumerate(f): + i = v.index + if vert_faces[i] != None: + vert_faces[i].append(f) + vert_faces_corner[i].append( corner ) + + grid_data_ls = [] + + for vi, face_ls in enumerate(vert_faces): + if face_ls != None: + if len(face_ls) == 4: + if face_ls[0].sel and face_ls[1].sel and face_ls[2].sel and face_ls[3].sel: + # Support triangles also + unique_vert_count = len(faces_set_verts(face_ls)) + quads = 0 + for f in face_ls: + if len(f) ==4: + quads += 1 + if unique_vert_count==5+quads: # yay we have a grid + grid_data_ls.append( (vi, face_ls) ) + + elif len(face_ls) == 3: + if face_ls[0].sel and face_ls[1].sel and face_ls[2].sel: + unique_vert_count = len(faces_set_verts(face_ls)) + if unique_vert_count==4: # yay we have 3 triangles to make into a bigger triangle + grid_data_ls.append( (vi, face_ls) ) + + + + # Now sort out which grid faces to use + + + # This list will be used for items we can convert, vertex is key, faces are values + grid_data_dict = {} + + if not grid_data_ls: + print "doing nothing" + return + + # quick lookup for the opposing corner of a qiad + quad_diag_mapping = 2,3,0,1 + + verts_used = [0] * len(me_verts) # 0 == untouched, 1==should touch, 2==touched + verts_used[grid_data_ls[0][0]] = 1 # start touching 1! + + # From the corner vert, get the 2 edges that are not the corner or its opposing vert, this edge will make a new face + quad_edge_mapping = (1,3), (2,0), (1,3), (0,2) # hi-low, low-hi order is intended + tri_edge_mapping = (1,2), (0,2), (0,1) + + done_somthing = True + while done_somthing: + done_somthing = False + grid_data_ls_index = -1 + + for vi, face_ls in grid_data_ls: + grid_data_ls_index += 1 + if len(face_ls) == 3: + grid_data_dict[vi] = face_ls + grid_data_ls.pop( grid_data_ls_index ) + break + elif len(face_ls) == 4: + # print vi + if verts_used[vi] == 1: + verts_used[vi] = 2 # dont look at this again. + done_somthing = True + + grid_data_dict[vi] = face_ls + + # Tag all faces verts as used + + for i, f in enumerate(face_ls): + # i == face index on vert, needed to recall which corner were on. + v_corner = vert_faces_corner[vi][i] + fv =f.v + + if len(f) == 4: + v_other = quad_diag_mapping[v_corner] + # get the 2 other corners + corner1, corner2 = quad_edge_mapping[v_corner] + if verts_used[fv[v_other].index] == 0: + verts_used[fv[v_other].index] = 1 # TAG for touching! + else: + corner1, corner2 = tri_edge_mapping[v_corner] + + verts_used[fv[corner1].index] = 2 # Dont use these, they are + verts_used[fv[corner2].index] = 2 + + + # remove this since we have used it. + grid_data_ls.pop( grid_data_ls_index ) + + break + + if done_somthing == False: + # See if there are any that have not even been tagged, (probably on a different island), then tag them. + + for vi, face_ls in grid_data_ls: + if verts_used[vi] == 0: + verts_used[vi] = 1 + done_somthing = True + break + + + # Now we have all the areas we will fill, calculate corner triangles we need to fill in. + new_faces = [] + quad_del_vt_map = (1,2,3), (0,2,3), (0,1,3), (0,1,2) + for vi, face_ls in grid_data_dict.iteritems(): + for i, f in enumerate(face_ls): + if len(f) == 4: + # i == face index on vert, needed to recall which corner were on. + v_corner = vert_faces_corner[vi][i] + v_other = quad_diag_mapping[v_corner] + fv =f.v + + #print verts_used[fv[v_other].index] + #if verts_used[fv[v_other].index] != 2: # DOSNT WORK ALWAYS + + if 1: # THIS IS LAzY - some of these faces will be removed after adding. + # Ok we are removing half of this face, add the other half + + # This is probably slower + # new_faces.append( [fv[ii].index for ii in (0,1,2,3) if ii != v_corner ] ) + + # do this instead + new_faces.append( (fv[quad_del_vt_map[v_corner][0]], fv[quad_del_vt_map[v_corner][1]], fv[quad_del_vt_map[v_corner][2]]) ) + + del grid_data_ls + + + # me.sel = 0 + def faceCombine4(vi, face_ls): + edges = [] + + for i, f in enumerate(face_ls): + fv = f.v + v_corner = vert_faces_corner[vi][i] + if len(f)==4: ed = quad_edge_mapping[v_corner] + else: ed = tri_edge_mapping[v_corner] + + edges.append( [fv[ed[0]].index, fv[ed[1]].index] ) + + # get the face from the edges + face = edges.pop() + while len(face) != 4: + # print len(edges), edges, face + for ed_idx, ed in enumerate(edges): + if face[-1] == ed[0] and (ed[1] != face[0]): + face.append(ed[1]) + elif face[-1] == ed[1] and (ed[0] != face[0]): + face.append(ed[0]) + else: + continue + + edges.pop(ed_idx) # we used the edge alredy + break + + return face + + for vi, face_ls in grid_data_dict.iteritems(): + if len(face_ls) == 4: + new_faces.append( faceCombine4(vi, face_ls) ) + #pass + if len(face_ls) == 3: # 3 triangles + face = list(faces_set_verts(face_ls)) + face.remove(vi) + new_faces.append( face ) + + + # Now remove verts surounded by 3 triangles + + + + # print new_edges + # me.faces.extend(new_faces, ignoreDups=True) + + ''' + faces_remove = [] + for vi, face_ls in grid_data_dict.iteritems(): + faces_remove.extend(face_ls) + ''' + + orig_facelen = len(me.faces) + + orig_faces = list(me.faces) + me.faces.extend(new_faces, ignoreDups=True) + new_faces = list(me.faces)[len(orig_faces):] + + + + + + if me.faceUV: + uvnames = me.getUVLayerNames() + act_uvlay = me.activeUVLayer + + vert_faces_uvs = [] + vert_faces_images = [] + + + act_uvlay = me.activeUVLayer + + for uvlay in uvnames: + me.activeUVLayer = uvlay + vert_faces_uvs[:] = [None] * len(me.verts) + vert_faces_images[:] = vert_faces_uvs[:] + + for i,f in enumerate(orig_faces): + img = f.image + fv = f.v + uv = f.uv + mat = f.mat + for i,v in enumerate(fv): + vi = v.index + vert_faces_uvs[vi] = uv[i] # no nice averaging + vert_faces_images[vi] = img + + + # Now copy UVs across + for f in new_faces: + fi = [v.index for v in f.v] + f.image = vert_faces_images[fi[0]] + uv = f.uv + for i,vi in enumerate(fi): + uv[i][:] = vert_faces_uvs[vi] + + if len(me.materials) > 1: + vert_faces_mats = [None] * len(me.verts) + for i,f in enumerate(orig_faces): + mat = f.mat + for i,v in enumerate(f.v): + vi = v.index + vert_faces_mats[vi] = mat + + # Now copy UVs across + for f in new_faces: + print vert_faces_mats[f.v[0].index] + f.mat = vert_faces_mats[f.v[0].index] + + + me.verts.delete(grid_data_dict.keys()) + + # me.faces.delete(1, faces_remove) + + if me.faceUV: + me.activeUVLayer = act_uvlay + + me.calcNormals() + +def main(): + + # Gets the current scene, there can be many scenes in 1 blend file. + sce = bpy.data.scenes.active + + # Get the active object, there can only ever be 1 + # and the active object is always the editmode object. + ob_act = sce.objects.active + + if not ob_act or ob_act.type != 'Mesh': + BPyMessages.Error_NoMeshActive() + return + + is_editmode = Window.EditMode() + if is_editmode: Window.EditMode(0) + + Window.WaitCursor(1) + me = ob_act.getData(mesh=1) # old NMesh api is default + t = sys.time() + + # Run the mesh editing function + my_mesh_util(me) + + # Restore editmode if it was enabled + if is_editmode: Window.EditMode(1) + + # Timing the script is a good way to be aware on any speed hits when scripting + print 'My Script finished in %.2f seconds' % (sys.time()-t) + Window.WaitCursor(0) + + +# This lets you can import the script without running it +if __name__ == '__main__': + main() + From b22705f1694f83756f7ca785b6f20caf353f5998 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 3 Apr 2009 02:16:56 +0000 Subject: [PATCH 054/201] BGE Python - Bugfix for running dir() on all BGE python objects. was not getting the immediate methods and attributes for each class. - Use attributes for KX_Scene (so they are included with dir()) - Override __dict__ attributes for KX_Scene and KX_GameObject so custom properties are included with a dir() --- source/gameengine/Expressions/PyObjectPlus.h | 5 +- source/gameengine/Ketsji/KX_GameObject.cpp | 34 ++++++++-- source/gameengine/Ketsji/KX_GameObject.h | 3 + source/gameengine/Ketsji/KX_Scene.cpp | 65 +++++++++++++------- source/gameengine/Ketsji/KX_Scene.h | 9 +++ 5 files changed, 85 insertions(+), 31 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 6ba80255aa3..345eb8c9c3f 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -100,9 +100,8 @@ static inline void Py_Fatal(const char *M) { PyErr_Clear(); \ rvalue = Parent::_getattr(attr); \ } \ - if ((rvalue == NULL) && !strcmp(attr, "__dict__")) {\ - PyErr_Clear(); \ - rvalue = _getattr_dict(Parent::_getattr(attr), Methods, Attributes); \ + if (strcmp(attr, "__dict__")==0) {\ + rvalue = _getattr_dict(rvalue, Methods, Attributes); \ } \ return rvalue; \ diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 281de1965d4..5c9615c408b 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -942,14 +942,14 @@ const MT_Vector3& KX_GameObject::NodeGetWorldScaling() const } - +static MT_Point3 dummy_point= MT_Point3(0.0, 0.0, 0.0); const MT_Point3& KX_GameObject::NodeGetWorldPosition() const { // check on valid node in case a python controller holds a reference to a deleted object if (GetSGNode()) return GetSGNode()->GetWorldPosition(); else - return MT_Point3(0.0, 0.0, 0.0); + return dummy_point; } /* Suspend/ resume: for the dynamic behaviour, there is a simple @@ -1043,6 +1043,7 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_scaling, pyattr_set_scaling), KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), KX_PYATTRIBUTE_RW_FUNCTION("state", KX_GameObject, pyattr_get_state, pyattr_set_state), + KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_GameObject, pyattr_get_dir_dict), {NULL} //Sentinel }; @@ -1412,16 +1413,37 @@ int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attr return 0; } +/* __dict__ only for the purpose of giving useful dir() results */ +PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + PyObject *dict= _getattr_dict(self->SCA_IObject::_getattr("__dict__"), KX_GameObject::Methods, KX_GameObject::Attributes); + + if(dict==NULL) + return NULL; + + /* Not super fast getting as a list then making into dict keys but its only for dir() */ + PyObject *list= self->ConvertKeysToPython(); + if(list) + { + int i; + for(i=0; i(self_v); + return PyString_FromString(self->GetName().ReadPtr()); +} + +PyObject* KX_Scene::pyattr_get_objects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Scene* self= static_cast(self_v); + return self->GetObjectList()->AddRef(); +} + +PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Scene* self= static_cast(self_v); + return self->GetActiveCamera()->AddRef(); +} + +/* __dict__ only for the purpose of giving useful dir() results */ +PyObject* KX_Scene::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Scene* self= static_cast(self_v); + /* Useually done by _getattr_up but in this case we want to include m_attrlist dict */ + PyObject *dict= _getattr_dict(self->PyObjectPlus::_getattr("__dict__"), KX_Scene::Methods, KX_Scene::Attributes); + + PyDict_Update(dict, self->m_attrlist); + return dict; +} + PyAttributeDef KX_Scene::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("name", KX_Scene, pyattr_get_name), + KX_PYATTRIBUTE_RO_FUNCTION("objects", KX_Scene, pyattr_get_objects), + KX_PYATTRIBUTE_RO_FUNCTION("active_camera", KX_Scene, pyattr_get_active_camera), + KX_PYATTRIBUTE_BOOL_RO("suspended", KX_Scene, m_suspend), + KX_PYATTRIBUTE_BOOL_RO("activity_culling", KX_Scene, m_activity_culling), + KX_PYATTRIBUTE_FLOAT_RW("activity_culling_radius", 0.5f, FLT_MAX, KX_Scene, m_activity_box_radius), + KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_Scene, pyattr_get_dir_dict), { NULL } //Sentinel }; PyObject* KX_Scene::_getattr(const char *attr) { - if (!strcmp(attr, "name")) - return PyString_FromString(GetName()); + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; - if (!strcmp(attr, "objects")) - return (PyObject*) m_objectlist->AddRef(); - - if (!strcmp(attr, "active_camera")) - return (PyObject*) GetActiveCamera()->AddRef(); - - if (!strcmp(attr, "suspended")) - return PyInt_FromLong(m_suspend); - - if (!strcmp(attr, "activity_culling")) - return PyInt_FromLong(m_activity_culling); - - if (!strcmp(attr, "activity_culling_radius")) - return PyFloat_FromDouble(m_activity_box_radius); - - PyObject* value = PyDict_GetItemString(m_attrlist, attr); - if (value) + object = PyDict_GetItemString(m_attrlist, attr); + if (object) { - Py_INCREF(value); - return value; + Py_INCREF(object); + return object; } _getattr_up(PyObjectPlus); diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index 962db1a9b96..d1da44c600e 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -565,6 +565,15 @@ public: KX_PYMETHOD_DOC(KX_Scene, setSceneViewport); */ + /* attributes */ + static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_objects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_active_camera(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + /* for dir(), python3 uses __dir__() */ + static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + virtual PyObject* _getattr(const char *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */ virtual int _setattr(const char *attr, PyObject *pyvalue); virtual int _delattr(const char *attr); From 8ca30120a206c8b78645dd3d45c9891acaeebac1 Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Fri, 3 Apr 2009 03:16:31 +0000 Subject: [PATCH 055/201] made grease pencil delete a frame if you delete all the strokes in it. --- source/blender/include/BDR_gpencil.h | 2 +- source/blender/src/drawgpencil.c | 2 +- source/blender/src/gpencil.c | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/source/blender/include/BDR_gpencil.h b/source/blender/include/BDR_gpencil.h index 6af156775be..6848be2a481 100644 --- a/source/blender/include/BDR_gpencil.h +++ b/source/blender/include/BDR_gpencil.h @@ -65,7 +65,7 @@ struct bGPdata *gpencil_data_getactive(struct ScrArea *sa); short gpencil_data_setactive(struct ScrArea *sa, struct bGPdata *gpd); struct ScrArea *gpencil_data_findowner(struct bGPdata *gpd); -void gpencil_frame_delete_laststroke(struct bGPDframe *gpf); +void gpencil_frame_delete_laststroke(struct bGPDframe *gpf, bGPDlayer *gpl); struct bGPDframe *gpencil_layer_getframe(struct bGPDlayer *gpl, int cframe, short addnew); void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf); diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index 1b3d869b2f8..914a604de44 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -140,7 +140,7 @@ void gp_ui_delstroke_cb (void *gpd, void *gpl) bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0); gpencil_layer_setactive(gpd, gpl); - gpencil_frame_delete_laststroke(gpf); + gpencil_frame_delete_laststroke(gpf, gpl); scrarea_queue_winredraw(curarea); } diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index f4cfc0c0dd6..fa502a1af59 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -484,7 +484,7 @@ ScrArea *gpencil_data_findowner (bGPdata *gpd) /* -------- GP-Frame API ---------- */ /* delete the last stroke of the given frame */ -void gpencil_frame_delete_laststroke (bGPDframe *gpf) +void gpencil_frame_delete_laststroke (bGPDframe *gpf, bGPDlayer *gpl) { bGPDstroke *gps= (gpf) ? gpf->strokes.last : NULL; @@ -495,6 +495,11 @@ void gpencil_frame_delete_laststroke (bGPDframe *gpf) /* free the stroke and its data */ MEM_freeN(gps->points); BLI_freelinkN(&gpf->strokes, gps); + + if (gpf->strokes.first == NULL) { + gpencil_layer_delframe(gpl, gpf); + gpencil_layer_getframe(gpl, CFRA, 0); + } } /* -------- GP-Layer API ---------- */ @@ -603,6 +608,7 @@ bGPDframe *gpencil_layer_getframe (bGPDlayer *gpl, int cframe, short addnew) else if (found) gpl->actframe= gpf; else { + gpl->actframe = gpl->frames.first; /* unresolved errogenous situation! */ printf("Error: cannot find appropriate gp-frame \n"); /* gpl->actframe should still be NULL */ @@ -696,7 +702,7 @@ void gpencil_delete_laststroke (bGPdata *gpd) bGPDlayer *gpl= gpencil_layer_getactive(gpd); bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0); - gpencil_frame_delete_laststroke(gpf); + gpencil_frame_delete_laststroke(gpf, gpl); } /* delete the active frame */ From 0499d98311c6c9ce1a096ca2ee7bd0e361b5188c Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Fri, 3 Apr 2009 03:52:19 +0000 Subject: [PATCH 056/201] Setting ignore_deprecation_warnings as 1 by default in GamePlayer (in the embed BGE it is still 0) --- source/gameengine/GamePlayer/ghost/GPG_Application.cpp | 2 +- source/gameengine/GamePlayer/ghost/GPG_ghost.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index e858c852b70..cca344a03bb 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -530,7 +530,7 @@ bool GPG_Application::initEngine(GHOST_IWindow* window, const int stereoMode) bool fixed_framerate= (SYS_GetCommandLineInt(syshandle, "fixed_framerate", fixedFr) != 0); bool frameRate = (SYS_GetCommandLineInt(syshandle, "show_framerate", 0) != 0); bool useLists = (SYS_GetCommandLineInt(syshandle, "displaylists", G.fileflags & G_FILE_DISPLAY_LISTS) != 0); - bool nodepwarnings = (SYS_GetCommandLineInt(syshandle, "ignore_deprecation_warnings", 0) != 0); + bool nodepwarnings = (SYS_GetCommandLineInt(syshandle, "ignore_deprecation_warnings", 1) != 0); if(GLEW_ARB_multitexture && GLEW_VERSION_1_1) m_blendermat = (SYS_GetCommandLineInt(syshandle, "blender_material", 1) != 0); diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index 018c966ac69..a41446ad88c 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -204,7 +204,7 @@ void usage(const char* program) printf(" show_properties 0 Show debug properties\n"); printf(" show_profile 0 Show profiling information\n"); printf(" blender_material 0 Enable material settings\n"); - printf(" ignore_deprecation_warnings 0 Ignore deprecation warnings\n"); + printf(" ignore_deprecation_warnings 1 Ignore deprecation warnings\n"); printf("\n"); printf("example: %s -w 320 200 10 10 -g noaudio c:\\loadtest.blend\n", program); printf("example: %s -g show_framerate = 0 c:\\loadtest.blend\n", program); From d573e9c5390a438b6e606a12d05dc2c6ad06a174 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 3 Apr 2009 04:12:20 +0000 Subject: [PATCH 057/201] BGE Python api Added the method into the PyType so python knows about the methods (its supposed to work this way). This means in the future the api can use PyType_Ready() to store the methods in the types dictionary. Python3 removes Py_FindMethod and we should not be using it anyway since its not that efficient. --- .../Converter/BL_ActionActuator.cpp | 9 ++--- .../Converter/BL_ShapeActionActuator.cpp | 7 +--- source/gameengine/Expressions/ListValue.cpp | 2 + .../gameengine/Expressions/PyObjectPlus.cpp | 9 ++--- source/gameengine/Expressions/Value.cpp | 6 +-- .../GameLogic/SCA_2DFilterActuator.cpp | 9 ++--- .../GameLogic/SCA_ANDController.cpp | 9 ++--- .../GameLogic/SCA_ActuatorSensor.cpp | 9 ++--- .../gameengine/GameLogic/SCA_AlwaysSensor.cpp | 7 +--- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 7 +--- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 7 +--- source/gameengine/GameLogic/SCA_IObject.cpp | 7 +--- source/gameengine/GameLogic/SCA_ISensor.cpp | 9 ++--- .../GameLogic/SCA_JoystickSensor.cpp | 7 +--- .../GameLogic/SCA_KeyboardSensor.cpp | 7 +--- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 9 ++--- .../GameLogic/SCA_NANDController.cpp | 9 ++--- .../GameLogic/SCA_NORController.cpp | 9 ++--- .../gameengine/GameLogic/SCA_ORController.cpp | 7 +--- .../GameLogic/SCA_PropertyActuator.cpp | 9 ++--- .../GameLogic/SCA_PropertySensor.cpp | 9 ++--- .../GameLogic/SCA_PythonController.cpp | 7 +--- .../GameLogic/SCA_RandomActuator.cpp | 9 ++--- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 9 ++--- .../GameLogic/SCA_XNORController.cpp | 9 ++--- .../GameLogic/SCA_XORController.cpp | 9 ++--- source/gameengine/Ketsji/BL_Shader.cpp | 3 +- .../KXNetwork/KX_NetworkMessageActuator.cpp | 9 ++--- .../KXNetwork/KX_NetworkMessageSensor.cpp | 9 ++--- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 3 +- source/gameengine/Ketsji/KX_CDActuator.cpp | 9 ++--- source/gameengine/Ketsji/KX_Camera.cpp | 37 ++----------------- source/gameengine/Ketsji/KX_Camera.h | 5 --- .../gameengine/Ketsji/KX_CameraActuator.cpp | 9 ++--- .../Ketsji/KX_ConstraintActuator.cpp | 9 ++--- .../Ketsji/KX_ConstraintWrapper.cpp | 9 ++--- source/gameengine/Ketsji/KX_GameActuator.cpp | 9 ++--- source/gameengine/Ketsji/KX_GameObject.cpp | 11 ++++-- source/gameengine/Ketsji/KX_IpoActuator.cpp | 9 ++--- source/gameengine/Ketsji/KX_Light.cpp | 33 ++--------------- source/gameengine/Ketsji/KX_Light.h | 1 - source/gameengine/Ketsji/KX_MeshProxy.cpp | 9 ++--- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 9 ++--- source/gameengine/Ketsji/KX_NearSensor.cpp | 9 ++--- .../gameengine/Ketsji/KX_ObjectActuator.cpp | 9 ++--- .../gameengine/Ketsji/KX_ParentActuator.cpp | 9 ++--- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 9 ++--- source/gameengine/Ketsji/KX_PolyProxy.cpp | 9 ++--- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 5 ++- source/gameengine/Ketsji/KX_RadarSensor.cpp | 9 ++--- source/gameengine/Ketsji/KX_RaySensor.cpp | 10 ++--- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 9 ++--- .../Ketsji/KX_SCA_DynamicActuator.cpp | 13 ++----- .../Ketsji/KX_SCA_EndObjectActuator.cpp | 9 ++--- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 13 ++----- source/gameengine/Ketsji/KX_Scene.cpp | 9 ++--- source/gameengine/Ketsji/KX_SceneActuator.cpp | 9 ++--- source/gameengine/Ketsji/KX_SoundActuator.cpp | 9 ++--- source/gameengine/Ketsji/KX_StateActuator.cpp | 12 ++---- source/gameengine/Ketsji/KX_TouchSensor.cpp | 9 ++--- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 9 ++--- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 9 ++--- source/gameengine/Ketsji/KX_VertexProxy.cpp | 9 ++--- .../Ketsji/KX_VisibilityActuator.cpp | 13 +++---- 64 files changed, 183 insertions(+), 407 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 22c6c95b158..88f75eac1d5 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -974,13 +974,10 @@ PyTypeObject BL_ActionActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject BL_ActionActuator::Parents[] = { diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 2e02ee9b941..74953a90bb3 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -431,11 +431,8 @@ PyTypeObject BL_ShapeActionActuator::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject BL_ShapeActionActuator::Parents[] = { diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 90a939af236..aa84cab0266 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -210,6 +210,8 @@ PyTypeObject CListValue::Type = { &instance_as_mapping, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call */ + 0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 494a848be74..417388be464 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -66,12 +66,9 @@ PyTypeObject PyObjectPlus::Type = { __getattr, /*tp_getattr*/ __setattr, /*tp_setattr*/ 0, /*tp_compare*/ - __repr, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call */ + __repr, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyObjectPlus::~PyObjectPlus() diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 2ab0a9addee..36509763454 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -151,10 +151,8 @@ PyTypeObject CValue::Type = { &MyPyCompare, __repr, &cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject CValue::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp index 7bf051f2b5c..0b410728512 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp @@ -90,12 +90,9 @@ PyTypeObject SCA_2DFilterActuator::Type = { __getattr, __setattr, 0, - __repr, - 0, - 0, - 0, - 0, - 0 + __repr, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp index b67ef7dabaf..de67037b64a 100644 --- a/source/gameengine/GameLogic/SCA_ANDController.cpp +++ b/source/gameengine/GameLogic/SCA_ANDController.cpp @@ -116,13 +116,10 @@ PyTypeObject SCA_ANDController::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_ANDController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index 7f8dbef7758..d5c3e1960fe 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -131,13 +131,10 @@ PyTypeObject SCA_ActuatorSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_ActuatorSensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp index 154f0ad8cef..e2125b8b08d 100644 --- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp +++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp @@ -116,11 +116,8 @@ PyTypeObject SCA_AlwaysSensor::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_AlwaysSensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index 31a620b939d..733057017a7 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -142,11 +142,8 @@ PyTypeObject SCA_DelaySensor::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_DelaySensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 49d39f75814..3cefe638726 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -228,11 +228,8 @@ PyTypeObject SCA_ILogicBrick::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp index debd62d44e6..976665a3ccd 100644 --- a/source/gameengine/GameLogic/SCA_IObject.cpp +++ b/source/gameengine/GameLogic/SCA_IObject.cpp @@ -386,11 +386,8 @@ PyTypeObject SCA_IObject::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index e8a072f4c46..0d7dffca17a 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -402,13 +402,10 @@ PyTypeObject SCA_ISensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_ISensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index c2d90c830cf..6b8779ee37a 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -286,11 +286,8 @@ PyTypeObject SCA_JoystickSensor::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 324e5eae98a..bf470daa349 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -789,11 +789,8 @@ PyTypeObject SCA_KeyboardSensor::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_KeyboardSensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 57535b29f32..19365fbbb88 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -309,13 +309,10 @@ PyTypeObject SCA_MouseSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_MouseSensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_NANDController.cpp b/source/gameengine/GameLogic/SCA_NANDController.cpp index 18426d75582..2bc6a3ef1d6 100644 --- a/source/gameengine/GameLogic/SCA_NANDController.cpp +++ b/source/gameengine/GameLogic/SCA_NANDController.cpp @@ -116,13 +116,10 @@ PyTypeObject SCA_NANDController::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_NANDController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_NORController.cpp b/source/gameengine/GameLogic/SCA_NORController.cpp index 1de6a641c3d..98ba77df54c 100644 --- a/source/gameengine/GameLogic/SCA_NORController.cpp +++ b/source/gameengine/GameLogic/SCA_NORController.cpp @@ -116,13 +116,10 @@ PyTypeObject SCA_NORController::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_NORController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp index 61fbc889d90..ba616402ac9 100644 --- a/source/gameengine/GameLogic/SCA_ORController.cpp +++ b/source/gameengine/GameLogic/SCA_ORController.cpp @@ -110,11 +110,8 @@ PyTypeObject SCA_ORController::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_ORController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index c9ace081bae..28a3b6b822a 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -227,13 +227,10 @@ PyTypeObject SCA_PropertyActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_PropertyActuator::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index d683c8bb3e7..ef3dbe7e049 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -315,13 +315,10 @@ PyTypeObject SCA_PropertySensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_PropertySensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index c75e36acab2..4ad3f135d31 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -235,11 +235,8 @@ PyTypeObject SCA_PythonController::Type = { __setattr, 0, //&MyPyCompare, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_PythonController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index d6c73f21f37..78614f9ace3 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -321,13 +321,10 @@ PyTypeObject SCA_RandomActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_RandomActuator::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index 5354c120f52..d88f8f500c0 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -136,13 +136,10 @@ PyTypeObject SCA_RandomSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_RandomSensor::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_XNORController.cpp b/source/gameengine/GameLogic/SCA_XNORController.cpp index b2734dd1b33..a9fe906f54e 100644 --- a/source/gameengine/GameLogic/SCA_XNORController.cpp +++ b/source/gameengine/GameLogic/SCA_XNORController.cpp @@ -120,13 +120,10 @@ PyTypeObject SCA_XNORController::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_XNORController::Parents[] = { diff --git a/source/gameengine/GameLogic/SCA_XORController.cpp b/source/gameengine/GameLogic/SCA_XORController.cpp index 662ef523d56..b0053ca17fb 100644 --- a/source/gameengine/GameLogic/SCA_XORController.cpp +++ b/source/gameengine/GameLogic/SCA_XORController.cpp @@ -120,13 +120,10 @@ PyTypeObject SCA_XORController::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject SCA_XORController::Parents[] = { diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index 60cb288436a..14f672bb68f 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -783,7 +783,8 @@ PyTypeObject BL_Shader::Type = { __setattr, 0, __repr, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index fa4fdaee972..0a7e20b8650 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -114,13 +114,10 @@ PyTypeObject KX_NetworkMessageActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_NetworkMessageActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 40ade460792..d5434a34eb7 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -177,13 +177,10 @@ PyTypeObject KX_NetworkMessageSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_NetworkMessageSensor::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index b9bd7647f89..668873883af 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -764,7 +764,8 @@ PyTypeObject KX_BlenderMaterial::Type = { __setattr, 0, __repr, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index 98f76dbee54..f86a5669225 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -167,13 +167,10 @@ PyTypeObject KX_CDActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index 5caac2fc670..cb138efba89 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -487,33 +487,6 @@ PyAttributeDef KX_Camera::Attributes[] = { { NULL } //Sentinel }; -char KX_Camera::doc[] = "Module KX_Camera\n\n" -"Constants:\n" -"\tINSIDE\n" -"\tINTERSECT\n" -"\tOUTSIDE\n" -"Attributes:\n" -"\tlens -> float\n" -"\t\tThe camera's lens value\n" -"\tnear -> float\n" -"\t\tThe camera's near clip distance\n" -"\tfar -> float\n" -"\t\tThe camera's far clip distance\n" -"\tfrustum_culling -> bool\n" -"\t\tNon zero if this camera is frustum culling.\n" -"\tprojection_matrix -> [[float]]\n" -"\t\tThis camera's projection matrix.\n" -"\tmodelview_matrix -> [[float]] (read only)\n" -"\t\tThis camera's model view matrix.\n" -"\t\tRegenerated every frame from the camera's position and orientation.\n" -"\tcamera_to_world -> [[float]] (read only)\n" -"\t\tThis camera's camera to world transform.\n" -"\t\tRegenerated every frame from the camera's position and orientation.\n" -"\tworld_to_camera -> [[float]] (read only)\n" -"\t\tThis camera's world to camera transform.\n" -"\t\tRegenerated every frame from the camera's position and orientation.\n" -"\t\tThis is camera_to_world inverted.\n"; - PyTypeObject KX_Camera::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, @@ -524,14 +497,10 @@ PyTypeObject KX_Camera::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0, 0, 0, 0, 0, 0, - doc + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_Camera::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h index efd18f99390..b80be9a7fee 100644 --- a/source/gameengine/Ketsji/KX_Camera.h +++ b/source/gameengine/Ketsji/KX_Camera.h @@ -107,11 +107,6 @@ protected: MT_Scalar m_frustum_radius; bool m_set_frustum_center; - /** - * Python module doc string. - */ - static char doc[]; - /** * Extracts the camera clip frames from the projection and world-to-camera matrices. */ diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 65f3aea12f9..08afa2853c3 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -380,13 +380,10 @@ PyTypeObject KX_CameraActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_CameraActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index fba9544d702..31a566f34ad 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -569,13 +569,10 @@ PyTypeObject KX_ConstraintActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_ConstraintActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index f014c1896fe..05e677b9fd3 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -78,13 +78,10 @@ PyTypeObject KX_ConstraintWrapper::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_ConstraintWrapper::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index 6799ac7269c..6800c75d807 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -217,13 +217,10 @@ PyTypeObject KX_GameActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 5c9615c408b..2bd4b2834d1 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1189,17 +1189,20 @@ PyTypeObject KX_GameObject::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, + 0, 0, &Mapping, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; + + + PyParentObject KX_GameObject::Parents[] = { &KX_GameObject::Type, &SCA_IObject::Type, diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index f6fdce9de0f..5d1d45879c9 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -422,13 +422,10 @@ PyTypeObject KX_IpoActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_IpoActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 487b8f30e0d..f71dd69a7a3 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -306,29 +306,6 @@ PyAttributeDef KX_LightObject::Attributes[] = { { NULL } //Sentinel }; -char KX_LightObject::doc[] = "Module KX_LightObject\n\n" -"Constants:\n" -"\tSPOT\n" -"\tSUN\n" -"\tNORMAL\n" -"Attributes:\n" -"\ttype -> SPOT, SUN or NORMAL\n" -"\t\tThe type of light.\n" -"\tlayer -> integer bit field.\n" -"\t\tThe layers this light applies to.\n" -"\tenergy -> float.\n" -"\t\tThe brightness of the light.\n" -"\tdistance -> float.\n" -"\t\tThe effect radius of the light.\n" -"\tcolour -> list [r, g, b].\n" -"\tcolor -> list [r, g, b].\n" -"\t\tThe color of the light.\n" -"\tlin_attenuation -> float.\n" -"\t\tThe attenuation factor for the light.\n" -"\tspotsize -> float.\n" -"\t\tThe size of the spot.\n" -"\tspotblend -> float.\n" -"\t\tThe blend? of the spot.\n"; PyTypeObject KX_LightObject::Type = { PyObject_HEAD_INIT(&PyType_Type) @@ -340,14 +317,10 @@ PyTypeObject KX_LightObject::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0, 0, 0, 0, 0, 0, - doc + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_LightObject::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h index 47edd09b5b9..98dcc8ef873 100644 --- a/source/gameengine/Ketsji/KX_Light.h +++ b/source/gameengine/Ketsji/KX_Light.h @@ -47,7 +47,6 @@ protected: class RAS_IRenderTools* m_rendertools; //needed for registering and replication of lightobj bool m_glsl; Scene* m_blenderscene; - static char doc[]; public: KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks,class RAS_IRenderTools* rendertools,const struct RAS_LightObject& lightobj, bool glsl, PyTypeObject *T = &Type); diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index f40c307315e..f349a6b519a 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -55,13 +55,10 @@ PyTypeObject KX_MeshProxy::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_MeshProxy::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 384034485e7..973dfce505b 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -302,13 +302,10 @@ PyTypeObject KX_MouseFocusSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_MouseFocusSensor::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index 993a6b3d86c..383d673b7ea 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -296,13 +296,10 @@ PyTypeObject KX_NearSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index 0666261b470..ca2157f2bc0 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -286,13 +286,10 @@ PyTypeObject KX_ObjectActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_ObjectActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 3430fd85184..4c0507cd0bf 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -148,13 +148,10 @@ PyTypeObject KX_ParentActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_ParentActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 246c63feb21..4c04a96eae2 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -128,13 +128,10 @@ PyTypeObject KX_PhysicsObjectWrapper::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_PhysicsObjectWrapper::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index b4bdd77fb66..27fbe8b19f3 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -48,13 +48,10 @@ PyTypeObject KX_PolyProxy::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_PolyProxy::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index bbaf697b168..9e979144c47 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -194,9 +194,10 @@ PyTypeObject KX_PolygonMaterial::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0 //&cvalue_as_number, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_PolygonMaterial::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index fa8998cd81d..91ad60e8cee 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -259,13 +259,10 @@ PyTypeObject KX_RadarSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_RadarSensor::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index 253fe11fe05..fdaf48218b3 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -330,13 +330,11 @@ PyTypeObject KX_RaySensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods + }; PyParentObject KX_RaySensor::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 7c4f60a7f0a..33e74d4dc5a 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -176,13 +176,10 @@ PyTypeObject KX_SCA_AddObjectActuator::Type = { 0, __getattr, __setattr, - 0, + 0, __repr, - 0, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_SCA_AddObjectActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index 8df3af61721..7dd5301385c 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -50,9 +50,7 @@ PyTypeObject -KX_SCA_DynamicActuator:: - -Type = { +KX_SCA_DynamicActuator::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "KX_SCA_DynamicActuator", @@ -62,13 +60,10 @@ Type = { 0, __getattr, __setattr, - 0, + 0, __repr, - 0, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_SCA_DynamicActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp index 9268a1df5f0..6f0bd65ce43 100644 --- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp @@ -103,13 +103,10 @@ PyTypeObject KX_SCA_EndObjectActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 58d6f659135..c892af71159 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -52,9 +52,7 @@ PyTypeObject -KX_SCA_ReplaceMeshActuator:: - -Type = { +KX_SCA_ReplaceMeshActuator::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "KX_SCA_ReplaceMeshActuator", @@ -64,13 +62,10 @@ Type = { 0, __getattr, __setattr, - 0, + 0, __repr, - 0, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_SCA_ReplaceMeshActuator::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index b24b5cd9693..67f6c567549 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1526,13 +1526,10 @@ PyTypeObject KX_Scene::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0, 0, 0, 0, 0, 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_Scene::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 579c53974d5..595d2cb4070 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -235,13 +235,10 @@ PyTypeObject KX_SceneActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index 6de1d67bfdb..f6c0283d49f 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -242,13 +242,10 @@ PyTypeObject KX_SoundActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index 0de4da79bd8..e48c4209923 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -108,8 +108,7 @@ KX_StateActuator::Update() /* Integration hooks ------------------------------------------------------- */ -PyTypeObject -KX_StateActuator::Type = { +PyTypeObject KX_StateActuator::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "KX_StateActuator", @@ -119,13 +118,10 @@ KX_StateActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index 705b54edd37..b1c22a86f3d 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -251,13 +251,10 @@ PyTypeObject KX_TouchSensor::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_TouchSensor::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index e54528c7bd4..575abc5d748 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -434,13 +434,10 @@ PyTypeObject KX_TrackToActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 8d5af1b9216..4960228056a 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -308,13 +308,10 @@ PyTypeObject KX_VehicleWrapper::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_VehicleWrapper::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index da0e3dbdd8d..d7b5203795d 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -46,13 +46,10 @@ PyTypeObject KX_VertexProxy::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_VertexProxy::Parents[] = { diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 6d3c4e79280..10e8c827394 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -90,8 +90,7 @@ KX_VisibilityActuator::Update() /* Integration hooks ------------------------------------------------------- */ -PyTypeObject -KX_VisibilityActuator::Type = { +PyTypeObject KX_VisibilityActuator::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, "KX_VisibilityActuator", @@ -101,13 +100,11 @@ KX_VisibilityActuator::Type = { 0, __getattr, __setattr, - 0, //&MyPyCompare, + 0, __repr, - 0, //&cvalue_as_number, - 0, - 0, - 0, - 0 + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + Methods + }; PyParentObject From 60bd7d12fcde42ff048a0c83684b1b53dfec6f93 Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Fri, 3 Apr 2009 04:36:38 +0000 Subject: [PATCH 058/201] fix for last commit, needed some additional checks --- source/blender/src/drawgpencil.c | 2 ++ source/blender/src/gpencil.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index 914a604de44..3c6cef469a2 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -139,6 +139,8 @@ void gp_ui_delstroke_cb (void *gpd, void *gpl) { bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0); + if (gpf->framenum != CFRA) return; + gpencil_layer_setactive(gpd, gpl); gpencil_frame_delete_laststroke(gpf, gpl); diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index fa502a1af59..c7e453c416c 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -702,6 +702,8 @@ void gpencil_delete_laststroke (bGPdata *gpd) bGPDlayer *gpl= gpencil_layer_getactive(gpd); bGPDframe *gpf= gpencil_layer_getframe(gpl, CFRA, 0); + if (gpf->framenum != CFRA) return; + gpencil_frame_delete_laststroke(gpf, gpl); } From 5934757089af90438ac82235d4db5f040454e10b Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 3 Apr 2009 14:41:31 +0000 Subject: [PATCH 059/201] Bug fix: hair or child particles didn't react to density texture. --- source/blender/blenkernel/intern/particle.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index c2304c86bee..b1ed165fedd 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -2050,9 +2050,10 @@ void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, ptex.clump=1.0; ptex.kink=1.0; ptex.rough= 1.0; + ptex.exist= 1.0; get_cpa_texture(ctx->dm,ctx->ma,cpa_num,cpa_fuv,orco,&ptex, - MAP_PA_LENGTH|MAP_PA_CLUMP|MAP_PA_KINK|MAP_PA_ROUGH); + MAP_PA_DENS|MAP_PA_LENGTH|MAP_PA_CLUMP|MAP_PA_KINK|MAP_PA_ROUGH); pa_length=ptex.length; pa_clump=ptex.clump; @@ -2062,6 +2063,11 @@ void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, pa_roughe=ptex.rough; pa_effector= 1.0f; + if(ptex.exist < cpa->rand[1]) { + keys->steps = -1; + return; + } + if(ctx->vg_length) pa_length*=psys_interpolate_value_from_verts(ctx->dm,cpa_from,cpa_num,cpa_fuv,ctx->vg_length); if(ctx->vg_clump) @@ -3165,6 +3171,8 @@ static void get_cpa_texture(DerivedMesh *dm, Material *ma, int face_index, float ptex->kink= texture_value_blend(def,ptex->kink,value,var,blend,neg & MAP_PA_KINK); if((event & mtex->pmapto) & MAP_PA_ROUGH) ptex->rough= texture_value_blend(def,ptex->rough,value,var,blend,neg & MAP_PA_ROUGH); + if((event & mtex->pmapto) & MAP_PA_DENS) + ptex->exist= texture_value_blend(def,ptex->exist,value,var,blend,neg & MAP_PA_DENS); } } if(event & MAP_PA_TIME) { CLAMP(ptex->time,0.0,1.0); } @@ -3172,6 +3180,7 @@ static void get_cpa_texture(DerivedMesh *dm, Material *ma, int face_index, float if(event & MAP_PA_CLUMP) { CLAMP(ptex->clump,0.0,1.0); } if(event & MAP_PA_KINK) { CLAMP(ptex->kink,0.0,1.0); } if(event & MAP_PA_ROUGH) { CLAMP(ptex->rough,0.0,1.0); } + if(event & MAP_PA_DENS) { CLAMP(ptex->exist,0.0,1.0); } } void psys_get_texture(Object *ob, Material *ma, ParticleSystemModifierData *psmd, ParticleSystem *psys, ParticleData *pa, ParticleTexture *ptex, int event) { @@ -3859,4 +3868,3 @@ void psys_get_dupli_path_transform(Object *ob, ParticleSystem *psys, ParticleSys *scale= len; } - From e30cb79aaa8d9a25b66c57aa08fb79bf591b6be4 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 3 Apr 2009 14:50:54 +0000 Subject: [PATCH 060/201] Major cleanup of particle render & drawing code. No new features and hopefully no new bugs. --- source/blender/blenkernel/BKE_particle.h | 15 + source/blender/blenkernel/intern/particle.c | 73 ++ .../render/intern/source/convertblender.c | 994 ++++++++---------- source/blender/src/drawobject.c | 398 +++---- 4 files changed, 713 insertions(+), 767 deletions(-) diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index ecc97dd5d3b..5dbfe2fe520 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -188,6 +188,19 @@ typedef struct ParticleThread { int num, tot; } ParticleThread; +typedef struct ParticleBillboardData +{ + struct Object *ob; + float vec[3], vel[3]; + float offset[2]; + float size, tilt, random, time; + int uv[3]; + int lock, num; + int totnum; + short align, uv_split, anim, split_offset; +} +ParticleBillboardData; + /* ----------- functions needed outside particlesystem ---------------- */ /* particle.c */ int count_particles(struct ParticleSystem *psys); @@ -260,6 +273,8 @@ void psys_threads_free(ParticleThread *threads); void psys_thread_distribute_particle(ParticleThread *thread, struct ParticleData *pa, struct ChildParticle *cpa, int p); void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, ParticleCacheKey *keys, int i); +void psys_make_billboard(ParticleBillboardData *bb, float xvec[3], float yvec[3], float zvec[3], float center[3]); + /* particle_system.c */ int psys_count_keyed_targets(struct Object *ob, struct ParticleSystem *psys); void psys_get_reactor_target(struct Object *ob, struct ParticleSystem *psys, struct Object **target_ob, struct ParticleSystem **target_psys); diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index b1ed165fedd..4eabb82f6cb 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3868,3 +3868,76 @@ void psys_get_dupli_path_transform(Object *ob, ParticleSystem *psys, ParticleSys *scale= len; } + +void psys_make_billboard(ParticleBillboardData *bb, float xvec[3], float yvec[3], float zvec[3], float center[3]) +{ + float onevec[3] = {0.0f,0.0f,0.0f}, tvec[3], tvec2[3]; + + xvec[0] = 1.0f; xvec[1] = 0.0f; xvec[2] = 0.0f; + yvec[0] = 0.0f; yvec[1] = 1.0f; yvec[2] = 0.0f; + + if(bb->align < PART_BB_VIEW) + onevec[bb->align]=1.0f; + + if(bb->lock && (bb->align == PART_BB_VIEW)) { + VECCOPY(xvec, bb->ob->obmat[0]); + Normalize(xvec); + + VECCOPY(yvec, bb->ob->obmat[1]); + Normalize(yvec); + + VECCOPY(zvec, bb->ob->obmat[2]); + Normalize(zvec); + } + else if(bb->align == PART_BB_VEL) { + float temp[3]; + + VECCOPY(temp, bb->vel); + Normalize(temp); + + VECSUB(zvec, bb->ob->obmat[3], bb->vec); + + if(bb->lock) { + float fac = -Inpf(zvec, temp); + + VECADDFAC(zvec, zvec, temp, fac); + } + Normalize(zvec); + + Crossf(xvec,temp,zvec); + Normalize(xvec); + + Crossf(yvec,zvec,xvec); + } + else { + VECSUB(zvec, bb->ob->obmat[3], bb->vec); + if(bb->lock) + zvec[bb->align] = 0.0f; + Normalize(zvec); + + if(bb->align < PART_BB_VIEW) + Crossf(xvec, onevec, zvec); + else + Crossf(xvec, bb->ob->obmat[1], zvec); + Normalize(xvec); + + Crossf(yvec,zvec,xvec); + } + + VECCOPY(tvec, xvec); + VECCOPY(tvec2, yvec); + + VecMulf(xvec, cos(bb->tilt * (float)M_PI)); + VecMulf(tvec2, sin(bb->tilt * (float)M_PI)); + VECADD(xvec, xvec, tvec2); + + VecMulf(yvec, cos(bb->tilt * (float)M_PI)); + VecMulf(tvec, -sin(bb->tilt * (float)M_PI)); + VECADD(yvec, yvec, tvec); + + VecMulf(xvec, bb->size); + VecMulf(yvec, bb->size); + + VECADDFAC(center, bb->vec, xvec, bb->offset[0]); + VECADDFAC(center, center, yvec, bb->offset[1]); +} \ No newline at end of file diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 601acc881de..9e474c19619 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -947,11 +947,17 @@ static Material *give_render_material(Render *re, Object *ob, int nr) /* ------------------------------------------------------------------------- */ /* Particles */ /* ------------------------------------------------------------------------- */ - +typedef struct ParticleStrandData +{ + struct MCol *mcol; + float *orco, *uvco, *surfnor; + float time, adapt_angle, adapt_pix, size; + int totuv, totcol; + int first, line, adapt, override_uv; +} +ParticleStrandData; /* future thread problem... */ -static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, float *orco, float *surfnor, - float *uvco, int totuv, MCol *mcol, int totcol, float *vec, float *vec1, float ctime, - int first, int line, int adapt, float adapt_angle, float adapt_pix, int override_uv) +static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, ParticleStrandData *sd, float *vec, float *vec1) { static VertRen *v1= NULL, *v2= NULL; VlakRen *vlr; @@ -974,11 +980,11 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo float fac; if(ma->strand_ease!=0.0f) { if(ma->strand_ease<0.0f) - fac= pow(ctime, 1.0+ma->strand_ease); + fac= pow(sd->time, 1.0+ma->strand_ease); else - fac= pow(ctime, 1.0/(1.0f-ma->strand_ease)); + fac= pow(sd->time, 1.0/(1.0f-ma->strand_ease)); } - else fac= ctime; + else fac= sd->time; width= ((1.0f-fac)*ma->strand_sta + (fac)*ma->strand_end); @@ -1010,7 +1016,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo flag |= R_STRAND; /* single face line */ - if(line) { + if(sd->line) { vlr= RE_findOrAddVlak(obr, obr->totvlak++); vlr->flag= flag; vlr->v1= RE_findOrAddVert(obr, obr->totvert++); @@ -1021,25 +1027,25 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo VECCOPY(vlr->v1->co, vec); VecAddf(vlr->v1->co, vlr->v1->co, cross); VECCOPY(vlr->v1->n, nor); - vlr->v1->orco= orco; + vlr->v1->orco= sd->orco; vlr->v1->accum= -1.0f; // accum abuse for strand texco VECCOPY(vlr->v2->co, vec); VecSubf(vlr->v2->co, vlr->v2->co, cross); VECCOPY(vlr->v2->n, nor); - vlr->v2->orco= orco; + vlr->v2->orco= sd->orco; vlr->v2->accum= vlr->v1->accum; VECCOPY(vlr->v4->co, vec1); VecAddf(vlr->v4->co, vlr->v4->co, cross); VECCOPY(vlr->v4->n, nor); - vlr->v4->orco= orco; + vlr->v4->orco= sd->orco; vlr->v4->accum= 1.0f; // accum abuse for strand texco VECCOPY(vlr->v3->co, vec1); VecSubf(vlr->v3->co, vlr->v3->co, cross); VECCOPY(vlr->v3->n, nor); - vlr->v3->orco= orco; + vlr->v3->orco= sd->orco; vlr->v3->accum= vlr->v4->accum; CalcNormFloat4(vlr->v4->co, vlr->v3->co, vlr->v2->co, vlr->v1->co, vlr->n); @@ -1047,23 +1053,23 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo vlr->mat= ma; vlr->ec= ME_V2V3; - if(surfnor) { + if(sd->surfnor) { float *snor= RE_vlakren_get_surfnor(obr, vlr, 1); - VECCOPY(snor, surfnor); + VECCOPY(snor, sd->surfnor); } - if(uvco){ - for(i=0; iuvco){ + for(i=0; itotuv; i++){ MTFace *mtf; mtf=RE_vlakren_get_tface(obr,vlr,i,NULL,1); mtf->uv[0][0]=mtf->uv[1][0]= - mtf->uv[2][0]=mtf->uv[3][0]=(uvco+2*i)[0]; + mtf->uv[2][0]=mtf->uv[3][0]=(sd->uvco+2*i)[0]; mtf->uv[0][1]=mtf->uv[1][1]= - mtf->uv[2][1]=mtf->uv[3][1]=(uvco+2*i)[1]; + mtf->uv[2][1]=mtf->uv[3][1]=(sd->uvco+2*i)[1]; } - if(override_uv>=0){ + if(sd->override_uv>=0){ MTFace *mtf; - mtf=RE_vlakren_get_tface(obr,vlr,override_uv,NULL,0); + mtf=RE_vlakren_get_tface(obr,vlr,sd->override_uv,NULL,0); mtf->uv[0][0]=mtf->uv[3][0]=0.0f; mtf->uv[1][0]=mtf->uv[2][0]=1.0f; @@ -1072,18 +1078,18 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo mtf->uv[2][1]=mtf->uv[3][1]=1.0f; } } - if(mcol){ - for(i=0; imcol){ + for(i=0; itotcol; i++){ MCol *mc; mc=RE_vlakren_get_mcol(obr,vlr,i,NULL,1); - mc[0]=mc[1]=mc[2]=mc[3]=mcol[i]; - mc[0]=mc[1]=mc[2]=mc[3]=mcol[i]; + mc[0]=mc[1]=mc[2]=mc[3]=sd->mcol[i]; + mc[0]=mc[1]=mc[2]=mc[3]=sd->mcol[i]; } } } /* first two vertices of a strand */ - else if(first) { - if(adapt){ + else if(sd->first) { + if(sd->adapt){ VECCOPY(anor, nor); VECCOPY(avec, vec); second=1; @@ -1095,18 +1101,18 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo VECCOPY(v1->co, vec); VecAddf(v1->co, v1->co, cross); VECCOPY(v1->n, nor); - v1->orco= orco; + v1->orco= sd->orco; v1->accum= -1.0f; // accum abuse for strand texco VECCOPY(v2->co, vec); VecSubf(v2->co, v2->co, cross); VECCOPY(v2->n, nor); - v2->orco= orco; + v2->orco= sd->orco; v2->accum= v1->accum; } /* more vertices & faces to strand */ else { - if(adapt==0 || second){ + if(sd->adapt==0 || second){ vlr= RE_findOrAddVlak(obr, obr->totvlak++); vlr->flag= flag; vlr->v1= v1; @@ -1118,14 +1124,14 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo v2= vlr->v3; // cycle - if(adapt){ + if(sd->adapt){ second=0; VECCOPY(anor,nor); VECCOPY(avec,vec); } } - else if(adapt){ + else if(sd->adapt){ float dvec[3],pvec[3]; VecSubf(dvec,avec,vec); Projf(pvec,dvec,vec); @@ -1135,7 +1141,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo dx= re->winx*dvec[0]*re->winmat[0][0]/w; dy= re->winy*dvec[1]*re->winmat[1][1]/w; w= sqrt(dx*dx + dy*dy); - if(Inpf(anor,nor)adapt_pix){ + if(Inpf(anor,nor)adapt_angle && w>sd->adapt_pix){ vlr= RE_findOrAddVlak(obr, obr->totvlak++); vlr->flag= flag; vlr->v1= v1; @@ -1157,13 +1163,13 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo VECCOPY(vlr->v4->co, vec); VecAddf(vlr->v4->co, vlr->v4->co, cross); VECCOPY(vlr->v4->n, nor); - vlr->v4->orco= orco; - vlr->v4->accum= -1.0f + 2.0f*ctime; // accum abuse for strand texco + vlr->v4->orco= sd->orco; + vlr->v4->accum= -1.0f + 2.0f*sd->time; // accum abuse for strand texco VECCOPY(vlr->v3->co, vec); VecSubf(vlr->v3->co, vlr->v3->co, cross); VECCOPY(vlr->v3->n, nor); - vlr->v3->orco= orco; + vlr->v3->orco= sd->orco; vlr->v3->accum= vlr->v4->accum; CalcNormFloat4(vlr->v4->co, vlr->v3->co, vlr->v2->co, vlr->v1->co, vlr->n); @@ -1171,23 +1177,23 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo vlr->mat= ma; vlr->ec= ME_V2V3; - if(surfnor) { + if(sd->surfnor) { float *snor= RE_vlakren_get_surfnor(obr, vlr, 1); - VECCOPY(snor, surfnor); + VECCOPY(snor, sd->surfnor); } - if(uvco){ - for(i=0; iuvco){ + for(i=0; itotuv; i++){ MTFace *mtf; mtf=RE_vlakren_get_tface(obr,vlr,i,NULL,1); mtf->uv[0][0]=mtf->uv[1][0]= - mtf->uv[2][0]=mtf->uv[3][0]=(uvco+2*i)[0]; + mtf->uv[2][0]=mtf->uv[3][0]=(sd->uvco+2*i)[0]; mtf->uv[0][1]=mtf->uv[1][1]= - mtf->uv[2][1]=mtf->uv[3][1]=(uvco+2*i)[1]; + mtf->uv[2][1]=mtf->uv[3][1]=(sd->uvco+2*i)[1]; } - if(override_uv>=0){ + if(sd->override_uv>=0){ MTFace *mtf; - mtf=RE_vlakren_get_tface(obr,vlr,override_uv,NULL,0); + mtf=RE_vlakren_get_tface(obr,vlr,sd->override_uv,NULL,0); mtf->uv[0][0]=mtf->uv[3][0]=0.0f; mtf->uv[1][0]=mtf->uv[2][0]=1.0f; @@ -1196,12 +1202,12 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, flo mtf->uv[2][1]=mtf->uv[3][1]=(vlr->v3->accum+1.0f)/2.0f; } } - if(mcol){ - for(i=0; imcol){ + for(i=0; itotcol; i++){ MCol *mc; mc=RE_vlakren_get_mcol(obr,vlr,i,NULL,1); - mc[0]=mc[1]=mc[2]=mc[3]=mcol[i]; - mc[0]=mc[1]=mc[2]=mc[3]=mcol[i]; + mc[0]=mc[1]=mc[2]=mc[3]=sd->mcol[i]; + mc[0]=mc[1]=mc[2]=mc[3]=sd->mcol[i]; } } } @@ -1254,17 +1260,13 @@ static void static_particle_wire(ObjectRen *obr, Material *ma, float *vec, float } } -static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, Object *bb_ob, float *vec, float *vel, float size, float tilt, short align, - int lock, int p, int totpart, short uv_split, short anim, short split_offset, float random, float pa_time, float offset[2], int uv[3]) + +static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, ParticleBillboardData *bb) { VlakRen *vlr; MTFace *mtf; - float xvec[3]={1.0f,0.0f,0.0f}, yvec[3]={0.0f,1.0f,0.0f}, zvec[3]; - float onevec[3]={0.0f,0.0f,0.0f}, tvec[3],tvec2[3], bb_center[3]; - float uvx=0.0f, uvy=0.0f, uvdx=1.0f, uvdy=1.0f, time=0.0f; - - if(aligntotvlak++); vlr->v1= RE_findOrAddVert(obr, obr->totvert++); @@ -1272,74 +1274,23 @@ static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, Object vlr->v3= RE_findOrAddVert(obr, obr->totvert++); vlr->v4= RE_findOrAddVert(obr, obr->totvert++); - if(lock && align==PART_BB_VIEW){ - VECCOPY(xvec,bb_ob->obmat[0]); - Normalize(xvec); - VECCOPY(yvec,bb_ob->obmat[1]); - Normalize(yvec); - VECCOPY(zvec,bb_ob->obmat[2]); - Normalize(zvec); - } - else if(align==PART_BB_VEL){ - float temp[3]; - VECCOPY(temp,vel); - Normalize(temp); - VECSUB(zvec,bb_ob->obmat[3],vec); - if(lock){ - float fac=-Inpf(zvec,temp); - VECADDFAC(zvec,zvec,temp,fac); - } - Normalize(zvec); - Crossf(xvec,temp,zvec); - Normalize(xvec); - Crossf(yvec,zvec,xvec); - } - else{ - VECSUB(zvec,bb_ob->obmat[3],vec); - if(lock) - zvec[align]=0.0f; - Normalize(zvec); + psys_make_billboard(bb, xvec, yvec, zvec, bb_center); - if(alignobmat[1],zvec); - Normalize(xvec); - Crossf(yvec,zvec,xvec); - } + VECADD(vlr->v1->co, bb_center, xvec); + VECADD(vlr->v1->co, vlr->v1->co, yvec); + MTC_Mat4MulVecfl(re->viewmat, vlr->v1->co); - VECCOPY(tvec,xvec); - VECCOPY(tvec2,yvec); + VECSUB(vlr->v2->co, bb_center, xvec); + VECADD(vlr->v2->co, vlr->v2->co, yvec); + MTC_Mat4MulVecfl(re->viewmat, vlr->v2->co); - VecMulf(xvec,cos(tilt*(float)M_PI)); - VecMulf(tvec2,sin(tilt*(float)M_PI)); - VECADD(xvec,xvec,tvec2); + VECSUB(vlr->v3->co, bb_center, xvec); + VECSUB(vlr->v3->co, vlr->v3->co, yvec); + MTC_Mat4MulVecfl(re->viewmat, vlr->v3->co); - VecMulf(yvec,cos(tilt*(float)M_PI)); - VecMulf(tvec,-sin(tilt*(float)M_PI)); - VECADD(yvec,yvec,tvec); - - VecMulf(xvec,size); - VecMulf(yvec,size); - - VECADDFAC(bb_center,vec,xvec,offset[0]); - VECADDFAC(bb_center,bb_center,yvec,offset[1]); - - VECADD(vlr->v1->co,bb_center,xvec); - VECADD(vlr->v1->co,vlr->v1->co,yvec); - MTC_Mat4MulVecfl(re->viewmat,vlr->v1->co); - - VECSUB(vlr->v2->co,bb_center,xvec); - VECADD(vlr->v2->co,vlr->v2->co,yvec); - MTC_Mat4MulVecfl(re->viewmat,vlr->v2->co); - - VECSUB(vlr->v3->co,bb_center,xvec); - VECSUB(vlr->v3->co,vlr->v3->co,yvec); - MTC_Mat4MulVecfl(re->viewmat,vlr->v3->co); - - VECADD(vlr->v4->co,bb_center,xvec); - VECSUB(vlr->v4->co,vlr->v4->co,yvec); - MTC_Mat4MulVecfl(re->viewmat,vlr->v4->co); + VECADD(vlr->v4->co, bb_center, xvec); + VECSUB(vlr->v4->co, vlr->v4->co, yvec); + MTC_Mat4MulVecfl(re->viewmat, vlr->v4->co); CalcNormFloat4(vlr->v4->co, vlr->v3->co, vlr->v2->co, vlr->v1->co, vlr->n); VECCOPY(vlr->v1->n,vlr->n); @@ -1350,113 +1301,141 @@ static void particle_billboard(Render *re, ObjectRen *obr, Material *ma, Object vlr->mat= ma; vlr->ec= ME_V2V3; - if(uv_split>1){ - uvdx=uvdy=1.0f/(float)uv_split; - if(anim==PART_BB_ANIM_TIME){ - if(split_offset==PART_BB_OFF_NONE) - time=pa_time; - else if(split_offset==PART_BB_OFF_LINEAR) - time=(float)fmod(pa_time+(float)p/(float)(uv_split*uv_split),1.0f); + if(bb->uv_split > 1){ + uvdx = uvdy = 1.0f / (float)bb->uv_split; + if(bb->anim == PART_BB_ANIM_TIME) { + if(bb->split_offset == PART_BB_OFF_NONE) + time = bb->time; + else if(bb->split_offset == PART_BB_OFF_LINEAR) + time = (float)fmod(bb->time + (float)bb->num / (float)(bb->uv_split * bb->uv_split), 1.0f); else /* split_offset==PART_BB_OFF_RANDOM */ - time=(float)fmod(pa_time+random,1.0f); + time = (float)fmod(bb->time + bb->random, 1.0f); } - else if(anim==PART_BB_ANIM_ANGLE){ - if(align==PART_BB_VIEW){ - time=(float)fmod((tilt+1.0f)/2.0f,1.0); + else if(bb->anim == PART_BB_ANIM_ANGLE) { + if(bb->align == PART_BB_VIEW) { + time = (float)fmod((bb->tilt + 1.0f) / 2.0f, 1.0); } else{ - float axis1[3]={0.0f,0.0f,0.0f}; - float axis2[3]={0.0f,0.0f,0.0f}; - axis1[(align+1)%3]=1.0f; - axis2[(align+2)%3]=1.0f; - if(lock==0){ - zvec[align]=0.0f; + float axis1[3] = {0.0f,0.0f,0.0f}; + float axis2[3] = {0.0f,0.0f,0.0f}; + axis1[(bb->align + 1) % 3] = 1.0f; + axis2[(bb->align + 2) % 3] = 1.0f; + if(bb->lock == 0) { + zvec[bb->align] = 0.0f; Normalize(zvec); } - time=saacos(Inpf(zvec,axis1))/(float)M_PI; - if(Inpf(zvec,axis2)<0.0f) - time=1.0f-time/2.0f; + time = saacos(Inpf(zvec, axis1)) / (float)M_PI; + if(Inpf(zvec, axis2) < 0.0f) + time = 1.0f - time / 2.0f; else - time=time/2.0f; + time = time / 2.0f; } - if(split_offset==PART_BB_OFF_LINEAR) - time=(float)fmod(pa_time+(float)p/(float)(uv_split*uv_split),1.0f); - else if(split_offset==PART_BB_OFF_RANDOM) - time=(float)fmod(pa_time+random,1.0f); + if(bb->split_offset == PART_BB_OFF_LINEAR) + time = (float)fmod(bb->time + (float)bb->num / (float)(bb->uv_split * bb->uv_split), 1.0f); + else if(bb->split_offset == PART_BB_OFF_RANDOM) + time = (float)fmod(bb->time + bb->random, 1.0f); } else{ - if(split_offset==PART_BB_OFF_NONE) - time=0.0f; - else if(split_offset==PART_BB_OFF_LINEAR) - time=(float)fmod((float)p/(float)(uv_split*uv_split),1.0f); + if(bb->split_offset == PART_BB_OFF_NONE) + time = 0.0f; + else if(bb->split_offset == PART_BB_OFF_LINEAR) + time = (float)fmod((float)bb->num /(float)(bb->uv_split * bb->uv_split) , 1.0f); else /* split_offset==PART_BB_OFF_RANDOM */ - time=random; + time = bb->random; } - uvx=uvdx*floor((float)(uv_split*uv_split)*(float)fmod((double)time,(double)uvdx)); - uvy=uvdy*floor((1.0f-time)*(float)uv_split); - if(fmod(time,1.0f/uv_split)==0.0f) - uvy-=uvdy; + uvx = uvdx * floor((float)(bb->uv_split * bb->uv_split) * (float)fmod((double)time, (double)uvdx)); + uvy = uvdy * floor((1.0f - time) * (float)bb->uv_split); + if(fmod(time, 1.0f / bb->uv_split) == 0.0f) + uvy -= uvdy; } /* normal UVs */ - if(uv[0]>=0){ - mtf=RE_vlakren_get_tface(obr,vlr,uv[0],NULL,1); - mtf->uv[0][0]=1.0f; - mtf->uv[0][1]=1.0f; - mtf->uv[1][0]=0.0f; - mtf->uv[1][1]=1.0f; - mtf->uv[2][0]=0.0f; - mtf->uv[2][1]=0.0f; - mtf->uv[3][0]=1.0f; - mtf->uv[3][1]=0.0f; + if(bb->uv[0] >= 0){ + mtf = RE_vlakren_get_tface(obr, vlr, bb->uv[0], NULL, 1); + mtf->uv[0][0] = 1.0f; + mtf->uv[0][1] = 1.0f; + mtf->uv[1][0] = 0.0f; + mtf->uv[1][1] = 1.0f; + mtf->uv[2][0] = 0.0f; + mtf->uv[2][1] = 0.0f; + mtf->uv[3][0] = 1.0f; + mtf->uv[3][1] = 0.0f; } /* time-index UVs */ - if(uv[1]>=0){ - mtf=RE_vlakren_get_tface(obr,vlr,uv[1],NULL,1); - mtf->uv[0][0]=mtf->uv[1][0]=mtf->uv[2][0]=mtf->uv[3][0]=pa_time; - mtf->uv[0][1]=mtf->uv[1][1]=mtf->uv[2][1]=mtf->uv[3][1]=(float)p/(float)totpart; + if(bb->uv[1] >= 0){ + mtf = RE_vlakren_get_tface(obr, vlr, bb->uv[1], NULL, 1); + mtf->uv[0][0] = mtf->uv[1][0] = mtf->uv[2][0] = mtf->uv[3][0] = bb->time; + mtf->uv[0][1] = mtf->uv[1][1] = mtf->uv[2][1] = mtf->uv[3][1] = (float)bb->num/(float)bb->totnum; } /* split UVs */ - if(uv_split>1 && uv[2]>=0){ - mtf=RE_vlakren_get_tface(obr,vlr,uv[2],NULL,1); - mtf->uv[0][0]=uvx+uvdx; - mtf->uv[0][1]=uvy+uvdy; - mtf->uv[1][0]=uvx; - mtf->uv[1][1]=uvy+uvdy; - mtf->uv[2][0]=uvx; - mtf->uv[2][1]=uvy; - mtf->uv[3][0]=uvx+uvdx; - mtf->uv[3][1]=uvy; + if(bb->uv_split > 1 && bb->uv[2] >= 0){ + mtf = RE_vlakren_get_tface(obr, vlr, bb->uv[2], NULL, 1); + mtf->uv[0][0] = uvx + uvdx; + mtf->uv[0][1] = uvy + uvdy; + mtf->uv[1][0] = uvx; + mtf->uv[1][1] = uvy + uvdy; + mtf->uv[2][0] = uvx; + mtf->uv[2][1] = uvy; + mtf->uv[3][0] = uvx + uvdx; + mtf->uv[3][1] = uvy; } } -static void render_new_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Material *ma, int path, int first, int line, - float time, float *loc, float *loc1, float *orco, float *surfnor, int totuv, float *uvco, - int totcol, MCol *mcol, float size, int seed, int override_uv, - int adapt, float adapt_angle, float adapt_pix) +static void render_new_particle(Render *re, ObjectRen *obr, DerivedMesh *dm, Material *ma, ParticleStrandData *sd, float *loc, float *loc1, int seed) { HaloRen *har=0; - if(path){ - if(ma->mode&MA_WIRE) - static_particle_wire(obr, ma, loc, loc1, first, line); - else if(ma->mode & MA_HALO){ - har= RE_inithalo_particle(re, obr, dm, ma, loc, loc1, orco, uvco, size, 1.0, seed); - if(har) har->lay= obr->ob->lay; - } - else - static_particle_strand(re, obr, ma, orco, surfnor, uvco, totuv, mcol, totcol, loc, loc1, time, first, line, adapt, adapt_angle, adapt_pix, override_uv); - } - else{ - har= RE_inithalo_particle(re, obr, dm, ma, loc, NULL, orco, uvco, size, 0.0, seed); + + if(ma->mode&MA_WIRE) + static_particle_wire(obr, ma, loc, loc1, sd->first, sd->line); + else if(ma->mode & MA_HALO){ + har= RE_inithalo_particle(re, obr, dm, ma, loc, loc1, sd->orco, sd->uvco, sd->size, 1.0, seed); if(har) har->lay= obr->ob->lay; } + else + static_particle_strand(re, obr, ma, sd, loc, loc1); +} +static void get_particle_uvco_mcol(short from, DerivedMesh *dm, float *fuv, int num, ParticleStrandData *sd) +{ + int i; + + /* get uvco */ + if(sd->uvco && ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { + for(i=0; itotuv; i++) { + if(num != DMCACHE_NOTFOUND) { + MFace *mface = dm->getFaceData(dm, num, CD_MFACE); + MTFace *mtface = (MTFace*)CustomData_get_layer_n(&dm->faceData, CD_MTFACE, i); + mtface += num; + + psys_interpolate_uvs(mtface, mface->v4, fuv, sd->uvco + 2 * i); + } + else { + sd->uvco[2*i] = 0.0f; + sd->uvco[2*i + 1] = 0.0f; + } + } + } + + /* get mcol */ + if(sd->mcol && ELEM(from,PART_FROM_FACE,PART_FROM_VOLUME)) { + for(i=0; itotcol; i++) { + if(num != DMCACHE_NOTFOUND) { + MFace *mface = dm->getFaceData(dm, num, CD_MFACE); + MCol *mc = (MCol*)CustomData_get_layer_n(&dm->faceData, CD_MCOL, i); + mc += num * 4; + + psys_interpolate_mcol(mc, mface->v4, fuv, sd->mcol + i); + } + else + memset(&sd->mcol[i], 0, sizeof(MCol)); + } + } } static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem *psys, int timeoffset) { Object *ob= obr->ob; - Object *tob=0, *bb_ob=re->scene->camera; + Object *tob=0; Material *ma=0; MTFace *mtface; ParticleSystemModifierData *psmd; @@ -1466,19 +1445,20 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem ParticleKey *states=0; ParticleKey state; ParticleCacheKey *cache=0; + ParticleBillboardData bb; + ParticleStrandData sd; StrandBuffer *strandbuf=0; StrandVert *svert=0; StrandBound *sbound= 0; StrandRen *strand=0; RNG *rng= 0; - MCol *mcol= 0; float loc[3],loc1[3],loc0[3],vel[3],mat[4][4],nmat[3][3],co[3],nor[3],time; - float *orco=0,*surfnor=0,*uvco=0, strandlen=0.0f, curlen=0.0f; + float strandlen=0.0f, curlen=0.0f; float hasize, pa_size, pa_time, r_tilt, cfra=bsystem_time(ob,(float)CFRA,0.0); - float adapt_angle=0.0, adapt_pix=0.0, random, simplify[2]; - int i, a, k, max_k=0, totpart, totuv=0, totcol=0, override_uv=-1, dosimplify = 0, dosurfacecache = 0; - int path_possible=0, keys_possible=0, baked_keys=0, totchild=0; - int seed, path_nbr=0, path=0, orco1=0, adapt=0, uv[3]={0,0,0}, num; + float random, simplify[2]; + int i, a, k, max_k=0, totpart, dosimplify = 0, dosurfacecache = 0; + int totchild=0; + int seed, path_nbr=0, orco1=0, num; int totface, *origindex = 0; char **uv_name=0; @@ -1505,6 +1485,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem return 1; } + /* last possibility to bail out! */ psmd= psys_get_modifier(ob,psys); if(!(psmd->modifier.mode & eModifierMode_Render)) return 0; @@ -1513,182 +1494,182 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem totchild = (int)((float)totchild * (float)part->disp / 100.0f); } - psys->flag|=PSYS_DRAWING; + psys->flag |= PSYS_DRAWING; rng= rng_new(psys->seed); - - ma= give_render_material(re, ob, part->omat); - if(part->bb_ob) - bb_ob=part->bb_ob; + totpart=psys->totpart; + + memset(&sd, 0, sizeof(ParticleStrandData)); + sd.override_uv = -1; + +/* 2.1 setup material stff */ + ma= give_render_material(re, ob, part->omat); if(ma->ipo){ calc_ipo(ma->ipo, cfra); execute_ipo((ID *)ma, ma->ipo); } - RE_set_customdata_names(obr, &psmd->dm->faceData); - totuv=CustomData_number_of_layers(&psmd->dm->faceData,CD_MTFACE); - totcol=CustomData_number_of_layers(&psmd->dm->faceData,CD_MCOL); - - if(ma->texco & TEXCO_UV && totuv) { - uvco = MEM_callocN(totuv*2*sizeof(float),"particle_uvs"); - - if(ma->strand_uvname[0]) { - override_uv= CustomData_get_named_layer_index(&psmd->dm->faceData,CD_MTFACE,ma->strand_uvname); - override_uv-= CustomData_get_layer_index(&psmd->dm->faceData,CD_MTFACE); - } - } - - if(totcol) - mcol = MEM_callocN(totcol*sizeof(MCol),"particle_mcols"); - - if(part->draw_as==PART_DRAW_BB){ - int first_uv=CustomData_get_layer_index(&psmd->dm->faceData,CD_MTFACE); - - uv[0]=CustomData_get_named_layer_index(&psmd->dm->faceData,CD_MTFACE,psys->bb_uvname[0]); - if(uv[0]<0) - uv[0]=CustomData_get_active_layer_index(&psmd->dm->faceData,CD_MTFACE); - - uv[1]=CustomData_get_named_layer_index(&psmd->dm->faceData,CD_MTFACE,psys->bb_uvname[1]); - //if(uv[1]<0) - // uv[1]=CustomData_get_active_layer_index(&psmd->dm->faceData,CD_MTFACE); - - uv[2]=CustomData_get_named_layer_index(&psmd->dm->faceData,CD_MTFACE,psys->bb_uvname[2]); - //if(uv[2]<0) - // uv[2]=CustomData_get_active_layer_index(&psmd->dm->faceData,CD_MTFACE); - - if(first_uv>=0){ - uv[0]-=first_uv; - uv[1]-=first_uv; - uv[2]-=first_uv; - } - } - - if(part->flag&PART_ABS_TIME && part->ipo){ - calc_ipo(part->ipo, cfra); - execute_ipo((ID *)part, part->ipo); - } - - if(part->flag&PART_GLOB_TIME) - cfra=bsystem_time(0,(float)CFRA,0.0); - - if(part->type==PART_REACTOR){ - psys_get_reactor_target(ob, psys, &tob, &tpsys); - if(tpsys && (part->from==PART_FROM_PARTICLE || part->phystype==PART_PHYS_NO)){ - psmd=psys_get_modifier(tob,tpsys); - tpart=tpsys->part; - } - } - hasize = ma->hasize; seed = ma->seed1; re->flag |= R_HALO; + + RE_set_customdata_names(obr, &psmd->dm->faceData); + sd.totuv = CustomData_number_of_layers(&psmd->dm->faceData, CD_MTFACE); + sd.totcol = CustomData_number_of_layers(&psmd->dm->faceData, CD_MCOL); + + if(ma->texco & TEXCO_UV && sd.totuv) { + sd.uvco = MEM_callocN(sd.totuv * 2 * sizeof(float), "particle_uvs"); + + if(ma->strand_uvname[0]) { + sd.override_uv = CustomData_get_named_layer_index(&psmd->dm->faceData, CD_MTFACE, ma->strand_uvname); + sd.override_uv -= CustomData_get_layer_index(&psmd->dm->faceData, CD_MTFACE); + } + } + else + sd.uvco = NULL; + + if(sd.totcol) + sd.mcol = MEM_callocN(sd.totcol * sizeof(MCol), "particle_mcols"); + +/* 2.2 setup billboards */ + if(part->draw_as == PART_DRAW_BB) { + int first_uv = CustomData_get_layer_index(&psmd->dm->faceData, CD_MTFACE); + + bb.uv[0] = CustomData_get_named_layer_index(&psmd->dm->faceData, CD_MTFACE, psys->bb_uvname[0]); + if(bb.uv[0] < 0) + bb.uv[0] = CustomData_get_active_layer_index(&psmd->dm->faceData, CD_MTFACE); + + bb.uv[1] = CustomData_get_named_layer_index(&psmd->dm->faceData, CD_MTFACE, psys->bb_uvname[1]); + + bb.uv[2] = CustomData_get_named_layer_index(&psmd->dm->faceData, CD_MTFACE, psys->bb_uvname[2]); + + if(first_uv >= 0) { + bb.uv[0] -= first_uv; + bb.uv[1] -= first_uv; + bb.uv[2] -= first_uv; + } + + bb.align = part->bb_align; + bb.anim = part->bb_anim; + bb.lock = part->draw & PART_DRAW_BB_LOCK; + bb.ob = (part->bb_ob ? part->bb_ob : re->scene->camera); + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; + bb.split_offset = part->bb_split_offset; + bb.totnum = totpart+totchild; + bb.uv_split = part->bb_uv_split; + } + +/* 2.3 setup time */ + if(part->flag&PART_ABS_TIME && part->ipo) { + calc_ipo(part->ipo, cfra); + execute_ipo((ID *)part, part->ipo); + } + + if(part->flag & PART_GLOB_TIME) + cfra = bsystem_time(0, (float)CFRA, 0.0); + +/* 2.4 setup reactors */ + if(part->type == PART_REACTOR){ + psys_get_reactor_target(ob, psys, &tob, &tpsys); + if(tpsys && (part->from==PART_FROM_PARTICLE || part->phystype==PART_PHYS_NO)){ + psmd = psys_get_modifier(tob,tpsys); + tpart = tpsys->part; + } + } +/* 2.5 setup matrices */ MTC_Mat4MulMat4(mat, ob->obmat, re->viewmat); MTC_Mat4Invert(ob->imat, mat); /* need to be that way, for imat texture */ Mat3CpyMat4(nmat, ob->imat); Mat3Transp(nmat); - totpart=psys->totpart; +/* 2.6 setup strand rendering */ + if(part->draw_as == PART_DRAW_PATH && psys->pathcache){ + path_nbr=(int)pow(2.0,(double) part->ren_step); - if(psys->pathcache){ - path_possible=1; - keys_possible=1; - } - if(part->draw_as==PART_DRAW_PATH){ - if(path_possible){ - path_nbr=(int)pow(2.0,(double) part->ren_step); - //if(part->phystype==PART_PHYS_KEYED && (psys->flag&PSYS_BAKED)==0) - // path_nbr*=psys->totkeyed; - - if(path_nbr) { - if((ma->mode & (MA_HALO|MA_WIRE))==0) { - orco= MEM_mallocN(3*sizeof(float)*(totpart+totchild), "particle orcos"); - set_object_orco(re, psys, orco); - } - path=1; - } - - if(part->draw&PART_DRAW_REN_ADAPT) { - adapt=1; - adapt_pix=(float)part->adapt_pix; - adapt_angle=cos((float)part->adapt_angle*(float)(M_PI/180.0)); - } - - if(re->r.renderer==R_INTERN && part->draw&PART_DRAW_REN_STRAND) { - strandbuf= RE_addStrandBuffer(obr, (totpart+totchild)*(path_nbr+1)); - strandbuf->ma= ma; - strandbuf->lay= ob->lay; - Mat4CpyMat4(strandbuf->winmat, re->winmat); - strandbuf->winx= re->winx; - strandbuf->winy= re->winy; - strandbuf->maxdepth= 2; - strandbuf->adaptcos= cos((float)part->adapt_angle*(float)(M_PI/180.0)); - strandbuf->overrideuv= override_uv; - strandbuf->minwidth= ma->strand_min; - - if(ma->strand_widthfade == 0.0f) - strandbuf->widthfade= 0.0f; - else if(ma->strand_widthfade >= 1.0f) - strandbuf->widthfade= 2.0f - ma->strand_widthfade; - else - strandbuf->widthfade= 1.0f/MAX2(ma->strand_widthfade, 1e-5f); - - if(part->flag & PART_HAIR_BSPLINE) - strandbuf->flag |= R_STRAND_BSPLINE; - if(ma->mode & MA_STR_B_UNITS) - strandbuf->flag |= R_STRAND_B_UNITS; - - svert= strandbuf->vert; - - if(re->r.mode & R_SPEED) - dosurfacecache= 1; - else if((re->wrld.mode & WO_AMB_OCC) && (re->wrld.ao_gather_method == WO_AOGATHER_APPROX)) - if(ma->amb != 0.0f) - dosurfacecache= 1; - - totface= psmd->dm->getNumFaces(psmd->dm); - origindex= psmd->dm->getFaceDataArray(psmd->dm, CD_ORIGINDEX); - if(origindex) { - for(a=0; atotbound= MAX2(strandbuf->totbound, origindex[a]); - strandbuf->totbound++; - } - strandbuf->totbound++; - strandbuf->bound= MEM_callocN(sizeof(StrandBound)*strandbuf->totbound, "StrandBound"); - sbound= strandbuf->bound; - sbound->start= sbound->end= 0; + if(path_nbr) { + if((ma->mode & (MA_HALO|MA_WIRE))==0) { + sd.orco = MEM_mallocN(3*sizeof(float)*(totpart+totchild), "particle orcos"); + set_object_orco(re, psys, sd.orco); } } - } - else if(keys_possible && part->draw&PART_DRAW_KEYS){ - path_nbr=part->keys_step; - if(path_nbr==0) - baked_keys=1; + + if(part->draw & PART_DRAW_REN_ADAPT) { + sd.adapt = 1; + sd.adapt_pix = (float)part->adapt_pix; + sd.adapt_angle = cos((float)part->adapt_angle * (float)(M_PI / 180.0)); + } + + if(re->r.renderer==R_INTERN && part->draw&PART_DRAW_REN_STRAND) { + strandbuf= RE_addStrandBuffer(obr, (totpart+totchild)*(path_nbr+1)); + strandbuf->ma= ma; + strandbuf->lay= ob->lay; + Mat4CpyMat4(strandbuf->winmat, re->winmat); + strandbuf->winx= re->winx; + strandbuf->winy= re->winy; + strandbuf->maxdepth= 2; + strandbuf->adaptcos= cos((float)part->adapt_angle*(float)(M_PI/180.0)); + strandbuf->overrideuv= sd.override_uv; + strandbuf->minwidth= ma->strand_min; + + if(ma->strand_widthfade == 0.0f) + strandbuf->widthfade= 0.0f; + else if(ma->strand_widthfade >= 1.0f) + strandbuf->widthfade= 2.0f - ma->strand_widthfade; + else + strandbuf->widthfade= 1.0f/MAX2(ma->strand_widthfade, 1e-5f); + + if(part->flag & PART_HAIR_BSPLINE) + strandbuf->flag |= R_STRAND_BSPLINE; + if(ma->mode & MA_STR_B_UNITS) + strandbuf->flag |= R_STRAND_B_UNITS; + + svert= strandbuf->vert; + + if(re->r.mode & R_SPEED) + dosurfacecache= 1; + else if((re->wrld.mode & WO_AMB_OCC) && (re->wrld.ao_gather_method == WO_AOGATHER_APPROX)) + if(ma->amb != 0.0f) + dosurfacecache= 1; + + totface= psmd->dm->getNumFaces(psmd->dm); + origindex= psmd->dm->getFaceDataArray(psmd->dm, CD_ORIGINDEX); + if(origindex) { + for(a=0; atotbound= MAX2(strandbuf->totbound, origindex[a]); + strandbuf->totbound++; + } + strandbuf->totbound++; + strandbuf->bound= MEM_callocN(sizeof(StrandBound)*strandbuf->totbound, "StrandBound"); + sbound= strandbuf->bound; + sbound->start= sbound->end= 0; + } } - if(orco==0){ - orco=MEM_mallocN(3*sizeof(float),"particle orco"); - orco1=1; + if(sd.orco == 0) { + sd.orco = MEM_mallocN(3 * sizeof(float), "particle orco"); + orco1 = 1; } - if(path_nbr==0) - psys->lattice=psys_get_lattice(ob,psys); + if(path_nbr == 0) + psys->lattice = psys_get_lattice(ob, psys); /* 3. start creating renderable things */ for(a=0,pa=pars; aflag & PARS_UNEXIST) continue; pa_time=(cfra-pa->time)/pa->lifetime; - if((part->flag&PART_ABS_TIME)==0){ - if(ma->ipo){ + if((part->flag&PART_ABS_TIME) == 0) { + if(ma->ipo) { /* correction for lifetime */ - calc_ipo(ma->ipo, 100.0f*pa_time); + calc_ipo(ma->ipo, 100.0f * pa_time); execute_ipo((ID *)ma, ma->ipo); } if(part->ipo){ @@ -1703,51 +1684,25 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem /* get orco */ if(tpsys && (part->from==PART_FROM_PARTICLE || part->phystype==PART_PHYS_NO)){ tpa=tpsys->particles+pa->num; - psys_particle_on_emitter(psmd,tpart->from,tpa->num,pa->num_dmcache,tpa->fuv,tpa->foffset,co,nor,0,0,orco,0); + psys_particle_on_emitter(psmd,tpart->from,tpa->num,pa->num_dmcache,tpa->fuv,tpa->foffset,co,nor,0,0,sd.orco,0); } else - psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,co,nor,0,0,orco,0); + psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,co,nor,0,0,sd.orco,0); + /* get uvco & mcol */ num= pa->num_dmcache; if(num == DMCACHE_NOTFOUND) if(pa->num < psmd->dm->getNumFaces(psmd->dm)) num= pa->num; - if(uvco && ELEM(part->from,PART_FROM_FACE,PART_FROM_VOLUME)){ - for(i=0; idm->getFaceData(psmd->dm,num,CD_MFACE); - mtface=(MTFace*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MTFACE,i); - mtface+=num; - - psys_interpolate_uvs(mtface,mface->v4,pa->fuv,uvco+2*i); - } - else { - uvco[2*i]= 0.0f; - uvco[2*i + 1]= 0.0f; - } - } - } - if(mcol && ELEM(part->from,PART_FROM_FACE,PART_FROM_VOLUME)){ - for(i=0; idm->getFaceData(psmd->dm,num,CD_MFACE); - MCol *mc=(MCol*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MCOL,i); - mc+=num*4; + get_particle_uvco_mcol(part->from, psmd->dm, pa->fuv, num, &sd); - psys_interpolate_mcol(mc,mface->v4,pa->fuv,mcol+i); - } - else - memset(&mcol[i], 0, sizeof(MCol)); - } - } + pa_size = pa->size; - pa_size=pa->size; + r_tilt = 1.0f + pa->r_ave[0]; - r_tilt=1.0f+pa->r_ave[0]; - - if(path_nbr){ + if(path_nbr) { cache = psys->pathcache[a]; max_k = (int)cache->steps; } @@ -1756,122 +1711,66 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem } else { ChildParticle *cpa= psys->child+a-totpart; - - pa_time=psys_get_child_time(psys, cpa, cfra); - if((part->flag&PART_ABS_TIME)==0){ - if(ma->ipo){ + if(path_nbr) { + cache = psys->childcache[a-totpart]; + + if(cache->steps < 0) + continue; + + max_k = (int)cache->steps; + } + + pa_time = psys_get_child_time(psys, cpa, cfra); + + if((part->flag & PART_ABS_TIME) == 0) { + if(ma->ipo) { /* correction for lifetime */ - calc_ipo(ma->ipo, 100.0f*pa_time); + calc_ipo(ma->ipo, 100.0f * pa_time); execute_ipo((ID *)ma, ma->ipo); } - if(part->ipo){ + if(part->ipo) { /* correction for lifetime */ - calc_ipo(part->ipo, 100.0f*pa_time); + calc_ipo(part->ipo, 100.0f * pa_time); execute_ipo((ID *)part, part->ipo); } } - pa_size=psys_get_child_size(psys, cpa, cfra, &pa_time); + pa_size = psys_get_child_size(psys, cpa, cfra, &pa_time); - r_tilt=2.0f*cpa->rand[2]; + r_tilt = 2.0f * cpa->rand[2]; - num= cpa->num; + num = cpa->num; /* get orco */ if(part->childtype == PART_CHILD_FACES) { psys_particle_on_emitter(psmd, PART_FROM_FACE, cpa->num,DMCACHE_ISCHILD, - cpa->fuv,cpa->foffset,co,nor,0,0,orco,0); + cpa->fuv,cpa->foffset,co,nor,0,0,sd.orco,0); } else { ParticleData *par = psys->particles + cpa->parent; psys_particle_on_emitter(psmd, part->from, par->num,DMCACHE_ISCHILD,par->fuv, - par->foffset,co,nor,0,0,orco,0); + par->foffset,co,nor,0,0,sd.orco,0); } - if(uvco){ - if(part->from!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES){ - for(i=0; ichildtype==PART_CHILD_FACES){ - MFace *mface=psmd->dm->getFaceData(psmd->dm,cpa->num,CD_MFACE); + /* get uvco & mcol */ + if(part->from!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES) { + get_particle_uvco_mcol(PART_FROM_FACE, psmd->dm, cpa->fuv, cpa->num, &sd); + } + else { + ParticleData *parent = psys->particles + cpa->parent; + num = parent->num_dmcache; - mtface=(MTFace*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MTFACE,i); - mtface+=cpa->num; - - psys_interpolate_uvs(mtface,mface->v4,cpa->fuv,uvco+2*i); - } - else{ - uvco[2*i]=uvco[2*i+1]=0.0f; - } - } - } - else if(ELEM(part->from,PART_FROM_FACE,PART_FROM_VOLUME)){ - ParticleData *parent = psys->particles + cpa->parent; - num= parent->num_dmcache; + if(num == DMCACHE_NOTFOUND) + if(parent->num < psmd->dm->getNumFaces(psmd->dm)) + num = parent->num; - if(num == DMCACHE_NOTFOUND) - if(parent->num < psmd->dm->getNumFaces(psmd->dm)) - num= parent->num; - - for(i=0; idm->getFaceData(psmd->dm,num,CD_MFACE); - mtface=(MTFace*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MTFACE,i); - mtface+=num; - psys_interpolate_uvs(mtface,mface->v4,parent->fuv,uvco+2*i); - } - else { - uvco[2*i]= 0.0f; - uvco[2*i + 1]= 0.0f; - } - } - } + get_particle_uvco_mcol(part->from, psmd->dm, pa->fuv, num, &sd); } - if(mcol){ - if(part->from!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES){ - for(i=0; ichildtype==PART_CHILD_FACES){ - MFace *mface=psmd->dm->getFaceData(psmd->dm,cpa->num,CD_MFACE); - MCol *mc=(MCol*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MCOL,i); - mc+=cpa->num*4; - - psys_interpolate_mcol(mc,mface->v4,cpa->fuv,mcol+i); - } - else - memset(&mcol[i], 0, sizeof(MCol)); - } - } - else if(ELEM(part->from,PART_FROM_FACE,PART_FROM_VOLUME)){ - ParticleData *parent = psys->particles + cpa->parent; - num= parent->num_dmcache; - - if(num == DMCACHE_NOTFOUND) - if(parent->num < psmd->dm->getNumFaces(psmd->dm)) - num= parent->num; - - for(i=0; idm->getFaceData(psmd->dm,num,CD_MFACE); - MCol *mc=(MCol*)CustomData_get_layer_n(&psmd->dm->faceData,CD_MCOL,i); - mc+=num*4; - - psys_interpolate_mcol(mc,mface->v4,parent->fuv,mcol+i); - } - else - memset(&mcol[i], 0, sizeof(MCol)); - } - } - } - - dosimplify= psys_render_simplify_params(psys, cpa, simplify); - - if(path_nbr && psys->childcache) { - cache = psys->childcache[a-totpart]; - max_k = (int)cache->steps; - } + dosimplify = psys_render_simplify_params(psys, cpa, simplify); if(strandbuf) { if(origindex[cpa->num]+1 > sbound - strandbuf->bound) { @@ -1884,17 +1783,17 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem /* surface normal shading setup */ if(ma->mode_l & MA_STR_SURFDIFF) { Mat3MulVecfl(nmat, nor); - surfnor= nor; + sd.surfnor= nor; } else - surfnor= NULL; + sd.surfnor= NULL; /* strand render setup */ if(strandbuf) { strand= RE_findOrAddStrand(obr, obr->totstrand++); strand->buffer= strandbuf; strand->vert= svert; - VECCOPY(strand->orco, orco); + VECCOPY(strand->orco, sd.orco); if(dosimplify) { float *ssimplify= RE_strandren_get_simplify(obr, strand, 1); @@ -1902,9 +1801,9 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem ssimplify[1]= simplify[1]; } - if(surfnor) { + if(sd.surfnor) { float *snor= RE_strandren_get_surfnor(obr, strand, 1); - VECCOPY(snor, surfnor); + VECCOPY(snor, sd.surfnor); } if(dosurfacecache && num >= 0) { @@ -1912,20 +1811,20 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem *facenum= num; } - if(uvco) { - for(i=0; ico, (cache+k)->co); } - for(k=0; k<=path_nbr; k++){ - if(path_nbr){ + if(path_nbr) { + /* render strands */ + for(k=0; k<=path_nbr; k++){ if(k<=max_k){ - //bti->convert_bake_key(bsys,cache+k,0,(void*)&state); - //copy_particle_key(&state,cache+k,0); VECCOPY(state.co,(cache+k)->co); VECCOPY(state.vel,(cache+k)->vel); } @@ -1955,65 +1853,95 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if(k > 0) curlen += VecLenf((cache+k-1)->co, (cache+k)->co); time= curlen/strandlen; + + VECCOPY(loc,state.co); + MTC_Mat4MulVecfl(re->viewmat,loc); + + if(strandbuf) { + VECCOPY(svert->co, loc); + svert->strandco= -1.0f + 2.0f*time; + svert++; + strand->totvert++; + } + else{ + sd.first = 0; + sd.time = time; + sd.size = hasize; + + if(k==1){ + sd.first = 1; + sd.time = 0.0f; + VECSUB(loc0,loc1,loc); + VECADD(loc0,loc1,loc0); + } + + if(k) + render_new_particle(re, obr, psmd->dm, ma, &sd, loc, loc1, seed); + + VECCOPY(loc1,loc); + } } - else{ - time=0.0f; - state.time=cfra; - if(psys_get_particle_state(ob,psys,a,&state,0)==0) - continue; - } + + } + else { + /* render normal particles */ + time=0.0f; + state.time=cfra; + if(psys_get_particle_state(ob,psys,a,&state,0)==0) + continue; VECCOPY(loc,state.co); if(part->draw_as!=PART_DRAW_BB) MTC_Mat4MulVecfl(re->viewmat,loc); - if(part->draw_as==PART_DRAW_LINE) { - VECCOPY(vel,state.vel); - //VECADD(vel,vel,state.co); - MTC_Mat4Mul3Vecfl(re->viewmat,vel); - //VECSUB(vel,vel,loc); - Normalize(vel); - if(part->draw & PART_DRAW_VEL_LENGTH) - VecMulf(vel,VecLength(state.vel)); - VECADDFAC(loc0,loc,vel,-part->draw_line[0]); - VECADDFAC(loc1,loc,vel,part->draw_line[1]); + switch(part->draw_as) { + case PART_DRAW_LINE: + sd.line = 1; + sd.time = 0.0f; + sd.size = hasize; - render_new_particle(re,obr,psmd->dm,ma,1,0,1,0.0f,loc0,loc1, - orco,surfnor,totuv,uvco,totcol,mcol,hasize,seed,override_uv,0,0,0); - } - else if(part->draw_as==PART_DRAW_BB) { - VECCOPY(vel,state.vel); - //MTC_Mat4Mul3Vecfl(re->viewmat,vel); - particle_billboard(re,obr,ma,bb_ob,loc,vel,pa_size,part->bb_tilt*(1.0f-part->bb_rand_tilt*r_tilt), - part->bb_align,part->draw&PART_DRAW_BB_LOCK, - a,totpart+totchild,part->bb_uv_split,part->bb_anim,part->bb_split_offset,random,pa_time,part->bb_offset,uv); - } - else if(strandbuf) { if(svert) { - VECCOPY(svert->co, loc); - svert->strandco= -1.0f + 2.0f*time; - svert++; - strand->totvert++; - } } - else{ - if(k==1){ - VECSUB(loc0,loc1,loc); - VECADD(loc0,loc1,loc0); - render_new_particle(re,obr,psmd->dm,ma,path,1,0,0.0f,loc1,loc0, - orco,surfnor,totuv,uvco,totcol,mcol,hasize,seed,override_uv, - adapt,adapt_angle,adapt_pix); + VECCOPY(vel,state.vel); + MTC_Mat4Mul3Vecfl(re->viewmat,vel); + Normalize(vel); + + if(part->draw & PART_DRAW_VEL_LENGTH) + VecMulf(vel,VecLength(state.vel)); + + VECADDFAC(loc0,loc,vel,-part->draw_line[0]); + VECADDFAC(loc1,loc,vel,part->draw_line[1]); + + render_new_particle(re,obr,psmd->dm,ma,&sd,loc0,loc1,seed); + + break; + + case PART_DRAW_BB: + bb.random = random; + bb.size = pa_size; + bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); + bb.time = pa_time; + bb.num = a; + VECCOPY(bb.vec, loc); + VECCOPY(bb.vel, state.vel); + + particle_billboard(re, obr, ma, &bb); + + break; + + default: + { + HaloRen *har=0; + + har = RE_inithalo_particle(re, obr, psmd->dm, ma, loc, NULL, sd.orco, sd.uvco, hasize, 0.0, seed); + + if(har) har->lay= obr->ob->lay; + + break; } - - if(path_nbr==0 || k) - render_new_particle(re,obr,psmd->dm,ma,path,0,0,time,loc,loc1, - orco,surfnor,totuv,uvco,totcol,mcol,hasize,seed,override_uv, - adapt,adapt_angle,adapt_pix); - - VECCOPY(loc1,loc); } } if(orco1==0) - orco+=3; + sd.orco+=3; if(re->test_break()) break; @@ -2026,13 +1954,13 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem if(ma) do_mat_ipo(ma); if(orco1) - MEM_freeN(orco); + MEM_freeN(sd.orco); - if(uvco) - MEM_freeN(uvco); + if(sd.uvco) + MEM_freeN(sd.uvco); - if(mcol) - MEM_freeN(mcol); + if(sd.mcol) + MEM_freeN(sd.mcol); if(uv_name) MEM_freeN(uv_name); @@ -2049,7 +1977,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem psys->lattice=0; } - if(path && (ma->mode_l & MA_TANGENT_STR)==0) + if(path_nbr && (ma->mode_l & MA_TANGENT_STR)==0) calc_vertexnormals(re, obr, 0, 0); return 1; diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index 2063ac42bb1..c9fffa407ee 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -2910,6 +2910,7 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) ParticleData *pars, *pa; ParticleKey state, *states=0; ParticleCacheKey *cache=0; + ParticleBillboardData bb; Material *ma; Object *bb_ob=0; float vel[3], vec[3], vec2[3], imat[4][4], onevec[3]={0.0f,0.0f,0.0f}, bb_center[3]; @@ -2917,8 +2918,7 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) float cfra=bsystem_time(ob,(float)CFRA,0.0); float *vdata=0, *vedata=0, *cdata=0, *ndata=0, *vd=0, *ved=0, *cd=0, *nd=0, xvec[3], yvec[3], zvec[3]; float ma_r=0.0f, ma_g=0.0f, ma_b=0.0f; - int a, k, k_max=0, totpart, totpoint=0, draw_as, path_nbr=0; - int path_possible=0, keys_possible=0, draw_keys=0, totchild=0; + int a, k, k_max=0, totpart, totpoint=0, draw_as, totchild=0; int select=ob->flag&SELECT, create_cdata=0; GLint polygonmode[2]; char val[32]; @@ -3004,18 +3004,9 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) if(part->flag&PART_GLOB_TIME) cfra=bsystem_time(0,(float)CFRA,0.0); - if(psys->pathcache){ - path_possible=1; - keys_possible=1; - } - if(draw_as==PART_DRAW_PATH && path_possible==0) + if(draw_as==PART_DRAW_PATH && psys->pathcache==NULL) draw_as=PART_DRAW_DOT; - if(draw_as!=PART_DRAW_PATH && keys_possible && part->draw&PART_DRAW_KEYS){ - path_nbr=part->keys_step; - draw_keys=1; - } - /* 3. */ switch(draw_as){ case PART_DRAW_DOT: @@ -3064,12 +3055,15 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) glPointSize(2.0); /* default dot size */ } else if(part->bb_ob) - bb_ob=part->bb_ob; + bb.ob=part->bb_ob; else - bb_ob=G.vd->camera; + bb.ob=G.vd->camera; - if(part->bb_alignbb_align]=1.0f; + bb.align = part->bb_align; + bb.anim = part->bb_anim; + bb.lock = part->draw & PART_DRAW_BB_LOCK; + bb.offset[0] = part->bb_offset[0]; + bb.offset[1] = part->bb_offset[1]; break; case PART_DRAW_PATH: break; @@ -3081,35 +3075,37 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) } /* 4. */ - if(draw_as && draw_as!=PART_DRAW_PATH){ - if(draw_as!=PART_DRAW_CIRC){ - switch(draw_as){ + if(draw_as && draw_as!=PART_DRAW_PATH) { + int tot_vec_size = (totpart + totchild) * 3 * sizeof(float); + + if(draw_as!=PART_DRAW_CIRC) { + switch(draw_as) { case PART_DRAW_AXIS: case PART_DRAW_CROSS: - if(draw_as!=PART_DRAW_CROSS || create_cdata) - cdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*6*3*sizeof(float), "particle_cdata"); - vdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*6*3*sizeof(float), "particle_vdata"); + if(draw_as != PART_DRAW_CROSS || create_cdata) + cdata = MEM_callocN(tot_vec_size * 6, "particle_cdata"); + vdata = MEM_callocN(tot_vec_size * 6, "particle_vdata"); break; case PART_DRAW_LINE: if(create_cdata) - cdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*2*3*sizeof(float), "particle_cdata"); - vdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*2*3*sizeof(float), "particle_vdata"); + cdata = MEM_callocN(tot_vec_size * 2, "particle_cdata"); + vdata = MEM_callocN(tot_vec_size * 2, "particle_vdata"); break; case PART_DRAW_BB: if(create_cdata) - cdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*4*3*sizeof(float), "particle_cdata"); - vdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*4*3*sizeof(float), "particle_vdata"); - ndata=MEM_callocN((totpart+totchild)*(path_nbr+1)*4*3*sizeof(float), "particle_vdata"); + cdata = MEM_callocN(tot_vec_size * 4, "particle_cdata"); + vdata = MEM_callocN(tot_vec_size * 4, "particle_vdata"); + ndata = MEM_callocN(tot_vec_size * 4, "particle_vdata"); break; default: if(create_cdata) - cdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*3*sizeof(float), "particle_cdata"); - vdata=MEM_callocN((totpart+totchild)*(path_nbr+1)*3*sizeof(float), "particle_vdata"); + cdata=MEM_callocN(tot_vec_size, "particle_cdata"); + vdata=MEM_callocN(tot_vec_size, "particle_vdata"); } } - if(part->draw&PART_DRAW_VEL && draw_as!=PART_DRAW_LINE) - vedata=MEM_callocN((totpart+totchild)*2*3*(path_nbr+1)*sizeof(float), "particle_vedata"); + if(part->draw & PART_DRAW_VEL && draw_as != PART_DRAW_LINE) + vedata = MEM_callocN(tot_vec_size * 2, "particle_vedata"); vd=vdata; ved=vedata; @@ -3122,6 +3118,7 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) if(draw_as){ /* 5. */ for(a=0,pa=pars; adraw&PART_DRAW_PARENT)==0) continue; if(pa->flag & PARS_NO_DISP || pa->flag & PARS_UNEXIST) continue; @@ -3159,11 +3156,6 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) } r_tilt=1.0f+pa->r_ave[0]; - - if(path_nbr){ - cache=psys->pathcache[a]; - k_max=(int)(cache->steps); - } } else{ ChildParticle *cpa= &psys->child[a-totpart]; @@ -3191,47 +3183,23 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) pa_size=psys_get_child_size(psys,cpa,cfra,0); r_tilt=2.0f*cpa->rand[2]; - if(path_nbr){ - cache=psys->childcache[a-totpart]; - k_max=(int)(cache->steps); - } } if(draw_as!=PART_DRAW_PATH){ - int next_pa=0; - for(k=0; k<=path_nbr; k++){ - if(draw_keys){ - state.time=(float)k/(float)path_nbr; - psys_get_particle_on_path(ob,psys,a,&state,1); - } - else if(path_nbr){ - if(k<=k_max){ - VECCOPY(state.co,(cache+k)->co); - VECCOPY(state.vel,(cache+k)->vel); - QUATCOPY(state.rot,(cache+k)->rot); - } - else - continue; - } - else{ - state.time=cfra; - if(psys_get_particle_state(ob,psys,a,&state,0)==0){ - next_pa=1; - break; - } - } - + state.time=cfra; + if(psys_get_particle_state(ob,psys,a,&state,0)){ + /* create actiual particle data */ switch(draw_as){ case PART_DRAW_DOT: + if(vd){ + VECCOPY(vd,state.co) vd+=3; + } if(cd) { cd[0]=ma_r; cd[1]=ma_g; cd[2]=ma_b; cd+=3; } - if(vd){ - VECCOPY(vd,state.co) vd+=3; - } break; case PART_DRAW_CROSS: case PART_DRAW_AXIS: @@ -3314,59 +3282,15 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) cd[2]=cd[5]=cd[8]=cd[11]=ma_b; cd+=12; } - if(part->draw&PART_DRAW_BB_LOCK && part->bb_align==PART_BB_VIEW){ - VECCOPY(xvec,bb_ob->obmat[0]); - Normalize(xvec); - VECCOPY(yvec,bb_ob->obmat[1]); - Normalize(yvec); - VECCOPY(zvec,bb_ob->obmat[2]); - Normalize(zvec); - } - else if(part->bb_align==PART_BB_VEL){ - float temp[3]; - VECCOPY(temp,state.vel); - Normalize(temp); - VECSUB(zvec,bb_ob->obmat[3],state.co); - if(part->draw&PART_DRAW_BB_LOCK){ - float fac=-Inpf(zvec,temp); - VECADDFAC(zvec,zvec,temp,fac); - } - Normalize(zvec); - Crossf(xvec,temp,zvec); - Normalize(xvec); - Crossf(yvec,zvec,xvec); - } - else{ - VECSUB(zvec,bb_ob->obmat[3],state.co); - if(part->draw&PART_DRAW_BB_LOCK) - zvec[part->bb_align]=0.0f; - Normalize(zvec); - if(part->bb_alignobmat[1],zvec); - Normalize(xvec); - Crossf(yvec,zvec,xvec); - } - - VECCOPY(vec,xvec); - VECCOPY(vec2,yvec); - - VecMulf(xvec,cos(part->bb_tilt*(1.0f-part->bb_rand_tilt*r_tilt)*(float)M_PI)); - VecMulf(vec2,sin(part->bb_tilt*(1.0f-part->bb_rand_tilt*r_tilt)*(float)M_PI)); - VECADD(xvec,xvec,vec2); - - VecMulf(yvec,cos(part->bb_tilt*(1.0f-part->bb_rand_tilt*r_tilt)*(float)M_PI)); - VecMulf(vec,-sin(part->bb_tilt*(1.0f-part->bb_rand_tilt*r_tilt)*(float)M_PI)); - VECADD(yvec,yvec,vec); - - VecMulf(xvec,pa_size); - VecMulf(yvec,pa_size); - - VECADDFAC(bb_center,state.co,xvec,part->bb_offset[0]); - VECADDFAC(bb_center,bb_center,yvec,part->bb_offset[1]); + bb.size = pa_size; + bb.tilt = part->bb_tilt * (1.0f - part->bb_rand_tilt * r_tilt); + bb.time = pa_time; + VECCOPY(bb.vec, state.co); + VECCOPY(bb.vel, state.vel); + psys_make_billboard(&bb, xvec, yvec, zvec, bb_center); + VECADD(vd,bb_center,xvec); VECADD(vd,vd,yvec); vd+=3; @@ -3386,6 +3310,10 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) break; } + totpoint++; + + /* additional things to draw for each particle */ + /* (velocity, size and number) */ if(vedata){ VECCOPY(ved,state.co); ved+=3; @@ -3401,15 +3329,12 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) setlinestyle(0); } - totpoint++; - } - if(next_pa) - continue; - if(part->draw&PART_DRAW_NUM && !(G.f & G_RENDER_SHADOW)){ - /* in path drawing state.co is the end point */ - glRasterPos3f(state.co[0], state.co[1], state.co[2]); - sprintf(val," %i",a); - BMF_DrawString(G.font, val); + if(part->draw&PART_DRAW_NUM && !(G.f & G_RENDER_SHADOW)){ + /* in path drawing state.co is the end point */ + glRasterPos3f(state.co[0], state.co[1], state.co[2]); + sprintf(val," %i",a); + BMF_DrawString(G.font, val); + } } } } @@ -3418,123 +3343,128 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys, int dt) glGetIntegerv(GL_POLYGON_MODE, polygonmode); glDisableClientState(GL_NORMAL_ARRAY); - if(draw_as != PART_DRAW_CIRC){ - if(draw_as==PART_DRAW_PATH){ - ParticleCacheKey **cache, *path; - float *cd2=0,*cdata2=0; + if(draw_as==PART_DRAW_PATH){ + ParticleCacheKey **cache, *path; + float *cd2=0,*cdata2=0; - glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); - if(dt > OB_WIRE) { - glEnableClientState(GL_NORMAL_ARRAY); + /* setup gl flags */ + if(dt > OB_WIRE) { + glEnableClientState(GL_NORMAL_ARRAY); - if(part->draw&PART_DRAW_MAT_COL) - glEnableClientState(GL_COLOR_ARRAY); - - glEnable(GL_LIGHTING); - glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); - } - else { - glDisableClientState(GL_NORMAL_ARRAY); - - glDisable(GL_COLOR_MATERIAL); - glDisable(GL_LIGHTING); - BIF_ThemeColor(TH_WIRE); - } - - if(totchild && (part->draw&PART_DRAW_PARENT)==0) - totpart=0; - - cache=psys->pathcache; - for(a=0, pa=psys->particles; aco); - - if(dt > OB_WIRE) { - glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel); - if(part->draw&PART_DRAW_MAT_COL) - glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col); - } - - glDrawArrays(GL_LINE_STRIP, 0, path->steps + 1); - } - - cache=psys->childcache; - for(a=0; aco); - - if(dt > OB_WIRE) { - glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel); - if(part->draw&PART_DRAW_MAT_COL) - glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col); - } - - glDrawArrays(GL_LINE_STRIP, 0, path->steps + 1); - } - - if(dt > OB_WIRE) { - if(part->draw&PART_DRAW_MAT_COL) - glDisable(GL_COLOR_ARRAY); - glDisable(GL_COLOR_MATERIAL); - } - - if(cdata2) - MEM_freeN(cdata2); - cd2=cdata2=0; - - glLineWidth(1.0f); - - /* draw particle edit mode key points*/ - } - - if(draw_as!=PART_DRAW_PATH){ - glDisableClientState(GL_COLOR_ARRAY); - - if(vdata){ - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, 0, vdata); - } - else - glDisableClientState(GL_VERTEX_ARRAY); - - if(ndata && dt>OB_WIRE){ - glEnableClientState(GL_NORMAL_ARRAY); - glNormalPointer(GL_FLOAT, 0, ndata); - glEnable(GL_LIGHTING); - } - else{ - glDisableClientState(GL_NORMAL_ARRAY); - glDisable(GL_LIGHTING); - } - - if(cdata){ + if(part->draw&PART_DRAW_MAT_COL) glEnableClientState(GL_COLOR_ARRAY); - glColorPointer(3, GL_FLOAT, 0, cdata); - } - switch(draw_as){ - case PART_DRAW_AXIS: - case PART_DRAW_CROSS: - glDrawArrays(GL_LINES, 0, 6*totpoint); - break; - case PART_DRAW_LINE: - glDrawArrays(GL_LINES, 0, 2*totpoint); - break; - case PART_DRAW_BB: - if(dt<=OB_WIRE) - glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); + glEnable(GL_LIGHTING); + glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + } + else { + glDisableClientState(GL_NORMAL_ARRAY); - glDrawArrays(GL_QUADS, 0, 4*totpoint); - break; - default: - glDrawArrays(GL_POINTS, 0, totpoint); - break; - } + glDisable(GL_COLOR_MATERIAL); + glDisable(GL_LIGHTING); + BIF_ThemeColor(TH_WIRE); } + if(totchild && (part->draw&PART_DRAW_PARENT)==0) + totpart=0; + + /* draw actual/parent particles */ + cache=psys->pathcache; + for(a=0, pa=psys->particles; asteps > 0) { + glVertexPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->co); + + if(dt > OB_WIRE) { + glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel); + if(part->draw&PART_DRAW_MAT_COL) + glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col); + } + + glDrawArrays(GL_LINE_STRIP, 0, path->steps + 1); + } + } + + /* draw child particles */ + cache=psys->childcache; + for(a=0; aco); + + if(dt > OB_WIRE) { + glNormalPointer(GL_FLOAT, sizeof(ParticleCacheKey), path->vel); + if(part->draw&PART_DRAW_MAT_COL) + glColorPointer(3, GL_FLOAT, sizeof(ParticleCacheKey), path->col); + } + + glDrawArrays(GL_LINE_STRIP, 0, path->steps + 1); + } + + + /* restore & clean up */ + if(dt > OB_WIRE) { + if(part->draw&PART_DRAW_MAT_COL) + glDisable(GL_COLOR_ARRAY); + glDisable(GL_COLOR_MATERIAL); + } + + if(cdata2) + MEM_freeN(cdata2); + cd2=cdata2=0; + + glLineWidth(1.0f); } + else if(draw_as!=PART_DRAW_CIRC){ + glDisableClientState(GL_COLOR_ARRAY); + + /* setup created data arrays */ + if(vdata){ + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, 0, vdata); + } + else + glDisableClientState(GL_VERTEX_ARRAY); + + if(ndata && dt>OB_WIRE){ + glEnableClientState(GL_NORMAL_ARRAY); + glNormalPointer(GL_FLOAT, 0, ndata); + glEnable(GL_LIGHTING); + } + else{ + glDisableClientState(GL_NORMAL_ARRAY); + glDisable(GL_LIGHTING); + } + + if(cdata){ + glEnableClientState(GL_COLOR_ARRAY); + glColorPointer(3, GL_FLOAT, 0, cdata); + } + + + /* draw created data arrays */ + switch(draw_as){ + case PART_DRAW_AXIS: + case PART_DRAW_CROSS: + glDrawArrays(GL_LINES, 0, 6*totpoint); + break; + case PART_DRAW_LINE: + glDrawArrays(GL_LINES, 0, 2*totpoint); + break; + case PART_DRAW_BB: + if(dt<=OB_WIRE) + glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); + + glDrawArrays(GL_QUADS, 0, 4*totpoint); + break; + default: + glDrawArrays(GL_POINTS, 0, totpoint); + break; + } + } + if(vedata){ glDisableClientState(GL_COLOR_ARRAY); cpack(0xC0C0C0); From fd2b1156783d52dbb7c93c53fe008d9e14cbffdd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 3 Apr 2009 14:51:06 +0000 Subject: [PATCH 061/201] Python BGE API - Initialize python types with PyType_Ready, which adds methods to the type dictionary. - use Pythons get/setattro (uses a python string for the attribute rather then char*). Using basic C strings seems nice but internally python converts them to python strings and discards them for most functions that accept char arrays. - Method lookups use the PyTypes dictionary (should be faster then Py_FindMethod) - Renamed __getattr -> py_base_getattro, _getattr -> py_getattro, __repr -> py_base_repr, py_delattro, py_getattro_self etc. From here is possible to put all the parent classes methods into each python types dictionary to avoid nested lookups (api has 4 levels of lookups in some places), tested this but its not ready yet. Simple tests for getting a method within a loop show this to be between 0.5 and 3.2x faster then using Py_FindMethod() --- .../Converter/BL_ActionActuator.cpp | 32 +-- .../gameengine/Converter/BL_ActionActuator.h | 4 +- .../Converter/BL_ShapeActionActuator.cpp | 33 +-- .../Converter/BL_ShapeActionActuator.h | 4 +- source/gameengine/Expressions/ListValue.cpp | 17 +- source/gameengine/Expressions/ListValue.h | 2 +- .../gameengine/Expressions/PyObjectPlus.cpp | 54 +++-- source/gameengine/Expressions/PyObjectPlus.h | 50 +++-- source/gameengine/Expressions/Value.cpp | 36 ++-- source/gameengine/Expressions/Value.h | 8 +- .../GameLogic/SCA_2DFilterActuator.cpp | 23 +- .../GameLogic/SCA_2DFilterActuator.h | 2 +- .../GameLogic/SCA_ANDController.cpp | 17 +- .../gameengine/GameLogic/SCA_ANDController.h | 2 +- .../GameLogic/SCA_ActuatorSensor.cpp | 25 ++- .../gameengine/GameLogic/SCA_ActuatorSensor.h | 4 +- .../gameengine/GameLogic/SCA_AlwaysSensor.cpp | 19 +- .../gameengine/GameLogic/SCA_AlwaysSensor.h | 2 +- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 27 +-- source/gameengine/GameLogic/SCA_DelaySensor.h | 4 +- .../GameLogic/SCA_ExpressionController.h | 2 +- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 27 +-- source/gameengine/GameLogic/SCA_ILogicBrick.h | 4 +- source/gameengine/GameLogic/SCA_IObject.cpp | 19 +- source/gameengine/GameLogic/SCA_IObject.h | 2 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 33 +-- source/gameengine/GameLogic/SCA_ISensor.h | 4 +- .../GameLogic/SCA_JoystickSensor.cpp | 43 ++-- .../gameengine/GameLogic/SCA_JoystickSensor.h | 4 +- .../GameLogic/SCA_KeyboardSensor.cpp | 27 +-- .../gameengine/GameLogic/SCA_KeyboardSensor.h | 4 +- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 27 +-- source/gameengine/GameLogic/SCA_MouseSensor.h | 4 +- .../GameLogic/SCA_NANDController.cpp | 17 +- .../gameengine/GameLogic/SCA_NANDController.h | 2 +- .../GameLogic/SCA_NORController.cpp | 17 +- .../gameengine/GameLogic/SCA_NORController.h | 2 +- .../gameengine/GameLogic/SCA_ORController.cpp | 19 +- .../gameengine/GameLogic/SCA_ORController.h | 2 +- .../GameLogic/SCA_PropertyActuator.cpp | 25 ++- .../GameLogic/SCA_PropertyActuator.h | 4 +- .../GameLogic/SCA_PropertySensor.cpp | 25 ++- .../gameengine/GameLogic/SCA_PropertySensor.h | 4 +- .../GameLogic/SCA_PythonController.cpp | 33 +-- .../GameLogic/SCA_PythonController.h | 4 +- .../GameLogic/SCA_RandomActuator.cpp | 32 +-- .../gameengine/GameLogic/SCA_RandomActuator.h | 4 +- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 32 +-- .../gameengine/GameLogic/SCA_RandomSensor.h | 4 +- .../GameLogic/SCA_XNORController.cpp | 17 +- .../gameengine/GameLogic/SCA_XNORController.h | 2 +- .../GameLogic/SCA_XORController.cpp | 17 +- .../gameengine/GameLogic/SCA_XORController.h | 2 +- source/gameengine/Ketsji/BL_Shader.cpp | 19 +- source/gameengine/Ketsji/BL_Shader.h | 2 +- .../KXNetwork/KX_NetworkMessageActuator.cpp | 25 ++- .../KXNetwork/KX_NetworkMessageActuator.h | 4 +- .../KXNetwork/KX_NetworkMessageSensor.cpp | 25 ++- .../KXNetwork/KX_NetworkMessageSensor.h | 4 +- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 23 +- source/gameengine/Ketsji/KX_BlenderMaterial.h | 4 +- source/gameengine/Ketsji/KX_CDActuator.cpp | 25 ++- source/gameengine/Ketsji/KX_CDActuator.h | 4 +- source/gameengine/Ketsji/KX_Camera.cpp | 60 +++--- source/gameengine/Ketsji/KX_Camera.h | 4 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 34 +-- source/gameengine/Ketsji/KX_CameraActuator.h | 4 +- .../Ketsji/KX_ConstraintActuator.cpp | 17 +- .../gameengine/Ketsji/KX_ConstraintActuator.h | 2 +- .../Ketsji/KX_ConstraintWrapper.cpp | 21 +- .../gameengine/Ketsji/KX_ConstraintWrapper.h | 4 +- source/gameengine/Ketsji/KX_GameActuator.cpp | 25 ++- source/gameengine/Ketsji/KX_GameActuator.h | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 30 +-- source/gameengine/Ketsji/KX_GameObject.h | 6 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 29 ++- source/gameengine/Ketsji/KX_IpoActuator.h | 4 +- source/gameengine/Ketsji/KX_Light.cpp | 72 ++++--- source/gameengine/Ketsji/KX_Light.h | 4 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 21 +- source/gameengine/Ketsji/KX_MeshProxy.h | 2 +- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 17 +- .../gameengine/Ketsji/KX_MouseFocusSensor.h | 2 +- source/gameengine/Ketsji/KX_NearSensor.cpp | 25 ++- source/gameengine/Ketsji/KX_NearSensor.h | 4 +- .../gameengine/Ketsji/KX_ObjectActuator.cpp | 17 +- source/gameengine/Ketsji/KX_ObjectActuator.h | 2 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 25 ++- source/gameengine/Ketsji/KX_ParentActuator.h | 4 +- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 25 ++- .../Ketsji/KX_PhysicsObjectWrapper.h | 4 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 38 ++-- source/gameengine/Ketsji/KX_PolyProxy.h | 2 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 81 +++---- source/gameengine/Ketsji/KX_PolygonMaterial.h | 4 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 6 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 204 ++++++++++++++++++ source/gameengine/Ketsji/KX_PythonInitTypes.h | 35 +++ source/gameengine/Ketsji/KX_RadarSensor.cpp | 25 ++- source/gameengine/Ketsji/KX_RadarSensor.h | 4 +- source/gameengine/Ketsji/KX_RaySensor.cpp | 25 ++- source/gameengine/Ketsji/KX_RaySensor.h | 4 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 26 ++- .../Ketsji/KX_SCA_AddObjectActuator.h | 4 +- .../Ketsji/KX_SCA_DynamicActuator.cpp | 25 ++- .../Ketsji/KX_SCA_DynamicActuator.h | 4 +- .../Ketsji/KX_SCA_EndObjectActuator.cpp | 17 +- .../Ketsji/KX_SCA_EndObjectActuator.h | 2 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 26 ++- .../Ketsji/KX_SCA_ReplaceMeshActuator.h | 4 +- source/gameengine/Ketsji/KX_Scene.cpp | 37 ++-- source/gameengine/Ketsji/KX_Scene.h | 8 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 25 ++- source/gameengine/Ketsji/KX_SceneActuator.h | 4 +- source/gameengine/Ketsji/KX_SoundActuator.cpp | 17 +- source/gameengine/Ketsji/KX_SoundActuator.h | 2 +- source/gameengine/Ketsji/KX_StateActuator.cpp | 17 +- source/gameengine/Ketsji/KX_StateActuator.h | 2 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 37 ++-- source/gameengine/Ketsji/KX_TouchSensor.h | 4 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 25 ++- source/gameengine/Ketsji/KX_TrackToActuator.h | 4 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 22 +- source/gameengine/Ketsji/KX_VehicleWrapper.h | 4 +- source/gameengine/Ketsji/KX_VertexProxy.cpp | 82 +++---- source/gameengine/Ketsji/KX_VertexProxy.h | 4 +- .../Ketsji/KX_VisibilityActuator.cpp | 25 ++- .../gameengine/Ketsji/KX_VisibilityActuator.h | 4 +- 128 files changed, 1385 insertions(+), 906 deletions(-) create mode 100644 source/gameengine/Ketsji/KX_PythonInitTypes.cpp create mode 100644 source/gameengine/Ketsji/KX_PythonInitTypes.h diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 88f75eac1d5..943bb68f6f2 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -965,18 +965,21 @@ KX_PYMETHODDEF_DOC(BL_ActionActuator, setChannel, /* ------------------------------------------------------------------------- */ PyTypeObject BL_ActionActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "BL_ActionActuator", sizeof(BL_ActionActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -1032,17 +1035,20 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* BL_ActionActuator::_getattr(const char *attr) { - if (!strcmp(attr, "action")) +PyObject* BL_ActionActuator::py_getattro(PyObject *attr) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "action")) return PyString_FromString(m_action->id.name+2); - PyObject* object = _getattr_self(Attributes, this, attr); + + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int BL_ActionActuator::_setattr(const char *attr, PyObject* value) { - if (!strcmp(attr, "action")) +int BL_ActionActuator::py_setattro(PyObject *attr, PyObject* value) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "action")) { if (!PyString_Check(value)) { @@ -1072,8 +1078,8 @@ int BL_ActionActuator::_setattr(const char *attr, PyObject* value) { m_action = action; return 0; } - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } \ No newline at end of file diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h index 6161048afb8..7160dd4dad0 100644 --- a/source/gameengine/Converter/BL_ActionActuator.h +++ b/source/gameengine/Converter/BL_ActionActuator.h @@ -110,8 +110,8 @@ public: KX_PYMETHOD_DOC(BL_ActionActuator,setChannel); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject* attr); + virtual int py_setattro(PyObject* attr, PyObject* value); /* attribute check */ static int CheckFrame(void *self, const PyAttributeDef*) diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 74953a90bb3..c53be4653ca 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -420,18 +420,21 @@ bool BL_ShapeActionActuator::Update(double curtime, bool frame) /* Integration hooks ------------------------------------------------------- */ PyTypeObject BL_ShapeActionActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "BL_ShapeActionActuator", sizeof(BL_ShapeActionActuator), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -481,17 +484,19 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = { }; -PyObject* BL_ShapeActionActuator::_getattr(const char *attr) { - if (!strcmp(attr, "action")) +PyObject* BL_ShapeActionActuator::py_getattro(PyObject* attr) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "action")) return PyString_FromString(m_action->id.name+2); - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int BL_ShapeActionActuator::_setattr(const char *attr, PyObject* value) { - if (!strcmp(attr, "action")) +int BL_ShapeActionActuator::py_setattro(PyObject *attr, PyObject* value) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "action")) { if (!PyString_Check(value)) { @@ -521,10 +526,10 @@ int BL_ShapeActionActuator::_setattr(const char *attr, PyObject* value) { m_action = action; return 0; } - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* setStart */ diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.h b/source/gameengine/Converter/BL_ShapeActionActuator.h index 7f2431bcfa5..ea25d66e050 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.h +++ b/source/gameengine/Converter/BL_ShapeActionActuator.h @@ -103,8 +103,8 @@ public: KX_PYMETHOD_DOC_NOARGS(BL_ShapeActionActuator,GetType); KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetType); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject* attr); + virtual int py_setattro(PyObject* attr, PyObject* value); static int CheckBlendTime(void *self, const PyAttributeDef*) { diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index aa84cab0266..15eb8835b79 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -193,7 +193,7 @@ static PyMappingMethods instance_as_mapping = { PyTypeObject CListValue::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "CListValue", /*tp_name*/ sizeof(CListValue), /*tp_basicsize*/ @@ -201,16 +201,19 @@ PyTypeObject CListValue::Type = { /* methods */ PyDestructor, /*tp_dealloc*/ 0, /*tp_print*/ - __getattr, /*tp_getattr*/ - __setattr, /*tp_setattr*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ 0, /*tp_compare*/ - __repr, /*tp_repr*/ + py_base_repr, /*tp_repr*/ 0, /*tp_as_number*/ &listvalue_as_sequence, /*tp_as_sequence*/ &instance_as_mapping, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call */ - 0,0,0,0,0,0,0,0,0,0,0,0, + 0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -238,8 +241,8 @@ PyAttributeDef CListValue::Attributes[] = { { NULL } //Sentinel }; -PyObject* CListValue::_getattr(const char *attr) { - _getattr_up(CValue); +PyObject* CListValue::py_getattro(PyObject* attr) { + py_getattro_up(CValue); } diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h index 104e3e63283..f936298a8c4 100644 --- a/source/gameengine/Expressions/ListValue.h +++ b/source/gameengine/Expressions/ListValue.h @@ -59,7 +59,7 @@ public: bool CheckEqual(CValue* first,CValue* second); - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject* attr); KX_PYMETHOD_O(CListValue,append); KX_PYMETHOD_NOARGS(CListValue,reverse); diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 417388be464..ed6932b414a 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -55,19 +55,22 @@ ------------------------------*/ PyTypeObject PyObjectPlus::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "PyObjectPlus", /*tp_name*/ sizeof(PyObjectPlus), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ - PyDestructor, /*tp_dealloc*/ - 0, /*tp_print*/ - __getattr, /*tp_getattr*/ - __setattr, /*tp_setattr*/ - 0, /*tp_compare*/ - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + PyDestructor, + 0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -103,37 +106,41 @@ PyParentObject PyObjectPlus::Parents[] = {&PyObjectPlus::Type, NULL}; /*------------------------------ * PyObjectPlus attributes -- attributes ------------------------------*/ -PyObject *PyObjectPlus::_getattr(const char *attr) +PyObject *PyObjectPlus::py_getattro(PyObject* attr) { - if (!strcmp(attr, "__doc__") && GetType()->tp_doc) - return PyString_FromString(GetType()->tp_doc); - + PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ + if (descr == NULL) { + PyErr_SetString(PyExc_AttributeError, "attribute not found"); + return NULL; + } else { + return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + } //if (streq(attr, "type")) // return Py_BuildValue("s", (*(GetParents()))->tp_name); - - return Py_FindMethod(Methods, this, attr); } -int PyObjectPlus::_delattr(const char *attr) +int PyObjectPlus::py_delattro(PyObject* attr) { PyErr_SetString(PyExc_AttributeError, "attribute cant be deleted"); return 1; } -int PyObjectPlus::_setattr(const char *attr, PyObject *value) +int PyObjectPlus::py_setattro(PyObject *attr, PyObject* value) { - //return PyObject::_setattr(attr,value); + //return PyObject::py_setattro(attr,value); //cerr << "Unknown attribute" << endl; PyErr_SetString(PyExc_AttributeError, "attribute cant be set"); return 1; } -PyObject *PyObjectPlus::_getattr_self(const PyAttributeDef attrlist[], void *self, const char *attr) +PyObject *PyObjectPlus::py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr) { + char *attr_str= PyString_AsString(attr); + const PyAttributeDef *attrdef; for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) { - if (!strcmp(attr, attrdef->m_name)) + if (!strcmp(attr_str, attrdef->m_name)) { if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) { @@ -242,16 +249,17 @@ PyObject *PyObjectPlus::_getattr_self(const PyAttributeDef attrlist[], void *sel return NULL; } -int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, const char *attr, PyObject *value) +int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value) { const PyAttributeDef *attrdef; void *undoBuffer = NULL; void *sourceBuffer = NULL; size_t bufferSize = 0; + char *attr_str= PyString_AsString(attr); for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) { - if (!strcmp(attr, attrdef->m_name)) + if (!strcmp(attr_str, attrdef->m_name)) { if (attrdef->m_access == KX_PYATTRIBUTE_RO || attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) @@ -684,7 +692,7 @@ int PyObjectPlus::_setattr_self(const PyAttributeDef attrlist[], void *self, con /*------------------------------ * PyObjectPlus repr -- representations ------------------------------*/ -PyObject *PyObjectPlus::_repr(void) +PyObject *PyObjectPlus::py_repr(void) { PyErr_SetString(PyExc_SystemError, "Representation not overridden by object."); return NULL; @@ -726,7 +734,7 @@ PyObject *PyObjectPlus::Py_isA(PyObject *value) // Python wrapper for isA Py_RETURN_FALSE; } -/* Utility function called by the macro _getattr_up() +/* Utility function called by the macro py_getattro_up() * for getting ob.__dict__() values from our PyObject * this is used by python for doing dir() on an object, so its good * if we return a list of attributes and methods. diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 345eb8c9c3f..77963c092eb 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -72,6 +72,8 @@ typedef int Py_ssize_t; #define PY_METHODCHAR const char * #endif +#include "descrobject.h" + static inline void Py_Fatal(const char *M) { fprintf(stderr, "%s\n", M); exit(-1); @@ -90,21 +92,27 @@ static inline void Py_Fatal(const char *M) { - // This defines the _getattr_up macro + // This defines the py_getattro_up macro // which allows attribute and method calls // to be properly passed up the hierarchy. -#define _getattr_up(Parent) \ - PyObject *rvalue = Py_FindMethod(Methods, this, attr); \ + +#define py_getattro_up(Parent) \ + PyObject *rvalue; \ + PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ \ - if (rvalue == NULL) { \ + if (descr == NULL) { \ PyErr_Clear(); \ - rvalue = Parent::_getattr(attr); \ + rvalue = Parent::py_getattro(attr); \ + } else { \ + rvalue= PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ } \ - if (strcmp(attr, "__dict__")==0) {\ + \ + if (strcmp(PyString_AsString(attr), "__dict__")==0) {\ rvalue = _getattr_dict(rvalue, Methods, Attributes); \ } \ return rvalue; \ + /** * These macros are helpfull when embedding Python routines. The second * macro is one that also requires a documentation string @@ -361,29 +369,29 @@ public: // Py_DECREF(this); // }; // decref method - virtual PyObject *_getattr(const char *attr); // _getattr method - static PyObject *__getattr(PyObject * PyObj, char *attr) // This should be the entry in Type. + virtual PyObject *py_getattro(PyObject *attr); // py_getattro method + static PyObject *py_base_getattro(PyObject * PyObj, PyObject *attr) // This should be the entry in Type. { - return ((PyObjectPlus*) PyObj)->_getattr(attr); + return ((PyObjectPlus*) PyObj)->py_getattro(attr); } - static PyObject *_getattr_self(const PyAttributeDef attrlist[], void *self, const char *attr); - static int _setattr_self(const PyAttributeDef attrlist[], void *self, const char *attr, PyObject *value); + static PyObject *py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr); + static int py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value); - virtual int _delattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); // _setattr method - static int __setattr(PyObject *PyObj, // This should be the entry in Type. - char *attr, + virtual int py_delattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method + static int py_base_setattro(PyObject *PyObj, // This should be the entry in Type. + PyObject *attr, PyObject *value) { - if (!value) - return ((PyObjectPlus*) PyObj)->_delattr(attr); - return ((PyObjectPlus*) PyObj)->_setattr(attr, value); + if (value==NULL) + return ((PyObjectPlus*) PyObj)->py_delattro(attr); + return ((PyObjectPlus*) PyObj)->py_setattro(attr, value); } - virtual PyObject *_repr(void); // _repr method - static PyObject *__repr(PyObject *PyObj) // This should be the entry in Type. + virtual PyObject *py_repr(void); // py_repr method + static PyObject *py_base_repr(PyObject *PyObj) // This should be the entry in Type. { - return ((PyObjectPlus*) PyObj)->_repr(); + return ((PyObjectPlus*) PyObj)->py_repr(); } // isA methods diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 36509763454..8b910b9038b 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -139,19 +139,22 @@ static PyNumberMethods cvalue_as_number = { PyTypeObject CValue::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "CValue", sizeof(CValue), 0, PyDestructor, 0, - __getattr, - __setattr, + 0, + 0, &MyPyCompare, - __repr, + py_base_repr, &cvalue_as_number, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -695,9 +698,10 @@ PyAttributeDef CValue::Attributes[] = { }; -PyObject* CValue::_getattr(const char *attr) +PyObject* CValue::py_getattro(PyObject *attr) { - CValue* resultattr = GetProperty(attr); + char *attr_str= PyString_AsString(attr); + CValue* resultattr = GetProperty(attr_str); if (resultattr) { PyObject* pyconvert = resultattr->ConvertValueToPython(); @@ -707,7 +711,7 @@ PyObject* CValue::_getattr(const char *attr) else return resultattr; // also check if it's already in pythoninterpreter! } - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } CValue* CValue::ConvertPythonToValue(PyObject* pyobj) @@ -769,26 +773,28 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) } -int CValue::_delattr(const char *attr) +int CValue::py_delattro(PyObject *attr) { - if (RemoveProperty(STR_String(attr))) + char *attr_str= PyString_AsString(attr); + if (RemoveProperty(STR_String(attr_str))) return 0; - PyErr_Format(PyExc_AttributeError, "attribute \"%s\" dosnt exist", attr); + PyErr_Format(PyExc_AttributeError, "attribute \"%s\" dosnt exist", attr_str); return 1; } -int CValue::_setattr(const char *attr, PyObject* pyobj) +int CValue::py_setattro(PyObject *attr, PyObject* pyobj) { CValue* vallie = ConvertPythonToValue(pyobj); if (vallie) { - CValue* oldprop = GetProperty(attr); + char *attr_str= PyString_AsString(attr); + CValue* oldprop = GetProperty(attr_str); if (oldprop) oldprop->SetValue(vallie); else - SetProperty(attr, vallie); + SetProperty(attr_str, vallie); vallie->Release(); } else @@ -796,7 +802,7 @@ int CValue::_setattr(const char *attr, PyObject* pyobj) return 1; /* ConvertPythonToValue sets the error message */ } - //PyObjectPlus::_setattr(attr,value); + //PyObjectPlus::py_setattro(attr,value); return 0; }; diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index 4678ab1f0c2..7a2816a9778 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -217,14 +217,14 @@ public: CValue(PyTypeObject *T = &Type); //static PyObject* PyMake(PyObject*,PyObject*); - virtual PyObject *_repr(void) + virtual PyObject *py_repr(void) { return Py_BuildValue("s",(const char*)GetText()); } - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); void SpecialRelease() { @@ -251,8 +251,8 @@ public: virtual CValue* ConvertPythonToValue(PyObject* pyobj); - virtual int _delattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual int py_delattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); virtual PyObject* ConvertKeysToPython( void ); diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp index 0b410728512..9d4dc1f33d6 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp @@ -80,18 +80,21 @@ bool SCA_2DFilterActuator::Update() PyTypeObject SCA_2DFilterActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_2DFilterActuator", sizeof(SCA_2DFilterActuator), 0, - PyDestructor, - 0, - __getattr, - __setattr, - 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + PyDestructor, + 0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -114,6 +117,6 @@ PyAttributeDef SCA_2DFilterActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_2DFilterActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); +PyObject* SCA_2DFilterActuator::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IActuator); } diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.h b/source/gameengine/GameLogic/SCA_2DFilterActuator.h index 9da0500afff..f69c680b774 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.h +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.h @@ -38,7 +38,7 @@ public: virtual bool Update(); virtual CValue* GetReplica(); - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; #endif diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp index de67037b64a..cb62e2b5a1d 100644 --- a/source/gameengine/GameLogic/SCA_ANDController.cpp +++ b/source/gameengine/GameLogic/SCA_ANDController.cpp @@ -107,18 +107,21 @@ CValue* SCA_ANDController::GetReplica() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_ANDController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_ANDController", sizeof(SCA_ANDController), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -138,8 +141,8 @@ PyAttributeDef SCA_ANDController::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_ANDController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_ANDController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ANDController.h b/source/gameengine/GameLogic/SCA_ANDController.h index eba7e1b545a..fdb93d0fc42 100644 --- a/source/gameengine/GameLogic/SCA_ANDController.h +++ b/source/gameengine/GameLogic/SCA_ANDController.h @@ -48,7 +48,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index d5c3e1960fe..ed7aa66d04b 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -122,18 +122,21 @@ void SCA_ActuatorSensor::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_ActuatorSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_ActuatorSensor", sizeof(SCA_ActuatorSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -158,11 +161,11 @@ PyAttributeDef SCA_ActuatorSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_ActuatorSensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_ActuatorSensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); /* implicit return! */ + py_getattro_up(SCA_ISensor); /* implicit return! */ } int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) @@ -177,11 +180,11 @@ int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) return 1; } -int SCA_ActuatorSensor::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int SCA_ActuatorSensor::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } /* 3. getActuator */ diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.h b/source/gameengine/GameLogic/SCA_ActuatorSensor.h index 75ee08f42d6..9bc873e4ee1 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.h +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.h @@ -61,8 +61,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 3. setProperty */ KX_PYMETHOD_DOC(SCA_ActuatorSensor,SetActuator); diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp index e2125b8b08d..a7b0e5a14d2 100644 --- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp +++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp @@ -105,18 +105,21 @@ bool SCA_AlwaysSensor::Evaluate(CValue* event) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_AlwaysSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_AlwaysSensor", sizeof(SCA_AlwaysSensor), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -136,8 +139,8 @@ PyAttributeDef SCA_AlwaysSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_AlwaysSensor::_getattr(const char *attr) { - _getattr_up(SCA_ISensor); +PyObject* SCA_AlwaysSensor::py_getattro(PyObject *attr) { + py_getattro_up(SCA_ISensor); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.h b/source/gameengine/GameLogic/SCA_AlwaysSensor.h index ebe6ba80208..87949babf59 100644 --- a/source/gameengine/GameLogic/SCA_AlwaysSensor.h +++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.h @@ -52,7 +52,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index 733057017a7..5082caacfd5 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -131,18 +131,21 @@ bool SCA_DelaySensor::Evaluate(CValue* event) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_DelaySensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_DelaySensor", sizeof(SCA_DelaySensor), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -175,18 +178,18 @@ PyAttributeDef SCA_DelaySensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_DelaySensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_DelaySensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int SCA_DelaySensor::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int SCA_DelaySensor::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.h b/source/gameengine/GameLogic/SCA_DelaySensor.h index 491eee61da8..f9e3d619198 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.h +++ b/source/gameengine/GameLogic/SCA_DelaySensor.h @@ -60,8 +60,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* setProperty */ KX_PYMETHOD_DOC(SCA_DelaySensor,SetDelay); diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.h b/source/gameengine/GameLogic/SCA_ExpressionController.h index 79c26eea1e7..2936742be19 100644 --- a/source/gameengine/GameLogic/SCA_ExpressionController.h +++ b/source/gameengine/GameLogic/SCA_ExpressionController.h @@ -59,7 +59,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ -// virtual PyObject* _getattr(const char *attr); +// virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 3cefe638726..45ebd874ea5 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -217,18 +217,21 @@ CValue* SCA_ILogicBrick::GetEvent() /* python stuff */ PyTypeObject SCA_ILogicBrick::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_ILogicBrick", sizeof(SCA_ILogicBrick), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -275,20 +278,20 @@ int SCA_ILogicBrick::CheckProperty(void *self, const PyAttributeDef *attrdef) } PyObject* -SCA_ILogicBrick::_getattr(const char *attr) +SCA_ILogicBrick::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(CValue); + py_getattro_up(CValue); } -int SCA_ILogicBrick::_setattr(const char *attr, PyObject *value) +int SCA_ILogicBrick::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return CValue::_setattr(attr, value); + return CValue::py_setattro(attr, value); } diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index 70d49941613..c098f9dfd8a 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -79,8 +79,8 @@ public: virtual bool LessComparedTo(SCA_ILogicBrick* other); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); static class SCA_LogicManager* m_sCurrentLogicManager; diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp index 976665a3ccd..d1ce377316b 100644 --- a/source/gameengine/GameLogic/SCA_IObject.cpp +++ b/source/gameengine/GameLogic/SCA_IObject.cpp @@ -375,18 +375,21 @@ void SCA_IObject::SetState(unsigned int state) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_IObject::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_IObject", sizeof(SCA_IObject), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -411,7 +414,7 @@ PyAttributeDef SCA_IObject::Attributes[] = { }; -PyObject* SCA_IObject::_getattr(const char *attr) { - _getattr_up(CValue); +PyObject* SCA_IObject::py_getattro(PyObject *attr) { + py_getattro_up(CValue); } diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h index d47353b1ac0..44ed3c8f3fe 100644 --- a/source/gameengine/GameLogic/SCA_IObject.h +++ b/source/gameengine/GameLogic/SCA_IObject.h @@ -145,7 +145,7 @@ public: // const class MT_Point3& ConvertPythonPylist(PyObject* pylist); // here come the python forwarded methods - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); virtual int GetGameObjectType() {return -1;} diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 0d7dffca17a..8a40c0c35f3 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -393,18 +393,21 @@ KX_PYMETHODDEF_DOC_NOARGS(SCA_ISensor, reset, /* ----------------------------------------------- */ PyTypeObject SCA_ISensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_ISensor", sizeof(SCA_ISensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -451,38 +454,40 @@ PyAttributeDef SCA_ISensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("frequency",0,100000,true,SCA_ISensor,m_pulse_frequency), KX_PYATTRIBUTE_BOOL_RW("invert",SCA_ISensor,m_invert), KX_PYATTRIBUTE_BOOL_RW("level",SCA_ISensor,m_level), - // make these properties read-only in _setaddr, must still implement them in _getattr + // make these properties read-only in _setaddr, must still implement them in py_getattro KX_PYATTRIBUTE_DUMMY("triggered"), KX_PYATTRIBUTE_DUMMY("positive"), { NULL } //Sentinel }; PyObject* -SCA_ISensor::_getattr(const char *attr) +SCA_ISensor::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - if (!strcmp(attr, "triggered")) + + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "triggered")) { int retval = 0; if (SCA_PythonController::m_sCurrentController) retval = SCA_PythonController::m_sCurrentController->IsTriggered(this); return PyInt_FromLong(retval); } - if (!strcmp(attr, "positive")) + if (!strcmp(attr_str, "positive")) { int retval = IsPositiveTrigger(); return PyInt_FromLong(retval); } - _getattr_up(SCA_ILogicBrick); + py_getattro_up(SCA_ILogicBrick); } -int SCA_ISensor::_setattr(const char *attr, PyObject *value) +int SCA_ISensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ILogicBrick::_setattr(attr, value); + return SCA_ILogicBrick::py_setattro(attr, value); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index 23f2c76c19f..ce7b66df1cd 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -136,8 +136,8 @@ public: /* Python functions: */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); //Deprecated functions -----> KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,IsPositive); diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 6b8779ee37a..0cfd6843c1b 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -275,18 +275,21 @@ bool SCA_JoystickSensor::isValid(SCA_JoystickSensor::KX_JOYSENSORMODE m) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_JoystickSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_JoystickSensor", sizeof(SCA_JoystickSensor), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -330,8 +333,8 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("button",0,100,false,SCA_JoystickSensor,m_button), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("axis",0,3,true,SCA_JoystickSensor,m_axis,2,CheckAxis), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("hat",0,12,true,SCA_JoystickSensor,m_hat,2,CheckHat), - // dummy attributes will just be read-only in _setattr - // you still need to defined them in _getattr + // dummy attributes will just be read-only in py_setattro + // you still need to defined them in py_getattro KX_PYATTRIBUTE_DUMMY("axisPosition"), KX_PYATTRIBUTE_DUMMY("numAxis"), KX_PYATTRIBUTE_DUMMY("numButtons"), @@ -340,38 +343,40 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_JoystickSensor::_getattr(const char *attr) { +PyObject* SCA_JoystickSensor::py_getattro(PyObject *attr) { SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); - if (!strcmp(attr, "axisPosition")) { + char *attr_str= PyString_AsString(attr); + + if (!strcmp(attr_str, "axisPosition")) { if(joy) return Py_BuildValue("[iiii]", joy->GetAxis10(), joy->GetAxis11(), joy->GetAxis20(), joy->GetAxis21()); else return Py_BuildValue("[iiii]", 0, 0, 0, 0); } - if (!strcmp(attr, "numAxis")) { + if (!strcmp(attr_str, "numAxis")) { return PyInt_FromLong( joy ? joy->GetNumberOfAxes() : 0 ); } - if (!strcmp(attr, "numButtons")) { + if (!strcmp(attr_str, "numButtons")) { return PyInt_FromLong( joy ? joy->GetNumberOfButtons() : 0 ); } - if (!strcmp(attr, "numHats")) { + if (!strcmp(attr_str, "numHats")) { return PyInt_FromLong( joy ? joy->GetNumberOfHats() : 0 ); } - if (!strcmp(attr, "connected")) { + if (!strcmp(attr_str, "connected")) { return PyBool_FromLong( joy ? joy->Connected() : 0 ); } - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int SCA_JoystickSensor::_setattr(const char *attr, PyObject *value) +int SCA_JoystickSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h index 49d220c056d..ccdd2107b21 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.h +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h @@ -121,8 +121,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* Joystick Index */ KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,GetIndex); diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index bf470daa349..fc1b5be3540 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -778,18 +778,21 @@ KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, /* ------------------------------------------------------------------------- */ PyTypeObject SCA_KeyboardSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_KeyboardSensor", sizeof(SCA_KeyboardSensor), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -828,18 +831,18 @@ PyAttributeDef SCA_KeyboardSensor::Attributes[] = { }; PyObject* -SCA_KeyboardSensor::_getattr(const char *attr) +SCA_KeyboardSensor::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int SCA_KeyboardSensor::_setattr(const char *attr, PyObject *value) +int SCA_KeyboardSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h index bc2f86327a5..c579b6a82f8 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h @@ -126,8 +126,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); //Deprecated functions -----> /** 1. GetKey : check which key this sensor looks at */ diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 19365fbbb88..c5f6fdabbe8 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -102,7 +102,7 @@ int SCA_MouseSensor::UpdateHotkey(void *self, const PyAttributeDef*) default: ; /* ignore, no hotkey */ } - // return value is used in _setattr(), + // return value is used in py_setattro(), // 0=attribute checked ok (see Attributes array definition) return 0; } @@ -300,18 +300,21 @@ KX_PYMETHODDEF_DOC_O(SCA_MouseSensor, getButtonStatus, /* ------------------------------------------------------------------------- */ PyTypeObject SCA_MouseSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_MouseSensor", sizeof(SCA_MouseSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -338,20 +341,20 @@ PyAttributeDef SCA_MouseSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_MouseSensor::_getattr(const char *attr) +PyObject* SCA_MouseSensor::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int SCA_MouseSensor::_setattr(const char *attr, PyObject *value) +int SCA_MouseSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h index 30b43fe53cc..73410569cc2 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.h +++ b/source/gameengine/GameLogic/SCA_MouseSensor.h @@ -109,8 +109,8 @@ class SCA_MouseSensor : public SCA_ISensor /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); //Deprecated functions -----> /* read x-coordinate */ diff --git a/source/gameengine/GameLogic/SCA_NANDController.cpp b/source/gameengine/GameLogic/SCA_NANDController.cpp index 2bc6a3ef1d6..bddd5f4d3ab 100644 --- a/source/gameengine/GameLogic/SCA_NANDController.cpp +++ b/source/gameengine/GameLogic/SCA_NANDController.cpp @@ -107,18 +107,21 @@ CValue* SCA_NANDController::GetReplica() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_NANDController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_NANDController", sizeof(SCA_NANDController), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -138,8 +141,8 @@ PyAttributeDef SCA_NANDController::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_NANDController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_NANDController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_NANDController.h b/source/gameengine/GameLogic/SCA_NANDController.h index d88504cfc0d..11600914a1a 100644 --- a/source/gameengine/GameLogic/SCA_NANDController.h +++ b/source/gameengine/GameLogic/SCA_NANDController.h @@ -48,7 +48,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_NORController.cpp b/source/gameengine/GameLogic/SCA_NORController.cpp index 98ba77df54c..3ee073523c3 100644 --- a/source/gameengine/GameLogic/SCA_NORController.cpp +++ b/source/gameengine/GameLogic/SCA_NORController.cpp @@ -107,18 +107,21 @@ CValue* SCA_NORController::GetReplica() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_NORController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_NORController", sizeof(SCA_NORController), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -138,8 +141,8 @@ PyAttributeDef SCA_NORController::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_NORController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_NORController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_NORController.h b/source/gameengine/GameLogic/SCA_NORController.h index 45b639f3f3f..fc814e28d37 100644 --- a/source/gameengine/GameLogic/SCA_NORController.h +++ b/source/gameengine/GameLogic/SCA_NORController.h @@ -48,7 +48,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp index ba616402ac9..91d5e56d4f3 100644 --- a/source/gameengine/GameLogic/SCA_ORController.cpp +++ b/source/gameengine/GameLogic/SCA_ORController.cpp @@ -99,18 +99,21 @@ void SCA_ORController::Trigger(SCA_LogicManager* logicmgr) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_ORController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_ORController", sizeof(SCA_ORController), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -131,8 +134,8 @@ PyAttributeDef SCA_ORController::Attributes[] = { }; -PyObject* SCA_ORController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_ORController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ORController.h b/source/gameengine/GameLogic/SCA_ORController.h index 9a6e9e75022..fdc81486e74 100644 --- a/source/gameengine/GameLogic/SCA_ORController.h +++ b/source/gameengine/GameLogic/SCA_ORController.h @@ -49,7 +49,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; #endif //__KX_ORCONTROLLER diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 28a3b6b822a..e1f303430ec 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -218,18 +218,21 @@ void SCA_PropertyActuator::Relink(GEN_Map *obj_map) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_PropertyActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_PropertyActuator", sizeof(SCA_PropertyActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -257,18 +260,18 @@ PyAttributeDef SCA_PropertyActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_PropertyActuator::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_PropertyActuator::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int SCA_PropertyActuator::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int SCA_PropertyActuator::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* 1. setProperty */ diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.h b/source/gameengine/GameLogic/SCA_PropertyActuator.h index 444d9285796..6a975716ed0 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.h +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.h @@ -85,8 +85,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // python wrapped methods KX_PYMETHOD_DOC(SCA_PropertyActuator,SetProperty); diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index ef3dbe7e049..659823f6fba 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -306,18 +306,21 @@ int SCA_PropertySensor::validValueForProperty(void *self, const PyAttributeDef*) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_PropertySensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_PropertySensor", sizeof(SCA_PropertySensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -349,18 +352,18 @@ PyAttributeDef SCA_PropertySensor::Attributes[] = { }; -PyObject* SCA_PropertySensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_PropertySensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); /* implicit return! */ + py_getattro_up(SCA_ISensor); /* implicit return! */ } -int SCA_PropertySensor::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int SCA_PropertySensor::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } /* 1. getType */ diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h index 2594e3fca9d..076c1ae51ec 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.h +++ b/source/gameengine/GameLogic/SCA_PropertySensor.h @@ -89,8 +89,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. getType */ KX_PYMETHOD_DOC(SCA_PropertySensor,GetType); diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 4ad3f135d31..2d200e0a238 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -224,18 +224,21 @@ const char* SCA_PythonController::sPyAddActiveActuator__doc__= "addActiveActuato const char SCA_PythonController::GetActuators_doc[] = "getActuator"; PyTypeObject SCA_PythonController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_PythonController", sizeof(SCA_PythonController), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -369,24 +372,26 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) -PyObject* SCA_PythonController::_getattr(const char *attr) +PyObject* SCA_PythonController::py_getattro(PyObject *attr) { - if (!strcmp(attr,"state")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str,"state")) { return PyInt_FromLong(m_statemask); } - if (!strcmp(attr,"script")) { + if (!strcmp(attr_str,"script")) { return PyString_FromString(m_scriptText); } - _getattr_up(SCA_IController); + py_getattro_up(SCA_IController); } -int SCA_PythonController::_setattr(const char *attr, PyObject *value) +int SCA_PythonController::py_setattro(PyObject *attr, PyObject *value) { - if (!strcmp(attr,"state")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str,"state")) { PyErr_SetString(PyExc_AttributeError, "state is read only"); return 1; } - if (!strcmp(attr,"script")) { + if (!strcmp(attr_str,"script")) { char *scriptArg = PyString_AsString(value); if (scriptArg==NULL) { @@ -400,7 +405,7 @@ int SCA_PythonController::_setattr(const char *attr, PyObject *value) return 1; } - return SCA_IController::_setattr(attr, value); + return SCA_IController::py_setattro(attr, value); } PyObject* SCA_PythonController::PyActivate(PyObject* self, PyObject *value) diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h index 4ec18f32c23..3348071c00f 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.h +++ b/source/gameengine/GameLogic/SCA_PythonController.h @@ -78,8 +78,8 @@ class SCA_PythonController : public SCA_IController static PyObject* sPyAddActiveActuator(PyObject* self, PyObject* args); static SCA_IActuator* LinkedActuatorFromPy(PyObject *value); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); KX_PYMETHOD_O(SCA_PythonController,Activate); diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index 78614f9ace3..a9a664b0686 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -312,18 +312,21 @@ void SCA_RandomActuator::enforceConstraints() { /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_RandomActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_RandomActuator", sizeof(SCA_RandomActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -366,22 +369,25 @@ PyAttributeDef SCA_RandomActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_RandomActuator::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_RandomActuator::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - if (!strcmp(attr, "seed")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "seed")) { return PyInt_FromLong(m_base->GetSeed()); } - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int SCA_RandomActuator::_setattr(const char *attr, PyObject *value) +int SCA_RandomActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - if (!strcmp(attr, "seed")) { + + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "seed")) { if (PyInt_Check(value)) { int ival = PyInt_AsLong(value); m_base->SetSeed(ival); @@ -391,7 +397,7 @@ int SCA_RandomActuator::_setattr(const char *attr, PyObject *value) return 1; } } - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* 1. setSeed */ diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h index 0d404fa8a9f..96ca353257f 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.h +++ b/source/gameengine/GameLogic/SCA_RandomActuator.h @@ -96,8 +96,8 @@ class SCA_RandomActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. setSeed */ KX_PYMETHOD_DOC(SCA_RandomActuator,SetSeed); diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index d88f8f500c0..84a9ef95e84 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -127,18 +127,21 @@ bool SCA_RandomSensor::Evaluate(CValue* event) /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_RandomSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_RandomSensor", sizeof(SCA_RandomSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -162,22 +165,25 @@ PyAttributeDef SCA_RandomSensor::Attributes[] = { {NULL} //Sentinel }; -PyObject* SCA_RandomSensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* SCA_RandomSensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - if (!strcmp(attr,"seed")) { + + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str,"seed")) { return PyInt_FromLong(m_basegenerator->GetSeed()); } - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int SCA_RandomSensor::_setattr(const char *attr, PyObject *value) +int SCA_RandomSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - if (!strcmp(attr,"seed")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str,"seed")) { if (PyInt_Check(value)) { int ival = PyInt_AsLong(value); m_basegenerator->SetSeed(ival); @@ -187,7 +193,7 @@ int SCA_RandomSensor::_setattr(const char *attr, PyObject *value) return 1; } } - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } /* 1. setSeed */ diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h index d808db07536..39d072dd316 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.h +++ b/source/gameengine/GameLogic/SCA_RandomSensor.h @@ -60,8 +60,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. setSeed */ KX_PYMETHOD_DOC(SCA_RandomSensor,SetSeed); diff --git a/source/gameengine/GameLogic/SCA_XNORController.cpp b/source/gameengine/GameLogic/SCA_XNORController.cpp index a9fe906f54e..10757e1c935 100644 --- a/source/gameengine/GameLogic/SCA_XNORController.cpp +++ b/source/gameengine/GameLogic/SCA_XNORController.cpp @@ -111,18 +111,21 @@ CValue* SCA_XNORController::GetReplica() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_XNORController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_XNORController", sizeof(SCA_XNORController), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -142,8 +145,8 @@ PyAttributeDef SCA_XNORController::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_XNORController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_XNORController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_XNORController.h b/source/gameengine/GameLogic/SCA_XNORController.h index a431a72c177..c992d5f1834 100644 --- a/source/gameengine/GameLogic/SCA_XNORController.h +++ b/source/gameengine/GameLogic/SCA_XNORController.h @@ -48,7 +48,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/GameLogic/SCA_XORController.cpp b/source/gameengine/GameLogic/SCA_XORController.cpp index b0053ca17fb..d2290fe207a 100644 --- a/source/gameengine/GameLogic/SCA_XORController.cpp +++ b/source/gameengine/GameLogic/SCA_XORController.cpp @@ -111,18 +111,21 @@ CValue* SCA_XORController::GetReplica() /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_XORController::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "SCA_XORController", sizeof(SCA_XORController), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -142,8 +145,8 @@ PyAttributeDef SCA_XORController::Attributes[] = { { NULL } //Sentinel }; -PyObject* SCA_XORController::_getattr(const char *attr) { - _getattr_up(SCA_IController); +PyObject* SCA_XORController::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IController); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_XORController.h b/source/gameengine/GameLogic/SCA_XORController.h index 2fbc7866ecf..065b31fd901 100644 --- a/source/gameengine/GameLogic/SCA_XORController.h +++ b/source/gameengine/GameLogic/SCA_XORController.h @@ -48,7 +48,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index 14f672bb68f..279721b4840 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -729,9 +729,9 @@ void BL_Shader::SetUniform(int uniform, const int* val, int len) } -PyObject* BL_Shader::_getattr(const char *attr) +PyObject* BL_Shader::py_getattro(PyObject *attr) { - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } @@ -772,25 +772,28 @@ PyAttributeDef BL_Shader::Attributes[] = { }; PyTypeObject BL_Shader::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "BL_Shader", sizeof(BL_Shader), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject BL_Shader::Parents[] = { - &PyObjectPlus::Type, &BL_Shader::Type, + &PyObjectPlus::Type, NULL }; diff --git a/source/gameengine/Ketsji/BL_Shader.h b/source/gameengine/Ketsji/BL_Shader.h index 76acd5513ef..490c0268a6d 100644 --- a/source/gameengine/Ketsji/BL_Shader.h +++ b/source/gameengine/Ketsji/BL_Shader.h @@ -202,7 +202,7 @@ public: void SetUniform(int uniform, const int val); // Python interface - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); // ----------------------------------- KX_PYMETHOD_DOC( BL_Shader, setSource ); diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 0a7e20b8650..a5fd8ebab6b 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -105,18 +105,21 @@ CValue* KX_NetworkMessageActuator::GetReplica() /* Integration hooks -------------------------------------------------- */ PyTypeObject KX_NetworkMessageActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageActuator", sizeof(KX_NetworkMessageActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -150,18 +153,18 @@ PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_NetworkMessageActuator::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* KX_NetworkMessageActuator::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_NetworkMessageActuator::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int KX_NetworkMessageActuator::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } // Deprecated -----> diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h index d9a7f787333..850f825b8f3 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h @@ -61,8 +61,8 @@ public: /* Python interface ------------------------------------------- */ /* ------------------------------------------------------------ */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName); diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index d5434a34eb7..7922c341659 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -168,18 +168,21 @@ bool KX_NetworkMessageSensor::IsPositiveTrigger() /* Integration hooks --------------------------------------------------- */ PyTypeObject KX_NetworkMessageSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageSensor", sizeof(KX_NetworkMessageSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -220,18 +223,18 @@ PyAttributeDef KX_NetworkMessageSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_NetworkMessageSensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* KX_NetworkMessageSensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int KX_NetworkMessageSensor::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int KX_NetworkMessageSensor::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h index 79e8bc910d1..ac0e880d25c 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h @@ -72,8 +72,8 @@ public: /* Python interface -------------------------------------------- */ /* ------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> KX_PYMETHOD_DOC_O(KX_NetworkMessageSensor, SetSubjectFilterText); diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index 668873883af..bd137196ac6 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -753,37 +753,40 @@ PyAttributeDef KX_BlenderMaterial::Attributes[] = { }; PyTypeObject KX_BlenderMaterial::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_BlenderMaterial", sizeof(KX_BlenderMaterial), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject KX_BlenderMaterial::Parents[] = { - &PyObjectPlus::Type, &KX_BlenderMaterial::Type, + &PyObjectPlus::Type, NULL }; -PyObject* KX_BlenderMaterial::_getattr(const char *attr) +PyObject* KX_BlenderMaterial::py_getattro(PyObject *attr) { - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_BlenderMaterial::_setattr(const char *attr, PyObject *pyvalue) +int KX_BlenderMaterial::py_setattro(PyObject *attr, PyObject *pyvalue) { - return PyObjectPlus::_setattr(attr, pyvalue); + return PyObjectPlus::py_setattro(attr, pyvalue); } diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h index 2cf623dbd85..2d9dc8fd022 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.h +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h @@ -82,8 +82,8 @@ public: ); // -------------------------------- - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *pyvalue); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); KX_PYMETHOD_DOC( KX_BlenderMaterial, getShader ); KX_PYMETHOD_DOC( KX_BlenderMaterial, getMaterialIndex ); diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index f86a5669225..57c9d30e92e 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -158,18 +158,21 @@ bool KX_CDActuator::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_CDActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SoundActuator", sizeof(KX_CDActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -212,20 +215,20 @@ int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *a return 0; } -PyObject* KX_CDActuator::_getattr(const char *attr) +PyObject* KX_CDActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_CDActuator::_setattr(const char *attr, PyObject *value) +int KX_CDActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h index 08ca6a82db3..e7683297c7a 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.h +++ b/source/gameengine/Ketsji/KX_CDActuator.h @@ -81,8 +81,8 @@ public: /* Python interface --------------------------------------------------- */ /* -------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> KX_PYMETHOD(KX_CDActuator,SetGain); diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index cb138efba89..19370d83322 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -488,18 +488,21 @@ PyAttributeDef KX_Camera::Attributes[] = { }; PyTypeObject KX_Camera::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_Camera", sizeof(KX_Camera), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -511,48 +514,51 @@ PyParentObject KX_Camera::Parents[] = { NULL }; -PyObject* KX_Camera::_getattr(const char *attr) +PyObject* KX_Camera::py_getattro(PyObject *attr) { - if (!strcmp(attr, "INSIDE")) + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "INSIDE")) return PyInt_FromLong(INSIDE); /* new ref */ - if (!strcmp(attr, "OUTSIDE")) + if (!strcmp(attr_str, "OUTSIDE")) return PyInt_FromLong(OUTSIDE); /* new ref */ - if (!strcmp(attr, "INTERSECT")) + if (!strcmp(attr_str, "INTERSECT")) return PyInt_FromLong(INTERSECT); /* new ref */ - if (!strcmp(attr, "lens")) + if (!strcmp(attr_str, "lens")) return PyFloat_FromDouble(GetLens()); /* new ref */ - if (!strcmp(attr, "near")) + if (!strcmp(attr_str, "near")) return PyFloat_FromDouble(GetCameraNear()); /* new ref */ - if (!strcmp(attr, "far")) + if (!strcmp(attr_str, "far")) return PyFloat_FromDouble(GetCameraFar()); /* new ref */ - if (!strcmp(attr, "frustum_culling")) + if (!strcmp(attr_str, "frustum_culling")) return PyInt_FromLong(m_frustum_culling); /* new ref */ - if (!strcmp(attr, "perspective")) + if (!strcmp(attr_str, "perspective")) return PyInt_FromLong(m_camdata.m_perspective); /* new ref */ - if (!strcmp(attr, "projection_matrix")) + if (!strcmp(attr_str, "projection_matrix")) return PyObjectFrom(GetProjectionMatrix()); /* new ref */ - if (!strcmp(attr, "modelview_matrix")) + if (!strcmp(attr_str, "modelview_matrix")) return PyObjectFrom(GetModelviewMatrix()); /* new ref */ - if (!strcmp(attr, "camera_to_world")) + if (!strcmp(attr_str, "camera_to_world")) return PyObjectFrom(GetCameraToWorld()); /* new ref */ - if (!strcmp(attr, "world_to_camera")) + if (!strcmp(attr_str, "world_to_camera")) return PyObjectFrom(GetWorldToCamera()); /* new ref */ - _getattr_up(KX_GameObject); + py_getattro_up(KX_GameObject); } -int KX_Camera::_setattr(const char *attr, PyObject *pyvalue) +int KX_Camera::py_setattro(PyObject *attr, PyObject *pyvalue) { + char *attr_str= PyString_AsString(attr); + if (PyInt_Check(pyvalue)) { - if (!strcmp(attr, "frustum_culling")) + if (!strcmp(attr_str, "frustum_culling")) { m_frustum_culling = PyInt_AsLong(pyvalue); return 0; } - if (!strcmp(attr, "perspective")) + if (!strcmp(attr_str, "perspective")) { m_camdata.m_perspective = PyInt_AsLong(pyvalue); return 0; @@ -561,19 +567,19 @@ int KX_Camera::_setattr(const char *attr, PyObject *pyvalue) if (PyFloat_Check(pyvalue)) { - if (!strcmp(attr, "lens")) + if (!strcmp(attr_str, "lens")) { m_camdata.m_lens = PyFloat_AsDouble(pyvalue); m_set_projection_matrix = false; return 0; } - if (!strcmp(attr, "near")) + if (!strcmp(attr_str, "near")) { m_camdata.m_clipstart = PyFloat_AsDouble(pyvalue); m_set_projection_matrix = false; return 0; } - if (!strcmp(attr, "far")) + if (!strcmp(attr_str, "far")) { m_camdata.m_clipend = PyFloat_AsDouble(pyvalue); m_set_projection_matrix = false; @@ -583,7 +589,7 @@ int KX_Camera::_setattr(const char *attr, PyObject *pyvalue) if (PyObject_IsMT_Matrix(pyvalue, 4)) { - if (!strcmp(attr, "projection_matrix")) + if (!strcmp(attr_str, "projection_matrix")) { MT_Matrix4x4 mat; if (PyMatTo(pyvalue, mat)) @@ -594,7 +600,7 @@ int KX_Camera::_setattr(const char *attr, PyObject *pyvalue) return 1; } } - return KX_GameObject::_setattr(attr, pyvalue); + return KX_GameObject::py_setattro(attr, pyvalue); } KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, sphereInsideFrustum, diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h index b80be9a7fee..499db66ab14 100644 --- a/source/gameengine/Ketsji/KX_Camera.h +++ b/source/gameengine/Ketsji/KX_Camera.h @@ -265,8 +265,8 @@ public: KX_PYMETHOD_DOC_VARARGS(KX_Camera, setViewport); KX_PYMETHOD_DOC_NOARGS(KX_Camera, setOnTop); - virtual PyObject* _getattr(const char *attr); /* lens, near, far, projection_matrix */ - virtual int _setattr(const char *attr, PyObject *pyvalue); + virtual PyObject* py_getattro(PyObject *attr); /* lens, near, far, projection_matrix */ + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); }; diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 08afa2853c3..354143f1e69 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -371,18 +371,21 @@ bool KX_CameraActuator::string2axischoice(const char *axisString) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_CameraActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_CameraActuator", sizeof(KX_CameraActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -414,27 +417,28 @@ PyAttributeDef KX_CameraActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RW("max",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_maxHeight), KX_PYATTRIBUTE_FLOAT_RW("height",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_height), KX_PYATTRIBUTE_BOOL_RW("xy",KX_CameraActuator,m_x), + KX_PYATTRIBUTE_DUMMY("object"), {NULL} }; -PyObject* KX_CameraActuator::_getattr(const char *attr) { +PyObject* KX_CameraActuator::py_getattro(PyObject *attr) { PyObject* object; - - if (!strcmp(attr, "object")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "object")) { if (!m_ob) Py_RETURN_NONE; else return m_ob->AddRef(); } - object = _getattr_self(Attributes, this, attr); + object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_CameraActuator::_setattr(const char *attr, PyObject* value) { +int KX_CameraActuator::py_setattro(PyObject *attr, PyObject* value) { int ret; - - if (!strcmp(attr, "object")) { + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "object")) { KX_GameObject *gameobj; if (!ConvertPythonToGameObject(value, &gameobj, true)) @@ -451,10 +455,10 @@ int KX_CameraActuator::_setattr(const char *attr, PyObject* value) { return 0; } - ret = _setattr_self(Attributes, this, attr, value); + ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* get obj ---------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h index 3b08536fc21..5d7473a5bf0 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.h +++ b/source/gameengine/Ketsji/KX_CameraActuator.h @@ -120,8 +120,8 @@ private : /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); /* set object to look at */ KX_PYMETHOD_DOC_O(KX_CameraActuator,SetObject); diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index 31a566f34ad..feee851bb01 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -560,18 +560,21 @@ bool KX_ConstraintActuator::IsValidMode(KX_ConstraintActuator::KX_CONSTRAINTTYPE /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_ConstraintActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_ConstraintActuator", sizeof(KX_ConstraintActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -613,8 +616,8 @@ PyAttributeDef KX_ConstraintActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_ConstraintActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); +PyObject* KX_ConstraintActuator::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IActuator); } /* 2. setDamp */ diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h index 132b8a7328a..193400fbf2b 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.h +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h @@ -142,7 +142,7 @@ protected: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD_DOC(KX_ConstraintActuator,SetDamp); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetDamp); diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index 05e677b9fd3..edd6e991e9f 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -69,18 +69,21 @@ PyObject* KX_ConstraintWrapper::PyGetConstraintId(PyObject* self, //python specific stuff PyTypeObject KX_ConstraintWrapper::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_ConstraintWrapper", sizeof(KX_ConstraintWrapper), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -89,13 +92,13 @@ PyParentObject KX_ConstraintWrapper::Parents[] = { NULL }; -PyObject* KX_ConstraintWrapper::_getattr(const char *attr) +PyObject* KX_ConstraintWrapper::py_getattro(PyObject *attr) { //here you can search for existing data members (like mass,friction etc.) - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_ConstraintWrapper::_setattr(const char *attr,PyObject* pyobj) +int KX_ConstraintWrapper::py_setattro(PyObject *attr,PyObject* pyobj) { int result = 1; @@ -117,7 +120,7 @@ int KX_ConstraintWrapper::_setattr(const char *attr,PyObject* pyobj) result = 0; } if (result) - result = PyObjectPlus::_setattr(attr,pyobj); + result = PyObjectPlus::py_setattro(attr,pyobj); return result; }; diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.h b/source/gameengine/Ketsji/KX_ConstraintWrapper.h index 36606d2d67b..6e67d842cb6 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.h +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.h @@ -35,8 +35,8 @@ class KX_ConstraintWrapper : public PyObjectPlus { Py_Header; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); public: KX_ConstraintWrapper(PHY_ConstraintType ctype,int constraintId,class PHY_IPhysicsEnvironment* physenv,PyTypeObject *T = &Type); virtual ~KX_ConstraintWrapper (); diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index 6800c75d807..a2a3d486420 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -208,18 +208,21 @@ bool KX_GameActuator::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_GameActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_GameActuator", sizeof(KX_GameActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -251,20 +254,20 @@ PyAttributeDef KX_GameActuator::Attributes[] = { }; PyObject* -KX_GameActuator::_getattr(const char *attr) +KX_GameActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_GameActuator::_setattr(const char *attr, PyObject *value) +int KX_GameActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h index ad638254c31..570cb2e68ef 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.h +++ b/source/gameengine/Ketsji/KX_GameActuator.h @@ -77,8 +77,8 @@ protected: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated functions -----> KX_PYMETHOD_DOC(KX_GameActuator,GetFile); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 2bd4b2834d1..f0c5667479c 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1180,21 +1180,21 @@ PyMappingMethods KX_GameObject::Mapping = { PyTypeObject KX_GameObject::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_GameObject", sizeof(KX_GameObject), 0, PyDestructor, 0, - __getattr, - __setattr, - 0, - __repr, 0, 0, - &Mapping, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -1420,7 +1420,9 @@ int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attr PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); - PyObject *dict= _getattr_dict(self->SCA_IObject::_getattr("__dict__"), KX_GameObject::Methods, KX_GameObject::Attributes); + PyObject *dict_str = PyString_FromString("__dict__"); + PyObject *dict= _getattr_dict(self->SCA_IObject::py_getattro(dict_str), KX_GameObject::Methods, KX_GameObject::Attributes); + Py_DECREF(dict_str); if(dict==NULL) return NULL; @@ -1441,22 +1443,22 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ return dict; } -PyObject* KX_GameObject::_getattr(const char *attr) +PyObject* KX_GameObject::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IObject); + py_getattro_up(SCA_IObject); } -int KX_GameObject::_setattr(const char *attr, PyObject *value) // _setattr method +int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro method { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IObject::_setattr(attr, value); + return SCA_IObject::py_setattro(attr, value); } PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index bada19c4895..4b136e268db 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -756,9 +756,9 @@ public: * @section Python interface functions. */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); // _setattr method - virtual PyObject* _repr(void) { return PyString_FromString(GetName().ReadPtr()); } + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method + virtual PyObject* py_repr(void) { return PyString_FromString(GetName().ReadPtr()); } KX_PYMETHOD_NOARGS(KX_GameObject,GetPosition); KX_PYMETHOD_O(KX_GameObject,SetPosition); diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 5d1d45879c9..adb9c284828 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -413,18 +413,21 @@ int KX_IpoActuator::string2mode(char* modename) { /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_IpoActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_IpoActuator", sizeof(KX_IpoActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -470,25 +473,21 @@ PyAttributeDef KX_IpoActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_IpoActuator::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* KX_IpoActuator::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - if (!strcmp(attr, "__dict__")) { /* python 3.0 uses .__dir__()*/ - return _getattr_dict(SCA_IActuator::_getattr(attr), Methods, Attributes); - } - - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_IpoActuator::_setattr(const char *attr, PyObject *value) // _setattr method +int KX_IpoActuator::py_setattro(PyObject *attr, PyObject *value) // py_setattro method { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* set --------------------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h index fa8e58ae861..7e85a28eb96 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.h +++ b/source/gameengine/Ketsji/KX_IpoActuator.h @@ -141,8 +141,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); //KX_PYMETHOD_DOC KX_PYMETHOD_DOC(KX_IpoActuator,Set); diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index f71dd69a7a3..6f9d8b0211b 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -173,59 +173,62 @@ void KX_LightObject::UnbindShadowBuffer(RAS_IRasterizer *ras) GPU_lamp_shadow_buffer_unbind(lamp); } -PyObject* KX_LightObject::_getattr(const char *attr) +PyObject* KX_LightObject::py_getattro(PyObject *attr) { - if (!strcmp(attr, "layer")) + char *attr_str= PyString_AsString(attr); + + if (!strcmp(attr_str, "layer")) return PyInt_FromLong(m_lightobj.m_layer); - if (!strcmp(attr, "energy")) + if (!strcmp(attr_str, "energy")) return PyFloat_FromDouble(m_lightobj.m_energy); - if (!strcmp(attr, "distance")) + if (!strcmp(attr_str, "distance")) return PyFloat_FromDouble(m_lightobj.m_distance); - if (!strcmp(attr, "colour") || !strcmp(attr, "color")) + if (!strcmp(attr_str, "colour") || !strcmp(attr_str, "color")) return Py_BuildValue("[fff]", m_lightobj.m_red, m_lightobj.m_green, m_lightobj.m_blue); - if (!strcmp(attr, "lin_attenuation")) + if (!strcmp(attr_str, "lin_attenuation")) return PyFloat_FromDouble(m_lightobj.m_att1); - if (!strcmp(attr, "quad_attenuation")) + if (!strcmp(attr_str, "quad_attenuation")) return PyFloat_FromDouble(m_lightobj.m_att2); - if (!strcmp(attr, "spotsize")) + if (!strcmp(attr_str, "spotsize")) return PyFloat_FromDouble(m_lightobj.m_spotsize); - if (!strcmp(attr, "spotblend")) + if (!strcmp(attr_str, "spotblend")) return PyFloat_FromDouble(m_lightobj.m_spotblend); - if (!strcmp(attr, "SPOT")) + if (!strcmp(attr_str, "SPOT")) return PyInt_FromLong(RAS_LightObject::LIGHT_SPOT); - if (!strcmp(attr, "SUN")) + if (!strcmp(attr_str, "SUN")) return PyInt_FromLong(RAS_LightObject::LIGHT_SUN); - if (!strcmp(attr, "NORMAL")) + if (!strcmp(attr_str, "NORMAL")) return PyInt_FromLong(RAS_LightObject::LIGHT_NORMAL); - if (!strcmp(attr, "type")) + if (!strcmp(attr_str, "type")) return PyInt_FromLong(m_lightobj.m_type); - _getattr_up(KX_GameObject); + py_getattro_up(KX_GameObject); } -int KX_LightObject::_setattr(const char *attr, PyObject *pyvalue) -{ +int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) +{ + char *attr_str= PyString_AsString(attr); if (PyInt_Check(pyvalue)) { int value = PyInt_AsLong(pyvalue); - if (!strcmp(attr, "layer")) + if (!strcmp(attr_str, "layer")) { m_lightobj.m_layer = value; return 0; } - if (!strcmp(attr, "type")) + if (!strcmp(attr_str, "type")) { if (value >= RAS_LightObject::LIGHT_SPOT && value <= RAS_LightObject::LIGHT_NORMAL) m_lightobj.m_type = (RAS_LightObject::LightType) value; @@ -236,37 +239,37 @@ int KX_LightObject::_setattr(const char *attr, PyObject *pyvalue) if (PyFloat_Check(pyvalue)) { float value = PyFloat_AsDouble(pyvalue); - if (!strcmp(attr, "energy")) + if (!strcmp(attr_str, "energy")) { m_lightobj.m_energy = value; return 0; } - if (!strcmp(attr, "distance")) + if (!strcmp(attr_str, "distance")) { m_lightobj.m_distance = value; return 0; } - if (!strcmp(attr, "lin_attenuation")) + if (!strcmp(attr_str, "lin_attenuation")) { m_lightobj.m_att1 = value; return 0; } - if (!strcmp(attr, "quad_attenuation")) + if (!strcmp(attr_str, "quad_attenuation")) { m_lightobj.m_att2 = value; return 0; } - if (!strcmp(attr, "spotsize")) + if (!strcmp(attr_str, "spotsize")) { m_lightobj.m_spotsize = value; return 0; } - if (!strcmp(attr, "spotblend")) + if (!strcmp(attr_str, "spotblend")) { m_lightobj.m_spotblend = value; return 0; @@ -275,7 +278,7 @@ int KX_LightObject::_setattr(const char *attr, PyObject *pyvalue) if (PySequence_Check(pyvalue)) { - if (!strcmp(attr, "colour") || !strcmp(attr, "color")) + if (!strcmp(attr_str, "colour") || !strcmp(attr_str, "color")) { MT_Vector3 color; if (PyVecTo(pyvalue, color)) @@ -289,13 +292,13 @@ int KX_LightObject::_setattr(const char *attr, PyObject *pyvalue) } } - if (!strcmp(attr, "SPOT") || !strcmp(attr, "SUN") || !strcmp(attr, "NORMAL")) + if (!strcmp(attr_str, "SPOT") || !strcmp(attr_str, "SUN") || !strcmp(attr_str, "NORMAL")) { - PyErr_Format(PyExc_RuntimeError, "Attribute %s is read only.", attr); + PyErr_Format(PyExc_RuntimeError, "Attribute %s is read only.", attr_str); return 1; } - return KX_GameObject::_setattr(attr, pyvalue); + return KX_GameObject::py_setattro(attr, pyvalue); } PyMethodDef KX_LightObject::Methods[] = { @@ -308,18 +311,21 @@ PyAttributeDef KX_LightObject::Attributes[] = { PyTypeObject KX_LightObject::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_LightObject", sizeof(KX_LightObject), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h index 98dcc8ef873..4559954c8d7 100644 --- a/source/gameengine/Ketsji/KX_Light.h +++ b/source/gameengine/Ketsji/KX_Light.h @@ -62,8 +62,8 @@ public: void UnbindShadowBuffer(class RAS_IRasterizer *ras); void Update(); - virtual PyObject* _getattr(const char *attr); /* lens, near, far, projection_matrix */ - virtual int _setattr(const char *attr, PyObject *pyvalue); + virtual PyObject* py_getattro(PyObject *attr); /* lens, near, far, projection_matrix */ + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); virtual bool IsLight(void) { return true; } }; diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index f349a6b519a..f464cb798e8 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -46,18 +46,21 @@ #include "PyObjectPlus.h" PyTypeObject KX_MeshProxy::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_MeshProxy", sizeof(KX_MeshProxy), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -94,9 +97,11 @@ void KX_MeshProxy::SetMeshModified(bool v) PyObject* -KX_MeshProxy::_getattr(const char *attr) +KX_MeshProxy::py_getattro(PyObject *attr) { - if (!strcmp(attr, "materials")) + char *attr_str= PyString_AsString(attr); + + if (!strcmp(attr_str, "materials")) { PyObject *materials = PyList_New(0); list::iterator mit = m_meshobj->GetFirstMaterial(); @@ -115,7 +120,7 @@ KX_MeshProxy::_getattr(const char *attr) } return materials; } - _getattr_up(SCA_IObject); + py_getattro_up(SCA_IObject); } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index 9e08937de07..0b9738153ff 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -54,7 +54,7 @@ public: virtual CValue* GetReplica(); // stuff for python integration - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD(KX_MeshProxy,GetNumMaterials); KX_PYMETHOD(KX_MeshProxy,GetMaterialName); KX_PYMETHOD(KX_MeshProxy,GetTextureName); diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 973dfce505b..72a0381e8dc 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -293,18 +293,21 @@ bool KX_MouseFocusSensor::ParentObjectHasFocus(void) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_MouseFocusSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_MouseFocusSensor", sizeof(KX_MouseFocusSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -333,8 +336,8 @@ PyAttributeDef KX_MouseFocusSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_MouseFocusSensor::_getattr(const char *attr) { - _getattr_up(SCA_MouseSensor); +PyObject* KX_MouseFocusSensor::py_getattro(PyObject *attr) { + py_getattro_up(SCA_MouseSensor); } diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h index 4979783032c..804f34e6076 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h @@ -87,7 +87,7 @@ class KX_MouseFocusSensor : public SCA_MouseSensor /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD_DOC_NOARGS(KX_MouseFocusSensor,GetRayTarget); KX_PYMETHOD_DOC_NOARGS(KX_MouseFocusSensor,GetRaySource); diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index 383d673b7ea..2debfd793c1 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -287,18 +287,21 @@ bool KX_NearSensor::NewHandleCollision(void* obj1,void* obj2,const PHY_CollData /* ------------------------------------------------------------------------- */ PyTypeObject KX_NearSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_NearSensor", sizeof(KX_NearSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -327,20 +330,20 @@ PyAttributeDef KX_NearSensor::Attributes[] = { }; -PyObject* KX_NearSensor::_getattr(const char *attr) +PyObject* KX_NearSensor::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(KX_TouchSensor); + py_getattro_up(KX_TouchSensor); } -int KX_NearSensor::_setattr(const char *attr, PyObject* value) +int KX_NearSensor::py_setattro(PyObject*attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return KX_TouchSensor::_setattr(attr, value); + return KX_TouchSensor::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h index ee03992e734..26c5feb4e67 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.h +++ b/source/gameengine/Ketsji/KX_NearSensor.h @@ -82,8 +82,8 @@ public: /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); //No methods diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index ca2157f2bc0..a343eeb71cc 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -277,18 +277,21 @@ bool KX_ObjectActuator::isValid(KX_ObjectActuator::KX_OBJECT_ACT_VEC_TYPE type) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_ObjectActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_ObjectActuator", sizeof(KX_ObjectActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -333,8 +336,8 @@ PyAttributeDef KX_ObjectActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_ObjectActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); +PyObject* KX_ObjectActuator::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IActuator); }; /* 1. set ------------------------------------------------------------------ */ diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.h b/source/gameengine/Ketsji/KX_ObjectActuator.h index 0331c67617c..00c8fb700ae 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.h +++ b/source/gameengine/Ketsji/KX_ObjectActuator.h @@ -153,7 +153,7 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetForce); KX_PYMETHOD(KX_ObjectActuator,SetForce); diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 4c0507cd0bf..1baf581f8a0 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -139,18 +139,21 @@ bool KX_ParentActuator::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_ParentActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_ParentActuator", sizeof(KX_ParentActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -204,20 +207,20 @@ int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE } -PyObject* KX_ParentActuator::_getattr(const char *attr) { +PyObject* KX_ParentActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_ParentActuator::_setattr(const char *attr, PyObject* value) { +int KX_ParentActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* Deprecated -----> */ diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h index 257c95c9260..f9f0b73b876 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.h +++ b/source/gameengine/Ketsji/KX_ParentActuator.h @@ -76,8 +76,8 @@ class KX_ParentActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); /* These are used to get and set m_ob */ static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 4c04a96eae2..3bef85e7f93 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -115,22 +115,27 @@ PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self, } - +PyAttributeDef KX_PhysicsObjectWrapper::Attributes[] = { + { NULL } //Sentinel +}; //python specific stuff PyTypeObject KX_PhysicsObjectWrapper::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_PhysicsObjectWrapper", sizeof(KX_PhysicsObjectWrapper), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -139,13 +144,13 @@ PyParentObject KX_PhysicsObjectWrapper::Parents[] = { NULL }; -PyObject* KX_PhysicsObjectWrapper::_getattr(const char *attr) +PyObject* KX_PhysicsObjectWrapper::py_getattro(PyObject *attr) { - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_PhysicsObjectWrapper::_setattr(const char *attr,PyObject *pyobj) +int KX_PhysicsObjectWrapper::py_setattro(PyObject *attr,PyObject *pyobj) { int result = 1; @@ -158,7 +163,7 @@ int KX_PhysicsObjectWrapper::_setattr(const char *attr,PyObject *pyobj) result = 0; } if (result) - result = PyObjectPlus::_setattr(attr,pyobj); + result = PyObjectPlus::py_setattro(attr,pyobj); return result; }; diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h index 95560698896..6dc10f030f0 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h @@ -36,8 +36,8 @@ class KX_PhysicsObjectWrapper : public PyObjectPlus { Py_Header; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); public: KX_PhysicsObjectWrapper(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsEnvironment* physenv,PyTypeObject *T = &Type); virtual ~KX_PhysicsObjectWrapper(); diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index 27fbe8b19f3..6f74c3ed3f9 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -39,18 +39,21 @@ #include "KX_PyMath.h" PyTypeObject KX_PolyProxy::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_PolyProxy", sizeof(KX_PolyProxy), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -78,17 +81,18 @@ PyAttributeDef KX_PolyProxy::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_PolyProxy::_getattr(const char *attr) +PyObject* KX_PolyProxy::py_getattro(PyObject *attr) { - if (!strcmp(attr, "matname")) + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "matname")) { return PyString_FromString(m_polygon->GetMaterial()->GetPolyMaterial()->GetMaterialName()); } - if (!strcmp(attr, "texture")) + if (!strcmp(attr_str, "texture")) { return PyString_FromString(m_polygon->GetMaterial()->GetPolyMaterial()->GetTextureName()); } - if (!strcmp(attr, "material")) + if (!strcmp(attr_str, "material")) { RAS_IPolyMaterial *polymat = m_polygon->GetMaterial()->GetPolyMaterial(); if(polymat->GetFlag() & RAS_BLENDERMAT) @@ -104,7 +108,7 @@ PyObject* KX_PolyProxy::_getattr(const char *attr) return mat; } } - if (!strcmp(attr, "matid")) + if (!strcmp(attr_str, "matid")) { // we'll have to scan through the material bucket of the mes and compare with // the one of the polygon @@ -119,31 +123,31 @@ PyObject* KX_PolyProxy::_getattr(const char *attr) } return PyInt_FromLong(matid); } - if (!strcmp(attr, "v1")) + if (!strcmp(attr_str, "v1")) { return PyInt_FromLong(m_polygon->GetVertexOffset(0)); } - if (!strcmp(attr, "v2")) + if (!strcmp(attr_str, "v2")) { return PyInt_FromLong(m_polygon->GetVertexOffset(1)); } - if (!strcmp(attr, "v3")) + if (!strcmp(attr_str, "v3")) { return PyInt_FromLong(m_polygon->GetVertexOffset(2)); } - if (!strcmp(attr, "v4")) + if (!strcmp(attr_str, "v4")) { return PyInt_FromLong(((m_polygon->VertexCount()>3)?m_polygon->GetVertexOffset(3):0)); } - if (!strcmp(attr, "visible")) + if (!strcmp(attr_str, "visible")) { return PyInt_FromLong(m_polygon->IsVisible()); } - if (!strcmp(attr, "collide")) + if (!strcmp(attr_str, "collide")) { return PyInt_FromLong(m_polygon->IsCollider()); } - _getattr_up(SCA_IObject); + py_getattro_up(SCA_IObject); } KX_PolyProxy::KX_PolyProxy(const RAS_MeshObject*mesh, RAS_Polygon* polygon) diff --git a/source/gameengine/Ketsji/KX_PolyProxy.h b/source/gameengine/Ketsji/KX_PolyProxy.h index 9b548f9490d..a549d9841cc 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.h +++ b/source/gameengine/Ketsji/KX_PolyProxy.h @@ -53,7 +53,7 @@ public: // stuff for python integration - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD_DOC_NOARGS(KX_PolyProxy,getMaterialIndex) KX_PYMETHOD_DOC_NOARGS(KX_PolyProxy,getNumVertex) diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index 9e979144c47..6b9a6201d5c 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -185,38 +185,42 @@ PyAttributeDef KX_PolygonMaterial::Attributes[] = { }; PyTypeObject KX_PolygonMaterial::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_PolygonMaterial", sizeof(KX_PolygonMaterial), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject KX_PolygonMaterial::Parents[] = { - &PyObjectPlus::Type, &KX_PolygonMaterial::Type, + &PyObjectPlus::Type, NULL }; -PyObject* KX_PolygonMaterial::_getattr(const char *attr) +PyObject* KX_PolygonMaterial::py_getattro(PyObject *attr) { - if (!strcmp(attr, "texture")) + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "texture")) return PyString_FromString(m_texturename.ReadPtr()); - if (!strcmp(attr, "material")) + if (!strcmp(attr_str, "material")) return PyString_FromString(m_materialname.ReadPtr()); - if (!strcmp(attr, "tface")) + if (!strcmp(attr_str, "tface")) return PyCObject_FromVoidPtr(m_tface, NULL); - if (!strcmp(attr, "gl_texture")) + if (!strcmp(attr_str, "gl_texture")) { Image *ima = m_tface->tpage; int bind = 0; @@ -226,49 +230,50 @@ PyObject* KX_PolygonMaterial::_getattr(const char *attr) return PyInt_FromLong(bind); } - if (!strcmp(attr, "tile")) + if (!strcmp(attr_str, "tile")) return PyInt_FromLong(m_tile); - if (!strcmp(attr, "tilexrep")) + if (!strcmp(attr_str, "tilexrep")) return PyInt_FromLong(m_tilexrep); - if (!strcmp(attr, "tileyrep")) + if (!strcmp(attr_str, "tileyrep")) return PyInt_FromLong(m_tileyrep); - if (!strcmp(attr, "drawingmode")) + if (!strcmp(attr_str, "drawingmode")) return PyInt_FromLong(m_drawingmode); - if (!strcmp(attr, "transparent")) + if (!strcmp(attr_str, "transparent")) return PyInt_FromLong(m_alpha); - if (!strcmp(attr, "zsort")) + if (!strcmp(attr_str, "zsort")) return PyInt_FromLong(m_zsort); - if (!strcmp(attr, "lightlayer")) + if (!strcmp(attr_str, "lightlayer")) return PyInt_FromLong(m_lightlayer); - if (!strcmp(attr, "triangle")) + if (!strcmp(attr_str, "triangle")) // deprecated, triangle/quads shouldn't have been a material property return 0; - if (!strcmp(attr, "diffuse")) + if (!strcmp(attr_str, "diffuse")) return PyObjectFrom(m_diffuse); - if (!strcmp(attr, "shininess")) + if (!strcmp(attr_str, "shininess")) return PyFloat_FromDouble(m_shininess); - if (!strcmp(attr, "specular")) + if (!strcmp(attr_str, "specular")) return PyObjectFrom(m_specular); - if (!strcmp(attr, "specularity")) + if (!strcmp(attr_str, "specularity")) return PyFloat_FromDouble(m_specularity); - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_PolygonMaterial::_setattr(const char *attr, PyObject *pyvalue) +int KX_PolygonMaterial::py_setattro(PyObject *attr, PyObject *pyvalue) { + char *attr_str= PyString_AsString(attr); if (PyFloat_Check(pyvalue)) { float value = PyFloat_AsDouble(pyvalue); - if (!strcmp(attr, "shininess")) + if (!strcmp(attr_str, "shininess")) { m_shininess = value; return 0; } - if (!strcmp(attr, "specularity")) + if (!strcmp(attr_str, "specularity")) { m_specularity = value; return 0; @@ -278,50 +283,50 @@ int KX_PolygonMaterial::_setattr(const char *attr, PyObject *pyvalue) if (PyInt_Check(pyvalue)) { int value = PyInt_AsLong(pyvalue); - if (!strcmp(attr, "tile")) + if (!strcmp(attr_str, "tile")) { m_tile = value; return 0; } - if (!strcmp(attr, "tilexrep")) + if (!strcmp(attr_str, "tilexrep")) { m_tilexrep = value; return 0; } - if (!strcmp(attr, "tileyrep")) + if (!strcmp(attr_str, "tileyrep")) { m_tileyrep = value; return 0; } - if (!strcmp(attr, "drawingmode")) + if (!strcmp(attr_str, "drawingmode")) { m_drawingmode = value; return 0; } - if (!strcmp(attr, "transparent")) + if (!strcmp(attr_str, "transparent")) { m_alpha = value; return 0; } - if (!strcmp(attr, "zsort")) + if (!strcmp(attr_str, "zsort")) { m_zsort = value; return 0; } - if (!strcmp(attr, "lightlayer")) + if (!strcmp(attr_str, "lightlayer")) { m_lightlayer = value; return 0; } // This probably won't work... - if (!strcmp(attr, "triangle")) + if (!strcmp(attr_str, "triangle")) { // deprecated, triangle/quads shouldn't have been a material property return 0; @@ -335,13 +340,13 @@ int KX_PolygonMaterial::_setattr(const char *attr, PyObject *pyvalue) MT_Vector3 value; if (PyVecTo(pyvalue, value)) { - if (!strcmp(attr, "diffuse")) + if (!strcmp(attr_str, "diffuse")) { m_diffuse = value; return 0; } - if (!strcmp(attr, "specular")) + if (!strcmp(attr_str, "specular")) { m_specular = value; return 0; @@ -350,7 +355,7 @@ int KX_PolygonMaterial::_setattr(const char *attr, PyObject *pyvalue) } } - return PyObjectPlus::_setattr(attr, pyvalue); + return PyObjectPlus::py_setattro(attr, pyvalue); } KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setCustomMaterial, "setCustomMaterial(material)") diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h index a3ef4ca51ef..f3eb1979f34 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.h +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h @@ -115,8 +115,8 @@ public: KX_PYMETHOD_DOC(KX_PolygonMaterial, setCustomMaterial); KX_PYMETHOD_DOC(KX_PolygonMaterial, loadProgram); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *pyvalue); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); }; #endif // __KX_POLYGONMATERIAL_H__ diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 7ddfbb0d5fe..f065eb29c44 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -71,7 +71,9 @@ #include "KX_PyMath.h" -#include "PyObjectPlus.h" +#include "PyObjectPlus.h" + +#include "KX_PythonInitTypes.h" extern "C" { #include "Mathutils.h" // Blender.Mathutils module copied here so the blenderlayer can use. @@ -1257,6 +1259,7 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur //importBlenderModules() setSandbox(level); + initPyTypes(); PyObject* moduleobj = PyImport_AddModule("__main__"); return PyModule_GetDict(moduleobj); @@ -1278,6 +1281,7 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev Py_FrozenFlag=1; setSandbox(level); + initPyTypes(); PyObject* moduleobj = PyImport_AddModule("__main__"); return PyModule_GetDict(moduleobj); diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp new file mode 100644 index 00000000000..e2ff4ced122 --- /dev/null +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -0,0 +1,204 @@ +/** + * $Id: PyObjectPlus.h 19511 2009-04-03 02:16:56Z campbellbarton $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + + + +#ifndef _adr_py_init_types_h_ // only process once, +#define _adr_py_init_types_h_ // even if multiply included + +/* Only for Class::Parents */ +#include "BL_BlenderShader.h" +#include "BL_ShapeActionActuator.h" +#include "KX_BlenderMaterial.h" +#include "KX_CDActuator.h" +#include "KX_CameraActuator.h" +#include "KX_ConstraintActuator.h" +#include "KX_ConstraintWrapper.h" +#include "KX_GameActuator.h" +#include "KX_Light.h" +#include "KX_MeshProxy.h" +#include "KX_MouseFocusSensor.h" +#include "KX_NetworkMessageActuator.h" +#include "KX_NetworkMessageSensor.h" +#include "KX_ObjectActuator.h" +#include "KX_ParentActuator.h" +#include "KX_PhysicsObjectWrapper.h" +#include "KX_PolyProxy.h" +#include "KX_PolygonMaterial.h" +#include "KX_SCA_AddObjectActuator.h" +#include "KX_SCA_EndObjectActuator.h" +#include "KX_SCA_ReplaceMeshActuator.h" +#include "KX_SceneActuator.h" +#include "KX_StateActuator.h" +#include "KX_TrackToActuator.h" +#include "KX_VehicleWrapper.h" +#include "KX_VertexProxy.h" +#include "SCA_2DFilterActuator.h" +#include "SCA_ANDController.h" +#include "SCA_ActuatorSensor.h" +#include "SCA_AlwaysSensor.h" +#include "SCA_DelaySensor.h" +#include "SCA_JoystickSensor.h" +#include "SCA_KeyboardSensor.h" +#include "SCA_MouseSensor.h" +#include "SCA_NANDController.h" +#include "SCA_NORController.h" +#include "SCA_ORController.h" +#include "SCA_RandomSensor.h" +#include "SCA_XNORController.h" +#include "SCA_XORController.h" +#include "KX_IpoActuator.h" +#include "KX_NearSensor.h" +#include "KX_RadarSensor.h" +#include "KX_RaySensor.h" +#include "KX_SCA_DynamicActuator.h" +#include "KX_SoundActuator.h" +#include "KX_TouchSensor.h" +#include "SCA_PropertySensor.h" +#include "SCA_PythonController.h" +#include "SCA_RandomActuator.h" + + +void initPyObjectPlusType(PyTypeObject **parents) +{ + int i; + + for (i=0; parents[i]; i++) { + if(PyType_Ready(parents[i]) < 0) { + /* This is very very unlikely */ + printf("Error, pytype could not initialize, Blender may crash \"%s\"\n", parents[i]->tp_name); + return; + } + +#if 0 + PyObject_Print((PyObject *)parents[i], stderr, 0); + fprintf(stderr, "\n"); + PyObject_Print(parents[i]->tp_dict, stderr, 0); + fprintf(stderr, "\n\n"); +#endif + + } + + PyObject *dict= NULL; + + while(i) { + i--; + + if (dict) { + PyDict_Update(parents[i]->tp_dict, dict); + } + dict= parents[i]->tp_dict; + +#if 1 + PyObject_Print((PyObject *)parents[i], stderr, 0); + fprintf(stderr, "\n"); + PyObject_Print(parents[i]->tp_dict, stderr, 0); + fprintf(stderr, "\n\n"); +#endif + + } +} + + + + +void initPyTypes(void) +{ + +/* + initPyObjectPlusType(BL_ActionActuator::Parents); + ..... +*/ + + /* For now just do PyType_Ready */ + + PyType_Ready(&BL_ActionActuator::Type); + PyType_Ready(&BL_Shader::Type); + PyType_Ready(&BL_ShapeActionActuator::Type); + PyType_Ready(&CListValue::Type); + PyType_Ready(&CValue::Type); + PyType_Ready(&KX_BlenderMaterial::Type); + PyType_Ready(&KX_CDActuator::Type); + PyType_Ready(&KX_Camera::Type); + PyType_Ready(&KX_CameraActuator::Type); + PyType_Ready(&KX_ConstraintActuator::Type); + PyType_Ready(&KX_ConstraintWrapper::Type); + PyType_Ready(&KX_GameActuator::Type); + PyType_Ready(&KX_GameObject::Type); + PyType_Ready(&KX_IpoActuator::Type); + PyType_Ready(&KX_LightObject::Type); + PyType_Ready(&KX_MeshProxy::Type); + PyType_Ready(&KX_MouseFocusSensor::Type); + PyType_Ready(&KX_NearSensor::Type); + PyType_Ready(&KX_NetworkMessageActuator::Type); + PyType_Ready(&KX_NetworkMessageSensor::Type); + PyType_Ready(&KX_ObjectActuator::Type); + PyType_Ready(&KX_ParentActuator::Type); + PyType_Ready(&KX_PhysicsObjectWrapper::Type); + PyType_Ready(&KX_PolyProxy::Type); + PyType_Ready(&KX_PolygonMaterial::Type); + PyType_Ready(&KX_RadarSensor::Type); + PyType_Ready(&KX_RaySensor::Type); + PyType_Ready(&KX_SCA_AddObjectActuator::Type); + PyType_Ready(&KX_SCA_DynamicActuator::Type); + PyType_Ready(&KX_SCA_EndObjectActuator::Type); + PyType_Ready(&KX_SCA_ReplaceMeshActuator::Type); + PyType_Ready(&KX_Scene::Type); + PyType_Ready(&KX_SceneActuator::Type); + PyType_Ready(&KX_SoundActuator::Type); + PyType_Ready(&KX_StateActuator::Type); + PyType_Ready(&KX_TouchSensor::Type); + PyType_Ready(&KX_TrackToActuator::Type); + PyType_Ready(&KX_VehicleWrapper::Type); + PyType_Ready(&KX_VertexProxy::Type); + PyType_Ready(&PyObjectPlus::Type); + PyType_Ready(&SCA_2DFilterActuator::Type); + PyType_Ready(&SCA_ANDController::Type); + PyType_Ready(&SCA_ActuatorSensor::Type); + PyType_Ready(&SCA_AlwaysSensor::Type); + PyType_Ready(&SCA_DelaySensor::Type); + PyType_Ready(&SCA_ILogicBrick::Type); + PyType_Ready(&SCA_IObject::Type); + PyType_Ready(&SCA_ISensor::Type); + PyType_Ready(&SCA_JoystickSensor::Type); + PyType_Ready(&SCA_KeyboardSensor::Type); + PyType_Ready(&SCA_MouseSensor::Type); + PyType_Ready(&SCA_NANDController::Type); + PyType_Ready(&SCA_NORController::Type); + PyType_Ready(&SCA_ORController::Type); + PyType_Ready(&SCA_PropertyActuator::Type); + PyType_Ready(&SCA_PropertySensor::Type); + PyType_Ready(&SCA_PythonController::Type); + PyType_Ready(&SCA_RandomActuator::Type); + PyType_Ready(&SCA_RandomSensor::Type); + PyType_Ready(&SCA_XNORController::Type); + PyType_Ready(&SCA_XORController::Type); +} + +#endif \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.h b/source/gameengine/Ketsji/KX_PythonInitTypes.h new file mode 100644 index 00000000000..b30f0334b6e --- /dev/null +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.h @@ -0,0 +1,35 @@ +/** + * $Id: PyObjectPlus.h 19511 2009-04-03 02:16:56Z campbellbarton $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef _adr_py_init_types_h_ // only process once, +#define _adr_py_init_types_h_ // even if multiply included + +void initPyTypes(void); + +#endif diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index 91ad60e8cee..77cde79b54d 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -250,18 +250,21 @@ PyObject* KX_RadarSensor::PyGetConeHeight(PyObject* self) { /* Python Integration Hooks */ /* ------------------------------------------------------------------------- */ PyTypeObject KX_RadarSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_RadarSensor", sizeof(KX_RadarSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -295,20 +298,20 @@ PyAttributeDef KX_RadarSensor::Attributes[] = { {NULL} //Sentinel }; -PyObject* KX_RadarSensor::_getattr(const char *attr) +PyObject* KX_RadarSensor::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(KX_NearSensor); + py_getattro_up(KX_NearSensor); } -int KX_RadarSensor::_setattr(const char *attr, PyObject* value) +int KX_RadarSensor::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return KX_NearSensor::_setattr(attr, value); + return KX_NearSensor::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h index 6dfe0c42f5d..c3a941696ce 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.h +++ b/source/gameengine/Ketsji/KX_RadarSensor.h @@ -89,8 +89,8 @@ public: KX_RADAR_AXIS_NEG_Z }; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); //Deprecated -----> KX_PYMETHOD_DOC_NOARGS(KX_RadarSensor,GetConeOrigin); diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index fdaf48218b3..cdcb5d74f30 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -321,18 +321,21 @@ bool KX_RaySensor::Evaluate(CValue* event) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_RaySensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_RaySensor", sizeof(KX_RaySensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -442,18 +445,18 @@ PyObject* KX_RaySensor::PyGetHitNormal(PyObject* self) -PyObject* KX_RaySensor::_getattr(const char *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); +PyObject* KX_RaySensor::py_getattro(PyObject *attr) { + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_ISensor); + py_getattro_up(SCA_ISensor); } -int KX_RaySensor::_setattr(const char *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); +int KX_RaySensor::py_setattro(PyObject *attr, PyObject *value) { + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } // <----- Deprecated \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h index e7901a0d10d..a5d7d15c60c 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.h +++ b/source/gameengine/Ketsji/KX_RaySensor.h @@ -86,8 +86,8 @@ public: }; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> KX_PYMETHOD_DOC_NOARGS(KX_RaySensor,GetHitObject); diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 33e74d4dc5a..1dd642e0966 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -167,22 +167,26 @@ void KX_SCA_AddObjectActuator::Relink(GEN_Map *obj_map) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_SCA_AddObjectActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SCA_AddObjectActuator", sizeof(KX_SCA_AddObjectActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject KX_SCA_AddObjectActuator::Parents[] = { + &KX_SCA_AddObjectActuator::Type, &SCA_IActuator::Type, &SCA_ILogicBrick::Type, &CValue::Type, @@ -251,20 +255,20 @@ PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, con } -PyObject* KX_SCA_AddObjectActuator::_getattr(const char *attr) +PyObject* KX_SCA_AddObjectActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_SCA_AddObjectActuator::_setattr(const char *attr, PyObject* value) +int KX_SCA_AddObjectActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* 1. setObject */ diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h index c8cc7113347..4ece5a6d83b 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h @@ -110,8 +110,8 @@ public: virtual bool Update(); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); SCA_IObject* GetLastCreatedObject( diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index 7dd5301385c..ae21209fc4e 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -51,18 +51,21 @@ PyTypeObject KX_SCA_DynamicActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SCA_DynamicActuator", sizeof(KX_SCA_DynamicActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -89,20 +92,20 @@ PyAttributeDef KX_SCA_DynamicActuator::Attributes[] = { }; -PyObject* KX_SCA_DynamicActuator::_getattr(const char *attr) +PyObject* KX_SCA_DynamicActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_SCA_DynamicActuator::_setattr(const char *attr, PyObject* value) +int KX_SCA_DynamicActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h index 082fcd72035..99855124bdb 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h @@ -74,8 +74,8 @@ class KX_SCA_DynamicActuator : public SCA_IActuator }; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. setOperation */ KX_PYMETHOD_DOC(KX_SCA_DynamicActuator,setOperation); diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp index 6f0bd65ce43..0db9e1c4930 100644 --- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp @@ -94,18 +94,21 @@ CValue* KX_SCA_EndObjectActuator::GetReplica() /* ------------------------------------------------------------------------- */ PyTypeObject KX_SCA_EndObjectActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SCA_EndObjectActuator", sizeof(KX_SCA_EndObjectActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -128,9 +131,9 @@ PyAttributeDef KX_SCA_EndObjectActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_SCA_EndObjectActuator::_getattr(const char *attr) +PyObject* KX_SCA_EndObjectActuator::py_getattro(PyObject *attr) { - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } /* eof */ diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h index 12118743f0a..2940246f443 100644 --- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h @@ -64,7 +64,7 @@ class KX_SCA_EndObjectActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); }; /* end of class KX_EditObjectActuator : public SCA_PropertyActuator */ diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index c892af71159..0cac07b4585 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -53,22 +53,26 @@ PyTypeObject KX_SCA_ReplaceMeshActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SCA_ReplaceMeshActuator", sizeof(KX_SCA_ReplaceMeshActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject KX_SCA_ReplaceMeshActuator::Parents[] = { + &KX_SCA_ReplaceMeshActuator::Type, &SCA_IActuator::Type, &SCA_ILogicBrick::Type, &CValue::Type, @@ -90,20 +94,20 @@ PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_SCA_ReplaceMeshActuator::_getattr(const char *attr) +PyObject* KX_SCA_ReplaceMeshActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_SCA_ReplaceMeshActuator::_setattr(const char *attr, PyObject* value) +int KX_SCA_ReplaceMeshActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h index ba43975bd51..7a18df2356d 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h @@ -71,8 +71,8 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator void InstantReplaceMesh(); - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); static PyObject* pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 67f6c567549..94ea234f1bf 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1517,18 +1517,21 @@ double KX_Scene::getSuspendedDelta() //Python PyTypeObject KX_Scene::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_Scene", sizeof(KX_Scene), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -1569,8 +1572,10 @@ PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_ PyObject* KX_Scene::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_Scene* self= static_cast(self_v); - /* Useually done by _getattr_up but in this case we want to include m_attrlist dict */ - PyObject *dict= _getattr_dict(self->PyObjectPlus::_getattr("__dict__"), KX_Scene::Methods, KX_Scene::Attributes); + /* Useually done by py_getattro_up but in this case we want to include m_attrlist dict */ + PyObject *dict_str= PyString_FromString("__dict__"); + PyObject *dict= _getattr_dict(self->PyObjectPlus::py_getattro(dict_str), KX_Scene::Methods, KX_Scene::Attributes); + Py_DECREF(dict_str); PyDict_Update(dict, self->m_attrlist); return dict; @@ -1587,34 +1592,34 @@ PyAttributeDef KX_Scene::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_Scene::_getattr(const char *attr) +PyObject* KX_Scene::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - object = PyDict_GetItemString(m_attrlist, attr); + object = PyDict_GetItem(m_attrlist, attr); if (object) { Py_INCREF(object); return object; } - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_Scene::_delattr(const char *attr) +int KX_Scene::py_delattro(PyObject *attr) { - PyDict_DelItemString(m_attrlist, attr); + PyDict_DelItem(m_attrlist, attr); return 0; } -int KX_Scene::_setattr(const char *attr, PyObject *pyvalue) +int KX_Scene::py_setattro(PyObject *attr, PyObject *pyvalue) { - if (!PyDict_SetItemString(m_attrlist, attr, pyvalue)) + if (!PyDict_SetItem(m_attrlist, attr, pyvalue)) return 0; - return PyObjectPlus::_setattr(attr, pyvalue); + return PyObjectPlus::py_setattro(attr, pyvalue); } KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getLightList, diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index d1da44c600e..df51fcec8f7 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -574,10 +574,10 @@ public: static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - virtual PyObject* _getattr(const char *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */ - virtual int _setattr(const char *attr, PyObject *pyvalue); - virtual int _delattr(const char *attr); - virtual PyObject* _repr(void) { return PyString_FromString(GetName().ReadPtr()); } + virtual PyObject* py_getattro(PyObject *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */ + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); + virtual int py_delattro(PyObject *attr); + virtual PyObject* py_repr(void) { return PyString_FromString(GetName().ReadPtr()); } /** diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 595d2cb4070..40a2ff2ef66 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -226,18 +226,21 @@ KX_Scene* KX_SceneActuator::FindScene(char * sceneName) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_SceneActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SceneActuator", sizeof(KX_SceneActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -273,20 +276,20 @@ PyAttributeDef KX_SceneActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_SceneActuator::_getattr(const char *attr) +PyObject* KX_SceneActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_SceneActuator::_setattr(const char *attr, PyObject *value) +int KX_SceneActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } PyObject* KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h index 83b0d63bcd2..f1904f95c2a 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.h +++ b/source/gameengine/Ketsji/KX_SceneActuator.h @@ -92,8 +92,8 @@ class KX_SceneActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. set */ /* Removed */ diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index f6c0283d49f..b8d660daa08 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -233,18 +233,21 @@ void KX_SoundActuator::setSoundObject(class SND_SoundObject* soundobject) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_SoundActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_SoundActuator", sizeof(KX_SoundActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -286,9 +289,9 @@ PyAttributeDef KX_SoundActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_SoundActuator::_getattr(const char *attr) +PyObject* KX_SoundActuator::py_getattro(PyObject *attr) { - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h index 68d5b792729..3e4a4168434 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.h +++ b/source/gameengine/Ketsji/KX_SoundActuator.h @@ -80,7 +80,7 @@ public: /* Python interface --------------------------------------------------- */ /* -------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD(KX_SoundActuator,SetFilename); KX_PYMETHOD(KX_SoundActuator,GetFilename); diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index e48c4209923..31457230f60 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -109,18 +109,21 @@ KX_StateActuator::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_StateActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_StateActuator", sizeof(KX_StateActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -146,9 +149,9 @@ PyAttributeDef KX_StateActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_StateActuator::_getattr(const char *attr) +PyObject* KX_StateActuator::py_getattro(PyObject *attr) { - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); }; diff --git a/source/gameengine/Ketsji/KX_StateActuator.h b/source/gameengine/Ketsji/KX_StateActuator.h index 023b8993d7c..b6f1acf4a00 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.h +++ b/source/gameengine/Ketsji/KX_StateActuator.h @@ -73,7 +73,7 @@ class KX_StateActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); //KX_PYMETHOD_DOC KX_PYMETHOD_DOC(KX_StateActuator,SetOperation); KX_PYMETHOD_DOC(KX_StateActuator,SetMask); diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index b1c22a86f3d..49d3d20dc3d 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -242,18 +242,21 @@ bool KX_TouchSensor::NewHandleCollision(void*object1,void*object2,const PHY_Coll /* ------------------------------------------------------------------------- */ /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_TouchSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_TouchSensor", sizeof(KX_TouchSensor), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -288,29 +291,31 @@ PyAttributeDef KX_TouchSensor::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_TouchSensor::_getattr(const char *attr) +PyObject* KX_TouchSensor::py_getattro(PyObject *attr) { - if (!strcmp(attr, "objectHit")) { + PyObject* object= py_getattro_self(Attributes, this, attr); + if (object != NULL) + return object; + + char *attr_str= PyString_AsString(attr); + if (!strcmp(attr_str, "objectHit")) { if (m_hitObject) return m_hitObject->AddRef(); else Py_RETURN_NONE; } - if (!strcmp(attr, "objectHitList")) { + if (!strcmp(attr_str, "objectHitList")) { return m_colliders->AddRef(); } - - PyObject* object= _getattr_self(Attributes, this, attr); - if (object != NULL) - return object; - _getattr_up(SCA_ISensor); + + py_getattro_up(SCA_ISensor); } -int KX_TouchSensor::_setattr(const char *attr, PyObject *value) +int KX_TouchSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_ISensor::_setattr(attr, value); + return SCA_ISensor::py_setattro(attr, value); } /* Python API */ diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h index 18ce9406a9b..93fadef4abd 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.h +++ b/source/gameengine/Ketsji/KX_TouchSensor.h @@ -120,8 +120,8 @@ public: /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); //Deprecated -----> /* 1. setProperty */ diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 575abc5d748..58e17785b81 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -425,18 +425,21 @@ bool KX_TrackToActuator::Update(double curtime, bool frame) /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_TrackToActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_TrackToActuator", sizeof(KX_TrackToActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -501,20 +504,20 @@ int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUT } -PyObject* KX_TrackToActuator::_getattr(const char *attr) +PyObject* KX_TrackToActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_TrackToActuator::_setattr(const char *attr, PyObject* value) +int KX_TrackToActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } /* 1. setObject */ diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h index f81958dfb33..cc4049e19a8 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.h +++ b/source/gameengine/Ketsji/KX_TrackToActuator.h @@ -72,8 +72,8 @@ class KX_TrackToActuator : public SCA_IActuator virtual bool Update(double curtime, bool frame); /* Python part */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject* value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); /* These are used to get and set m_ob */ static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 4960228056a..6afea4d3227 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -299,33 +299,37 @@ PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* self, //python specific stuff PyTypeObject KX_VehicleWrapper::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_VehicleWrapper", sizeof(KX_VehicleWrapper), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; PyParentObject KX_VehicleWrapper::Parents[] = { &KX_VehicleWrapper::Type, + &PyObjectPlus::Type, NULL }; -PyObject* KX_VehicleWrapper::_getattr(const char *attr) +PyObject* KX_VehicleWrapper::py_getattro(PyObject *attr) { //here you can search for existing data members (like mass,friction etc.) - _getattr_up(PyObjectPlus); + py_getattro_up(PyObjectPlus); } -int KX_VehicleWrapper::_setattr(const char *attr,PyObject* pyobj) +int KX_VehicleWrapper::py_setattro(PyObject *attr,PyObject* pyobj) { PyTypeObject* type = pyobj->ob_type; @@ -349,7 +353,7 @@ int KX_VehicleWrapper::_setattr(const char *attr,PyObject* pyobj) result = 0; } if (result) - result = PyObjectPlus::_setattr(attr,pyobj); + result = PyObjectPlus::py_setattro(attr,pyobj); return result; }; diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.h b/source/gameengine/Ketsji/KX_VehicleWrapper.h index cad926ce85a..4e03183bf85 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.h +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.h @@ -12,8 +12,8 @@ class PHY_IMotionState; class KX_VehicleWrapper : public PyObjectPlus { Py_Header; - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); std::vector m_motionStates; diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index d7b5203795d..8c8291ef791 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -37,18 +37,21 @@ #include "KX_PyMath.h" PyTypeObject KX_VertexProxy::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_VertexProxy", sizeof(KX_VertexProxy), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -80,43 +83,43 @@ PyAttributeDef KX_VertexProxy::Attributes[] = { }; PyObject* -KX_VertexProxy::_getattr(const char *attr) +KX_VertexProxy::py_getattro(PyObject *attr) { - - if (attr[1]=='\0') { // Group single letters + char *attr_str= PyString_AsString(attr); + if (attr_str[1]=='\0') { // Group single letters // pos - if (attr[0]=='x') + if (attr_str[0]=='x') return PyFloat_FromDouble(m_vertex->getXYZ()[0]); - if (attr[0]=='y') + if (attr_str[0]=='y') return PyFloat_FromDouble(m_vertex->getXYZ()[1]); - if (attr[0]=='z') + if (attr_str[0]=='z') return PyFloat_FromDouble(m_vertex->getXYZ()[2]); // Col - if (attr[0]=='r') + if (attr_str[0]=='r') return PyFloat_FromDouble(m_vertex->getRGBA()[0]/255.0); - if (attr[0]=='g') + if (attr_str[0]=='g') return PyFloat_FromDouble(m_vertex->getRGBA()[1]/255.0); - if (attr[0]=='b') + if (attr_str[0]=='b') return PyFloat_FromDouble(m_vertex->getRGBA()[2]/255.0); - if (attr[0]=='a') + if (attr_str[0]=='a') return PyFloat_FromDouble(m_vertex->getRGBA()[3]/255.0); // UV - if (attr[0]=='u') + if (attr_str[0]=='u') return PyFloat_FromDouble(m_vertex->getUV1()[0]); - if (attr[0]=='v') + if (attr_str[0]=='v') return PyFloat_FromDouble(m_vertex->getUV1()[1]); } - if (!strcmp(attr, "XYZ")) + if (!strcmp(attr_str, "XYZ")) return PyObjectFrom(MT_Vector3(m_vertex->getXYZ())); - if (!strcmp(attr, "UV")) + if (!strcmp(attr_str, "UV")) return PyObjectFrom(MT_Point2(m_vertex->getUV1())); - if (!strcmp(attr, "color") || !strcmp(attr, "colour")) + if (!strcmp(attr_str, "color") || !strcmp(attr_str, "colour")) { const unsigned char *colp = m_vertex->getRGBA(); MT_Vector4 color(colp[0], colp[1], colp[2], colp[3]); @@ -124,19 +127,20 @@ KX_VertexProxy::_getattr(const char *attr) return PyObjectFrom(color); } - if (!strcmp(attr, "normal")) + if (!strcmp(attr_str, "normal")) { return PyObjectFrom(MT_Vector3(m_vertex->getNormal())); } - _getattr_up(SCA_IObject); + py_getattro_up(SCA_IObject); } -int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) +int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) { + char *attr_str= PyString_AsString(attr); if (PySequence_Check(pyvalue)) { - if (!strcmp(attr, "XYZ")) + if (!strcmp(attr_str, "XYZ")) { MT_Point3 vec; if (PyVecTo(pyvalue, vec)) @@ -148,7 +152,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 1; } - if (!strcmp(attr, "UV")) + if (!strcmp(attr_str, "UV")) { MT_Point2 vec; if (PyVecTo(pyvalue, vec)) @@ -160,7 +164,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 1; } - if (!strcmp(attr, "color") || !strcmp(attr, "colour")) + if (!strcmp(attr_str, "color") || !strcmp(attr_str, "colour")) { MT_Vector4 vec; if (PyVecTo(pyvalue, vec)) @@ -172,7 +176,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 1; } - if (!strcmp(attr, "normal")) + if (!strcmp(attr_str, "normal")) { MT_Vector3 vec; if (PyVecTo(pyvalue, vec)) @@ -190,7 +194,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) float val = PyFloat_AsDouble(pyvalue); // pos MT_Point3 pos(m_vertex->getXYZ()); - if (!strcmp(attr, "x")) + if (!strcmp(attr_str, "x")) { pos.x() = val; m_vertex->SetXYZ(pos); @@ -198,7 +202,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 0; } - if (!strcmp(attr, "y")) + if (!strcmp(attr_str, "y")) { pos.y() = val; m_vertex->SetXYZ(pos); @@ -206,7 +210,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 0; } - if (!strcmp(attr, "z")) + if (!strcmp(attr_str, "z")) { pos.z() = val; m_vertex->SetXYZ(pos); @@ -216,7 +220,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) // uv MT_Point2 uv = m_vertex->getUV1(); - if (!strcmp(attr, "u")) + if (!strcmp(attr_str, "u")) { uv[0] = val; m_vertex->SetUV(uv); @@ -224,7 +228,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 0; } - if (!strcmp(attr, "v")) + if (!strcmp(attr_str, "v")) { uv[1] = val; m_vertex->SetUV(uv); @@ -234,7 +238,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) // uv MT_Point2 uv2 = m_vertex->getUV2(); - if (!strcmp(attr, "u2")) + if (!strcmp(attr_str, "u2")) { uv[0] = val; m_vertex->SetUV2(uv); @@ -242,7 +246,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) return 0; } - if (!strcmp(attr, "v2")) + if (!strcmp(attr_str, "v2")) { uv[1] = val; m_vertex->SetUV2(uv); @@ -254,28 +258,28 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) unsigned int icol = *((const unsigned int *)m_vertex->getRGBA()); unsigned char *cp = (unsigned char*) &icol; val *= 255.0; - if (!strcmp(attr, "r")) + if (!strcmp(attr_str, "r")) { cp[0] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); return 0; } - if (!strcmp(attr, "g")) + if (!strcmp(attr_str, "g")) { cp[1] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); return 0; } - if (!strcmp(attr, "b")) + if (!strcmp(attr_str, "b")) { cp[2] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); return 0; } - if (!strcmp(attr, "a")) + if (!strcmp(attr_str, "a")) { cp[3] = (unsigned char) val; m_vertex->SetRGBA(icol); @@ -284,7 +288,7 @@ int KX_VertexProxy::_setattr(const char *attr, PyObject *pyvalue) } } - return SCA_IObject::_setattr(attr, pyvalue); + return SCA_IObject::py_setattro(attr, pyvalue); } KX_VertexProxy::KX_VertexProxy(KX_MeshProxy*mesh, RAS_TexVert* vertex) diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h index 28196075904..26772fc7d60 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.h +++ b/source/gameengine/Ketsji/KX_VertexProxy.h @@ -54,8 +54,8 @@ public: // stuff for python integration - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *pyvalue); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *pyvalue); KX_PYMETHOD_NOARGS(KX_VertexProxy,GetXYZ); KX_PYMETHOD_O(KX_VertexProxy,SetXYZ); diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 10e8c827394..35edd84f994 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -91,18 +91,21 @@ KX_VisibilityActuator::Update() /* Integration hooks ------------------------------------------------------- */ PyTypeObject KX_VisibilityActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_VisibilityActuator", sizeof(KX_VisibilityActuator), 0, PyDestructor, 0, - __getattr, - __setattr, 0, - __repr, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0, + 0, + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, Methods }; @@ -131,20 +134,20 @@ PyAttributeDef KX_VisibilityActuator::Attributes[] = { { NULL } //Sentinel }; -PyObject* KX_VisibilityActuator::_getattr(const char *attr) +PyObject* KX_VisibilityActuator::py_getattro(PyObject *attr) { - PyObject* object = _getattr_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - _getattr_up(SCA_IActuator); + py_getattro_up(SCA_IActuator); } -int KX_VisibilityActuator::_setattr(const char *attr, PyObject *value) +int KX_VisibilityActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = _setattr_self(Attributes, this, attr, value); + int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - return SCA_IActuator::_setattr(attr, value); + return SCA_IActuator::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h index 2e2a5957777..fca37500915 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.h +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h @@ -67,8 +67,8 @@ class KX_VisibilityActuator : public SCA_IActuator /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); - virtual int _setattr(const char *attr, PyObject *value); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> KX_PYMETHOD_DOC(KX_VisibilityActuator,SetVisible); From bc789af5a9ee62978412b67fbe3313d6636b5499 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 3 Apr 2009 14:54:29 +0000 Subject: [PATCH 062/201] Cleanup of particle object visualization code. No new features and hopefully no new bugs. --- source/blender/blenkernel/intern/anim.c | 104 ++++++++----------- source/blender/makesdna/DNA_particle_types.h | 2 +- source/blender/src/buttons_object.c | 5 +- source/blender/src/edit.c | 10 +- 4 files changed, 51 insertions(+), 70 deletions(-) diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 87d7bfc4853..79c4d15b88e 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -747,7 +747,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_ float ctime, pa_time, scale = 1.0f; float tmat[4][4], mat[4][4], pamat[4][4], size=0.0; float (*obmat)[4], (*oldobmat)[4]; - int lay, a, b, k, step_nbr = 0, counter, hair = 0; + int lay, a, b, k, counter, hair = 0; int totpart, totchild, totgroup=0, pa_num; if(psys==0) return; @@ -775,11 +775,6 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_ if((part->draw_as == PART_DRAW_OB && part->dup_ob) || (part->draw_as == PART_DRAW_GR && part->dup_group && part->dup_group->gobject.first)) { - if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED) && part->draw & PART_DRAW_KEYS) - step_nbr = part->keys_step; - else - step_nbr = 0; - /* if we have a hair particle system, use the path cache */ if(part->type == PART_HAIR) { if(psys->flag & PSYS_HAIR_DONE) @@ -859,76 +854,65 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_ oldobmat= obcopy.obmat; } - for(k=0; k<=step_nbr; k++, counter++) { - if(hair) { - /* hair we handle separate and compute transform based on hair keys */ - if(a < totpart) { - cache = psys->pathcache[a]; - psys_get_dupli_path_transform(par, psys, psmd, pa, 0, cache, pamat, &scale); - } - else { - cache = psys->childcache[a-totpart]; - psys_get_dupli_path_transform(par, psys, psmd, 0, cpa, cache, pamat, &scale); - } - - VECCOPY(pamat[3], cache->co); - pamat[3][3]= 1.0f; - - } - else if(step_nbr) { - /* other keys */ - state.time = (float)k / (float)step_nbr; - psys_get_particle_on_path(par, psys, a, &state, 0); - - QuatToMat4(state.rot, pamat); - VECCOPY(pamat[3], state.co); - pamat[3][3]= 1.0f; + if(hair) { + /* hair we handle separate and compute transform based on hair keys */ + if(a < totpart) { + cache = psys->pathcache[a]; + psys_get_dupli_path_transform(par, psys, psmd, pa, 0, cache, pamat, &scale); } else { - /* first key */ - state.time = -1.0; - if(psys_get_particle_state(par, psys, a, &state, 0) == 0) - continue; - - QuatToMat4(state.rot, pamat); - VECCOPY(pamat[3], state.co); - pamat[3][3]= 1.0f; + cache = psys->childcache[a-totpart]; + psys_get_dupli_path_transform(par, psys, psmd, 0, cpa, cache, pamat, &scale); } - if(part->draw_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) { - for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) { - Mat4MulMat4(tmat, oblist[b]->obmat, pamat); - Mat4MulFloat3((float *)tmat, size*scale); - if(par_space_mat) - Mat4MulMat4(mat, tmat, par_space_mat); - else - Mat4CpyMat4(mat, tmat); + VECCOPY(pamat[3], cache->co); + pamat[3][3]= 1.0f; + + } + else { + /* first key */ + state.time = ctime; + if(psys_get_particle_state(par, psys, a, &state, 0) == 0) + continue; - dob= new_dupli_object(lb, go->ob, mat, par->lay, counter, OB_DUPLIPARTS, animated); - Mat4CpyMat4(dob->omat, obcopylist[b].obmat); - if(G.rendering) - psys_get_dupli_texture(par, part, psmd, pa, cpa, dob->uv, dob->orco); - } - } - else { - /* to give ipos in object correct offset */ - where_is_object_time(ob, ctime-pa_time); - - Mat4CpyMat4(mat, pamat); + QuatToMat4(state.rot, pamat); + VECCOPY(pamat[3], state.co); + pamat[3][3]= 1.0f; + } - Mat4MulMat4(tmat, obmat, mat); + if(part->draw_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) { + for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) { + Mat4MulMat4(tmat, oblist[b]->obmat, pamat); Mat4MulFloat3((float *)tmat, size*scale); if(par_space_mat) Mat4MulMat4(mat, tmat, par_space_mat); else Mat4CpyMat4(mat, tmat); - dob= new_dupli_object(lb, ob, mat, par->lay, counter, OB_DUPLIPARTS, animated); - Mat4CpyMat4(dob->omat, oldobmat); + dob= new_dupli_object(lb, go->ob, mat, par->lay, counter, OB_DUPLIPARTS, animated); + Mat4CpyMat4(dob->omat, obcopylist[b].obmat); if(G.rendering) psys_get_dupli_texture(par, part, psmd, pa, cpa, dob->uv, dob->orco); } } + else { + /* to give ipos in object correct offset */ + where_is_object_time(ob, ctime-pa_time); + + Mat4CpyMat4(mat, pamat); + + Mat4MulMat4(tmat, obmat, mat); + Mat4MulFloat3((float *)tmat, size*scale); + if(par_space_mat) + Mat4MulMat4(mat, tmat, par_space_mat); + else + Mat4CpyMat4(mat, tmat); + + dob= new_dupli_object(lb, ob, mat, par->lay, counter, OB_DUPLIPARTS, animated); + Mat4CpyMat4(dob->omat, oldobmat); + if(G.rendering) + psys_get_dupli_texture(par, part, psmd, pa, cpa, dob->uv, dob->orco); + } } /* restore objects since they were changed in where_is_object_time */ diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 52d427eda4e..e68f8515af1 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -304,7 +304,7 @@ typedef struct ParticleSystem{ /* note, make sure all (runtime) are NULL's in #define PART_DRAW_ANG 2 #define PART_DRAW_SIZE 4 #define PART_DRAW_EMITTER 8 /* render emitter also */ -#define PART_DRAW_KEYS 16 +//#define PART_DRAW_KEYS 16 /* not used anywhere */ #define PART_DRAW_ADAPT 32 #define PART_DRAW_COS 64 #define PART_DRAW_BB_LOCK 128 diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 6162a12d06d..04aa54f2526 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -4433,7 +4433,10 @@ static void object_panel_particle_visual(Object *ob) block= uiNewBlock(&curarea->uiblocks, "object_panel_particle_visual", UI_EMBOSS, UI_HELV, curarea->win); if(uiNewPanel(curarea, block, "Visualization", "Particle", 640, 0, 318, 204)==0) return; - uiDefButS(block, MENU, B_PART_RECALC, "Billboard %x9|Group %x8|Object %x7|Path %x6|Line %x5|Axis %x4|Cross %x3|Circle %x2|Point %x1|None %x0", butx,buty,butw,buth, &part->draw_as, 14.0, 0.0, 0, 0, "How particles are visualized"); + if(part->type==PART_HAIR) + uiDefButS(block, MENU, B_PART_RECALC, "Group %x8|Object %x7|Path %x6|None %x0", butx,buty,butw,buth, &part->draw_as, 14.0, 0.0, 0, 0, "How hair is visualized"); + else + uiDefButS(block, MENU, B_PART_RECALC, "Billboard %x9|Group %x8|Object %x7|Path %x6|Line %x5|Axis %x4|Cross %x3|Circle %x2|Point %x1|None %x0", butx,buty,butw,buth, &part->draw_as, 14.0, 0.0, 0, 0, "How particles are visualized"); if(part->draw_as==PART_DRAW_NOT) { uiDefButBitS(block, TOG, PART_DRAW_EMITTER, B_PART_REDRAW, "Render emitter", butx,(buty-=2*buth),butw,buth, &part->draw, 0, 0, 0, 0, "Render emitter object"); diff --git a/source/blender/src/edit.c b/source/blender/src/edit.c index f681b65925f..202d8a813f1 100644 --- a/source/blender/src/edit.c +++ b/source/blender/src/edit.c @@ -792,19 +792,13 @@ void countall() if(ob->transflag & OB_DUPLIPARTS) { ParticleSystem *psys; ParticleSettings *part; - int step_nbr; for(psys=ob->particlesystem.first; psys; psys=psys->next){ part=psys->part; - - //if(psys->flag&PSYS_BAKED && part->draw&PART_DRAW_KEYS) - // step_nbr=part->keys_step; - //else - step_nbr=1; if(part->draw_as==PART_DRAW_OB && part->dup_ob){ int tot=count_particles(psys); - count_object(part->dup_ob, 0, tot*step_nbr); + count_object(part->dup_ob, 0, tot); } else if(part->draw_as==PART_DRAW_GR && part->dup_group){ GroupObject *go; @@ -818,7 +812,7 @@ void countall() go= part->dup_group->gobject.first; while(go){ tot=count_particles_mod(psys,totgroup,cur); - count_object(go->ob, 0, tot*step_nbr); + count_object(go->ob, 0, tot); cur++; go=go->next; } From e6985d31b589a232bb17dd4c156614df781b8dad Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 3 Apr 2009 15:08:38 +0000 Subject: [PATCH 063/201] Some users could not build with python 2.5, hopefully this fixes it. --- source/gameengine/Ketsji/KX_GameObject.cpp | 4 ++-- source/gameengine/Ketsji/KX_GameObject.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index f0c5667479c..e79ef5ab72b 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1104,7 +1104,7 @@ PyObject* KX_GameObject::PyGetPosition(PyObject* self) } -int KX_GameObject::Map_Len(PyObject* self_v) +Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) { return (static_cast(self_v))->GetPropertyCount(); } @@ -1173,7 +1173,7 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) PyMappingMethods KX_GameObject::Mapping = { - (inquiry)KX_GameObject::Map_Len, /*inquiry mp_length */ + (lenfunc)KX_GameObject::Map_Len, /*inquiry mp_length */ (binaryfunc)KX_GameObject::Map_GetItem, /*binaryfunc mp_subscript */ (objobjargproc)KX_GameObject::Map_SetItem, /*objobjargproc mp_ass_subscript */ }; diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 4b136e268db..9ed35b6d26b 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -826,7 +826,7 @@ public: static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); /* getitem/setitem */ - static int Map_Len(PyObject* self); + static Py_ssize_t Map_Len(PyObject* self); static PyMappingMethods Mapping; static PyObject* Map_GetItem(PyObject *self_v, PyObject *item); static int Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val); From 3b2322406141bca2585d579152ba4f993f7920d0 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 3 Apr 2009 18:13:51 +0000 Subject: [PATCH 064/201] Fix for [#18372] object-particle in other layer not editable correctly. --- source/blender/blenkernel/intern/anim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 79c4d15b88e..50be417c8ef 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -908,7 +908,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_ else Mat4CpyMat4(mat, tmat); - dob= new_dupli_object(lb, ob, mat, par->lay, counter, OB_DUPLIPARTS, animated); + dob= new_dupli_object(lb, ob, mat, ob->lay, counter, OB_DUPLIPARTS, animated); Mat4CpyMat4(dob->omat, oldobmat); if(G.rendering) psys_get_dupli_texture(par, part, psmd, pa, cpa, dob->uv, dob->orco); From 07930c0b0943810a4914f7ce2d035bfbe77f796a Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Fri, 3 Apr 2009 19:09:52 +0000 Subject: [PATCH 065/201] BGE API cleanup: RandomActuator. --- .../GameLogic/SCA_RandomActuator.cpp | 140 ++++++++---------- .../gameengine/GameLogic/SCA_RandomActuator.h | 46 ++---- 2 files changed, 79 insertions(+), 107 deletions(-) diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index a9a664b0686..7af116fad99 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -348,16 +348,18 @@ PyMethodDef SCA_RandomActuator::Methods[] = { {"setProperty", (PyCFunction) SCA_RandomActuator::sPySetProperty, METH_VARARGS, (PY_METHODCHAR)SetProperty_doc}, {"getProperty", (PyCFunction) SCA_RandomActuator::sPyGetProperty, METH_VARARGS, (PY_METHODCHAR)GetProperty_doc}, //<----- Deprecated - {"setBoolConst", (PyCFunction) SCA_RandomActuator::sPySetBoolConst, METH_VARARGS, (PY_METHODCHAR)SetBoolConst_doc}, - {"setBoolUniform", (PyCFunction) SCA_RandomActuator::sPySetBoolUniform, METH_VARARGS, (PY_METHODCHAR)SetBoolUniform_doc}, - {"setBoolBernouilli",(PyCFunction) SCA_RandomActuator::sPySetBoolBernouilli, METH_VARARGS, (PY_METHODCHAR)SetBoolBernouilli_doc}, - {"setIntConst", (PyCFunction) SCA_RandomActuator::sPySetIntConst, METH_VARARGS, (PY_METHODCHAR)SetIntConst_doc}, - {"setIntUniform", (PyCFunction) SCA_RandomActuator::sPySetIntUniform, METH_VARARGS, (PY_METHODCHAR)SetIntUniform_doc}, - {"setIntPoisson", (PyCFunction) SCA_RandomActuator::sPySetIntPoisson, METH_VARARGS, (PY_METHODCHAR)SetIntPoisson_doc}, - {"setFloatConst", (PyCFunction) SCA_RandomActuator::sPySetFloatConst, METH_VARARGS, (PY_METHODCHAR)SetFloatConst_doc}, - {"setFloatUniform", (PyCFunction) SCA_RandomActuator::sPySetFloatUniform, METH_VARARGS, (PY_METHODCHAR)SetFloatUniform_doc}, - {"setFloatNormal", (PyCFunction) SCA_RandomActuator::sPySetFloatNormal, METH_VARARGS, (PY_METHODCHAR)SetFloatNormal_doc}, - {"setFloatNegativeExponential", (PyCFunction) SCA_RandomActuator::sPySetFloatNegativeExponential, METH_VARARGS, (PY_METHODCHAR)SetFloatNegativeExponential_doc}, + KX_PYMETHODTABLE(SCA_RandomActuator, setBoolConst), + KX_PYMETHODTABLE_NOARGS(SCA_RandomActuator, setBoolUniform), + KX_PYMETHODTABLE(SCA_RandomActuator, setBoolBernouilli), + + KX_PYMETHODTABLE(SCA_RandomActuator, setIntConst), + KX_PYMETHODTABLE(SCA_RandomActuator, setIntUniform), + KX_PYMETHODTABLE(SCA_RandomActuator, setIntPoisson), + + KX_PYMETHODTABLE(SCA_RandomActuator, setFloatConst), + KX_PYMETHODTABLE(SCA_RandomActuator, setFloatUniform), + KX_PYMETHODTABLE(SCA_RandomActuator, setFloatNormal), + KX_PYMETHODTABLE(SCA_RandomActuator, setFloatNegativeExponential), {NULL,NULL} //Sentinel }; @@ -366,17 +368,33 @@ PyAttributeDef SCA_RandomActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RO("para2",SCA_RandomActuator,m_parameter2), KX_PYATTRIBUTE_ENUM_RO("distribution",SCA_RandomActuator,m_distribution), KX_PYATTRIBUTE_STRING_RW_CHECK("property",0,100,false,SCA_RandomActuator,m_propname,CheckProperty), + KX_PYATTRIBUTE_RW_FUNCTION("seed",SCA_RandomActuator,pyattr_get_seed,pyattr_set_seed), { NULL } //Sentinel }; +PyObject* SCA_RandomActuator::pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_RandomActuator* act = static_cast(self); + return PyInt_FromLong(act->m_base->GetSeed()); +} + +int SCA_RandomActuator::pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + SCA_RandomActuator* act = static_cast(self); + if (PyInt_Check(value)) { + int ival = PyInt_AsLong(value); + act->m_base->SetSeed(ival); + return 0; + } else { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + return 1; + } +} + PyObject* SCA_RandomActuator::py_getattro(PyObject *attr) { PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "seed")) { - return PyInt_FromLong(m_base->GetSeed()); - } py_getattro_up(SCA_IActuator); } @@ -385,18 +403,6 @@ int SCA_RandomActuator::py_setattro(PyObject *attr, PyObject *value) int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "seed")) { - if (PyInt_Check(value)) { - int ival = PyInt_AsLong(value); - m_base->SetSeed(ival); - return 0; - } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - return 1; - } - } return SCA_IActuator::py_setattro(attr, value); } @@ -494,13 +500,11 @@ PyObject* SCA_RandomActuator::PyGetProperty(PyObject* self, PyObject* args, PyOb } /* 11. setBoolConst */ -const char SCA_RandomActuator::SetBoolConst_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setBoolConst, "setBoolConst(value)\n" "\t- value: 0 or 1\n" -"\tSet this generator to produce a constant boolean value.\n"; -PyObject* SCA_RandomActuator::PySetBoolConst(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tSet this generator to produce a constant boolean value.\n") +{ int paraArg; if(!PyArg_ParseTuple(args, "i", ¶Arg)) { return NULL; @@ -512,25 +516,21 @@ PyObject* SCA_RandomActuator::PySetBoolConst(PyObject* self, Py_RETURN_NONE; } /* 12. setBoolUniform, */ -const char SCA_RandomActuator::SetBoolUniform_doc[] = +KX_PYMETHODDEF_DOC_NOARGS(SCA_RandomActuator, setBoolUniform, "setBoolUniform()\n" -"\tSet this generator to produce true and false, each with 50%% chance of occuring\n"; -PyObject* SCA_RandomActuator::PySetBoolUniform(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tSet this generator to produce true and false, each with 50%% chance of occuring\n") +{ /* no args */ m_distribution = KX_RANDOMACT_BOOL_UNIFORM; enforceConstraints(); Py_RETURN_NONE; } /* 13. setBoolBernouilli, */ -const char SCA_RandomActuator::SetBoolBernouilli_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setBoolBernouilli, "setBoolBernouilli(value)\n" "\t- value: a float between 0 and 1\n" -"\tReturn false value * 100%% of the time.\n"; -PyObject* SCA_RandomActuator::PySetBoolBernouilli(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tReturn false value * 100%% of the time.\n") +{ float paraArg; if(!PyArg_ParseTuple(args, "f", ¶Arg)) { return NULL; @@ -542,13 +542,11 @@ PyObject* SCA_RandomActuator::PySetBoolBernouilli(PyObject* self, Py_RETURN_NONE; } /* 14. setIntConst,*/ -const char SCA_RandomActuator::SetIntConst_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntConst, "setIntConst(value)\n" "\t- value: integer\n" -"\tAlways return value\n"; -PyObject* SCA_RandomActuator::PySetIntConst(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tAlways return value\n") +{ int paraArg; if(!PyArg_ParseTuple(args, "i", ¶Arg)) { return NULL; @@ -560,15 +558,13 @@ PyObject* SCA_RandomActuator::PySetIntConst(PyObject* self, Py_RETURN_NONE; } /* 15. setIntUniform,*/ -const char SCA_RandomActuator::SetIntUniform_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntUniform, "setIntUniform(lower_bound, upper_bound)\n" "\t- lower_bound: integer\n" "\t- upper_bound: integer\n" "\tReturn a random integer between lower_bound and\n" -"\tupper_bound. The boundaries are included.\n"; -PyObject* SCA_RandomActuator::PySetIntUniform(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tupper_bound. The boundaries are included.\n") +{ int paraArg1, paraArg2; if(!PyArg_ParseTuple(args, "ii", ¶Arg1, ¶Arg2)) { return NULL; @@ -581,15 +577,13 @@ PyObject* SCA_RandomActuator::PySetIntUniform(PyObject* self, Py_RETURN_NONE; } /* 16. setIntPoisson, */ -const char SCA_RandomActuator::SetIntPoisson_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntPoisson, "setIntPoisson(value)\n" "\t- value: float\n" "\tReturn a Poisson-distributed number. This performs a series\n" "\tof Bernouilli tests with parameter value. It returns the\n" -"\tnumber of tries needed to achieve succes.\n"; -PyObject* SCA_RandomActuator::PySetIntPoisson(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tnumber of tries needed to achieve succes.\n") +{ float paraArg; if(!PyArg_ParseTuple(args, "f", ¶Arg)) { return NULL; @@ -600,14 +594,12 @@ PyObject* SCA_RandomActuator::PySetIntPoisson(PyObject* self, enforceConstraints(); Py_RETURN_NONE; } -/* 17. setFloatConst,*/ -const char SCA_RandomActuator::SetFloatConst_doc[] = +/* 17. setFloatConst */ +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatConst, "setFloatConst(value)\n" "\t- value: float\n" -"\tAlways return value\n"; -PyObject* SCA_RandomActuator::PySetFloatConst(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tAlways return value\n") +{ float paraArg; if(!PyArg_ParseTuple(args, "f", ¶Arg)) { return NULL; @@ -619,15 +611,13 @@ PyObject* SCA_RandomActuator::PySetFloatConst(PyObject* self, Py_RETURN_NONE; } /* 18. setFloatUniform, */ -const char SCA_RandomActuator::SetFloatUniform_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatUniform, "setFloatUniform(lower_bound, upper_bound)\n" "\t- lower_bound: float\n" "\t- upper_bound: float\n" "\tReturn a random integer between lower_bound and\n" -"\tupper_bound.\n"; -PyObject* SCA_RandomActuator::PySetFloatUniform(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tupper_bound.\n") +{ float paraArg1, paraArg2; if(!PyArg_ParseTuple(args, "ff", ¶Arg1, ¶Arg2)) { return NULL; @@ -640,15 +630,13 @@ PyObject* SCA_RandomActuator::PySetFloatUniform(PyObject* self, Py_RETURN_NONE; } /* 19. setFloatNormal, */ -const char SCA_RandomActuator::SetFloatNormal_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNormal, "setFloatNormal(mean, standard_deviation)\n" "\t- mean: float\n" "\t- standard_deviation: float\n" "\tReturn normal-distributed numbers. The average is mean, and the\n" -"\tdeviation from the mean is characterized by standard_deviation.\n"; -PyObject* SCA_RandomActuator::PySetFloatNormal(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tdeviation from the mean is characterized by standard_deviation.\n") +{ float paraArg1, paraArg2; if(!PyArg_ParseTuple(args, "ff", ¶Arg1, ¶Arg2)) { return NULL; @@ -661,14 +649,12 @@ PyObject* SCA_RandomActuator::PySetFloatNormal(PyObject* self, Py_RETURN_NONE; } /* 20. setFloatNegativeExponential, */ -const char SCA_RandomActuator::SetFloatNegativeExponential_doc[] = +KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential, "setFloatNegativeExponential(half_life)\n" "\t- half_life: float\n" "\tReturn negative-exponentially distributed numbers. The half-life 'time'\n" -"\tis characterized by half_life.\n"; -PyObject* SCA_RandomActuator::PySetFloatNegativeExponential(PyObject* self, - PyObject* args, - PyObject* kwds) { +"\tis characterized by half_life.\n") +{ float paraArg; if(!PyArg_ParseTuple(args, "f", ¶Arg)) { return NULL; diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h index 96ca353257f..fbafbb69c01 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.h +++ b/source/gameengine/GameLogic/SCA_RandomActuator.h @@ -99,43 +99,29 @@ class SCA_RandomActuator : public SCA_IActuator virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); - /* 1. setSeed */ + static PyObject* pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + + // Deprecated methods -----> KX_PYMETHOD_DOC(SCA_RandomActuator,SetSeed); - /* 2. getSeed */ KX_PYMETHOD_DOC(SCA_RandomActuator,GetSeed); - /* 3. setPara1 -removed- */ - /* 4. getPara1 */ KX_PYMETHOD_DOC(SCA_RandomActuator,GetPara1); - /* 5. setPara2 -removed- */ - /* 6. getPara2 */ KX_PYMETHOD_DOC(SCA_RandomActuator,GetPara2); - /* 7. setDistribution -removed- */ - /* 8. getDistribution */ KX_PYMETHOD_DOC(SCA_RandomActuator,GetDistribution); - /* 9. setProperty */ KX_PYMETHOD_DOC(SCA_RandomActuator,SetProperty); - /* 10. getProperty */ KX_PYMETHOD_DOC(SCA_RandomActuator,GetProperty); - /* 11. setBoolConst */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetBoolConst); - /* 12. setBoolUniform, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetBoolUniform); - /* 13. setBoolBernouilli, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetBoolBernouilli); - /* 14. setIntConst,*/ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetIntConst); - /* 15. setIntUniform,*/ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetIntUniform); - /* 16. setIntPoisson, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetIntPoisson); - /* 17. setFloatConst,*/ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetFloatConst); - /* 18. setFloatUniform, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetFloatUniform); - /* 19. setFloatNormal, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetFloatNormal); - /* 20. setFloatNegativeExponential, */ - KX_PYMETHOD_DOC(SCA_RandomActuator,SetFloatNegativeExponential); + // <----- + + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setBoolConst); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator, setBoolUniform); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setBoolBernouilli); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setIntConst); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setIntUniform); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setIntPoisson); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatConst); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatUniform); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatNormal); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential); }; /* end of class KX_EditObjectActuator : public SCA_PropertyActuator */ #endif From 29f5c7dd5d0871835e4d50b2b3018b9a24a93350 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Fri, 3 Apr 2009 19:19:02 +0000 Subject: [PATCH 066/201] MSVC9 project file. --- projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj b/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj index 62a0d7a7bfa..c425b5664ad 100644 --- a/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj +++ b/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj @@ -573,6 +573,10 @@ RelativePath="..\..\..\source\gameengine\Ketsji\KX_PythonInit.cpp" > + + @@ -874,6 +878,10 @@ RelativePath="..\..\..\source\gameengine\Ketsji\KX_PythonInit.h" > + + From 6be69211843ee37ab9be763df0621db94dbfd69b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 02:57:35 +0000 Subject: [PATCH 067/201] moved more attributes from getattr into PyAttributeDef's --- .../Converter/BL_ActionActuator.cpp | 66 ++++++++-------- .../gameengine/Converter/BL_ActionActuator.h | 8 +- .../Converter/BL_ShapeActionActuator.cpp | 68 ++++++++-------- .../Converter/BL_ShapeActionActuator.h | 6 ++ source/gameengine/GameLogic/SCA_ISensor.cpp | 35 +++++---- source/gameengine/GameLogic/SCA_ISensor.h | 3 + .../GameLogic/SCA_JoystickSensor.cpp | 77 +++++++++++-------- .../gameengine/GameLogic/SCA_JoystickSensor.h | 7 ++ .../GameLogic/SCA_PythonController.cpp | 65 ++++++++++------ .../GameLogic/SCA_PythonController.h | 4 + .../gameengine/GameLogic/SCA_RandomSensor.cpp | 35 +++++---- .../gameengine/GameLogic/SCA_RandomSensor.h | 3 + .../gameengine/Ketsji/KX_CameraActuator.cpp | 55 ++++++------- source/gameengine/Ketsji/KX_CameraActuator.h | 3 + source/gameengine/Ketsji/KX_TouchSensor.cpp | 33 ++++---- source/gameengine/Ketsji/KX_TouchSensor.h | 4 + 16 files changed, 277 insertions(+), 195 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 943bb68f6f2..b7a961d6a9d 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1025,6 +1025,7 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RW("start", 0, MAXFRAMEF, BL_ActionActuator, m_startframe), KX_PYATTRIBUTE_FLOAT_RW("end", 0, MAXFRAMEF, BL_ActionActuator, m_endframe), KX_PYATTRIBUTE_FLOAT_RW("blendin", 0, MAXFRAMEF, BL_ActionActuator, m_blendin), + KX_PYATTRIBUTE_RW_FUNCTION("action", BL_ActionActuator, pyattr_get_action, pyattr_set_action), KX_PYATTRIBUTE_SHORT_RW("priority", 0, 100, false, BL_ActionActuator, m_priority), KX_PYATTRIBUTE_FLOAT_RW_CHECK("frame", 0, MAXFRAMEF, BL_ActionActuator, m_localtime, CheckFrame), KX_PYATTRIBUTE_STRING_RW("property", 0, 31, false, BL_ActionActuator, m_propname), @@ -1036,10 +1037,6 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { }; PyObject* BL_ActionActuator::py_getattro(PyObject *attr) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "action")) - return PyString_FromString(m_action->id.name+2); - PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; @@ -1047,39 +1044,44 @@ PyObject* BL_ActionActuator::py_getattro(PyObject *attr) { } int BL_ActionActuator::py_setattro(PyObject *attr, PyObject* value) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "action")) + int ret = py_setattro_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_IActuator::py_setattro(attr, value); +} + + + +PyObject* BL_ActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + BL_ActionActuator* self= static_cast(self_v); + return PyString_FromString(self->GetAction()->id.name+2); +} + +int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + BL_ActionActuator* self= static_cast(self_v); + + if (!PyString_Check(value)) { - if (!PyString_Check(value)) - { - PyErr_SetString(PyExc_ValueError, "expected a string"); - return 1; - } - - STR_String val = PyString_AsString(value); - - if (val == "") - { - m_action = NULL; - return 0; - } - - bAction *action; - - action = (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); - + PyErr_SetString(PyExc_ValueError, "expected the string name of the action"); + return -1; + } + bAction *action= NULL; + STR_String val = PyString_AsString(value); + + if (val != "") + { + (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); if (!action) { PyErr_SetString(PyExc_ValueError, "action not found!"); return 1; } - - m_action = action; - return 0; } - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); -} \ No newline at end of file + + self->SetAction(action); + return 0; + +} diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h index 7160dd4dad0..d5b5762d9e7 100644 --- a/source/gameengine/Converter/BL_ActionActuator.h +++ b/source/gameengine/Converter/BL_ActionActuator.h @@ -81,6 +81,9 @@ public: virtual void ProcessReplica(); void SetBlendTime (float newtime); + + bAction* GetAction() { return m_action; } + void SetAction(bAction* act) { m_action= act; } //Deprecated -----> KX_PYMETHOD_DOC(BL_ActionActuator,SetAction); @@ -113,6 +116,9 @@ public: virtual PyObject* py_getattro(PyObject* attr); virtual int py_setattro(PyObject* attr, PyObject* value); + static PyObject* pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + /* attribute check */ static int CheckFrame(void *self, const PyAttributeDef*) { @@ -151,8 +157,8 @@ public: PyErr_SetString(PyExc_ValueError, "invalid type supplied"); return 1; } - } + protected: void SetStartTime(float curtime); diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index c53be4653ca..3c0ce0918f2 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -474,6 +474,7 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RW("start", 0, MAXFRAMEF, BL_ShapeActionActuator, m_startframe), KX_PYATTRIBUTE_FLOAT_RW("end", 0, MAXFRAMEF, BL_ShapeActionActuator, m_endframe), KX_PYATTRIBUTE_FLOAT_RW("blendin", 0, MAXFRAMEF, BL_ShapeActionActuator, m_blendin), + KX_PYATTRIBUTE_RW_FUNCTION("action", BL_ShapeActionActuator, pyattr_get_action, pyattr_set_action), KX_PYATTRIBUTE_SHORT_RW("priority", 0, 100, false, BL_ShapeActionActuator, m_priority), KX_PYATTRIBUTE_FLOAT_RW_CHECK("frame", 0, MAXFRAMEF, BL_ShapeActionActuator, m_localtime, CheckFrame), KX_PYATTRIBUTE_STRING_RW("property", 0, 31, false, BL_ShapeActionActuator, m_propname), @@ -485,9 +486,6 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = { PyObject* BL_ShapeActionActuator::py_getattro(PyObject* attr) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "action")) - return PyString_FromString(m_action->id.name+2); PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; @@ -495,37 +493,6 @@ PyObject* BL_ShapeActionActuator::py_getattro(PyObject* attr) { } int BL_ShapeActionActuator::py_setattro(PyObject *attr, PyObject* value) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "action")) - { - if (!PyString_Check(value)) - { - PyErr_SetString(PyExc_ValueError, "expected a string"); - return 1; - } - - STR_String val = PyString_AsString(value); - - if (val == "") - { - m_action = NULL; - return 0; - } - - bAction *action; - - action = (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); - - - if (!action) - { - PyErr_SetString(PyExc_ValueError, "action not found!"); - return 1; - } - - m_action = action; - return 0; - } int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; @@ -916,3 +883,36 @@ PyObject* BL_ShapeActionActuator::PySetType(PyObject* self, Py_RETURN_NONE; } +PyObject* BL_ShapeActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + BL_ShapeActionActuator* self= static_cast(self_v); + return PyString_FromString(self->GetAction()->id.name+2); +} + +int BL_ShapeActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + BL_ShapeActionActuator* self= static_cast(self_v); + /* exact copy of BL_ActionActuator's function from here down */ + if (!PyString_Check(value)) + { + PyErr_SetString(PyExc_ValueError, "expected the string name of the action"); + return -1; + } + + bAction *action= NULL; + STR_String val = PyString_AsString(value); + + if (val != "") + { + (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); + if (action==NULL) + { + PyErr_SetString(PyExc_ValueError, "action not found!"); + return 1; + } + } + + self->SetAction(action); + return 0; + +} diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.h b/source/gameengine/Converter/BL_ShapeActionActuator.h index ea25d66e050..162580fca85 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.h +++ b/source/gameengine/Converter/BL_ShapeActionActuator.h @@ -79,6 +79,9 @@ public: void SetBlendTime (float newtime); void BlendShape(struct Key* key, float weigth); + + bAction* GetAction() { return m_action; } + void SetAction(bAction* act) { m_action= act; } KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetAction); KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetBlendin); @@ -106,6 +109,9 @@ public: virtual PyObject* py_getattro(PyObject* attr); virtual int py_setattro(PyObject* attr, PyObject* value); + static PyObject* pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int CheckBlendTime(void *self, const PyAttributeDef*) { BL_ShapeActionActuator* act = reinterpret_cast(self); diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 8a40c0c35f3..a4f493d82c8 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -454,9 +454,8 @@ PyAttributeDef SCA_ISensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("frequency",0,100000,true,SCA_ISensor,m_pulse_frequency), KX_PYATTRIBUTE_BOOL_RW("invert",SCA_ISensor,m_invert), KX_PYATTRIBUTE_BOOL_RW("level",SCA_ISensor,m_level), - // make these properties read-only in _setaddr, must still implement them in py_getattro - KX_PYATTRIBUTE_DUMMY("triggered"), - KX_PYATTRIBUTE_DUMMY("positive"), + KX_PYATTRIBUTE_RO_FUNCTION("triggered", SCA_ISensor, pyattr_get_triggered), + KX_PYATTRIBUTE_RO_FUNCTION("positive", SCA_ISensor, pyattr_get_positive), { NULL } //Sentinel }; @@ -466,20 +465,6 @@ SCA_ISensor::py_getattro(PyObject *attr) PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "triggered")) - { - int retval = 0; - if (SCA_PythonController::m_sCurrentController) - retval = SCA_PythonController::m_sCurrentController->IsTriggered(this); - return PyInt_FromLong(retval); - } - if (!strcmp(attr_str, "positive")) - { - int retval = IsPositiveTrigger(); - return PyInt_FromLong(retval); - } py_getattro_up(SCA_ILogicBrick); } @@ -490,4 +475,20 @@ int SCA_ISensor::py_setattro(PyObject *attr, PyObject *value) return ret; return SCA_ILogicBrick::py_setattro(attr, value); } + +PyObject* SCA_ISensor::pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_ISensor* self= static_cast(self_v); + int retval = 0; + if (SCA_PythonController::m_sCurrentController) + retval = SCA_PythonController::m_sCurrentController->IsTriggered(self); + return PyInt_FromLong(retval); +} + +PyObject* SCA_ISensor::pyattr_get_positive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_ISensor* self= static_cast(self_v); + return PyInt_FromLong(self->IsPositiveTrigger()); +} + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index ce7b66df1cd..cfc95682089 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -154,6 +154,9 @@ public: KX_PYMETHOD_DOC(SCA_ISensor,SetLevel); //<------ KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,reset); + + static PyObject* pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_positive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; #endif //__SCA_ISENSOR diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 0cfd6843c1b..2744d7f6609 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -333,38 +333,18 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("button",0,100,false,SCA_JoystickSensor,m_button), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("axis",0,3,true,SCA_JoystickSensor,m_axis,2,CheckAxis), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("hat",0,12,true,SCA_JoystickSensor,m_hat,2,CheckHat), - // dummy attributes will just be read-only in py_setattro - // you still need to defined them in py_getattro - KX_PYATTRIBUTE_DUMMY("axisPosition"), - KX_PYATTRIBUTE_DUMMY("numAxis"), - KX_PYATTRIBUTE_DUMMY("numButtons"), - KX_PYATTRIBUTE_DUMMY("numHats"), - KX_PYATTRIBUTE_DUMMY("connected"), + KX_PYATTRIBUTE_RO_FUNCTION("axisPosition", SCA_JoystickSensor, pyattr_get_axis_position), + KX_PYATTRIBUTE_RO_FUNCTION("numAxis", SCA_JoystickSensor, pyattr_get_num_axis), + KX_PYATTRIBUTE_RO_FUNCTION("numButtons", SCA_JoystickSensor, pyattr_get_num_buttons), + KX_PYATTRIBUTE_RO_FUNCTION("numHats", SCA_JoystickSensor, pyattr_get_num_hats), + KX_PYATTRIBUTE_RO_FUNCTION("connected", SCA_JoystickSensor, pyattr_get_connected), + + { NULL } //Sentinel }; -PyObject* SCA_JoystickSensor::py_getattro(PyObject *attr) { - SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); - char *attr_str= PyString_AsString(attr); - - if (!strcmp(attr_str, "axisPosition")) { - if(joy) - return Py_BuildValue("[iiii]", joy->GetAxis10(), joy->GetAxis11(), joy->GetAxis20(), joy->GetAxis21()); - else - return Py_BuildValue("[iiii]", 0, 0, 0, 0); - } - if (!strcmp(attr_str, "numAxis")) { - return PyInt_FromLong( joy ? joy->GetNumberOfAxes() : 0 ); - } - if (!strcmp(attr_str, "numButtons")) { - return PyInt_FromLong( joy ? joy->GetNumberOfButtons() : 0 ); - } - if (!strcmp(attr_str, "numHats")) { - return PyInt_FromLong( joy ? joy->GetNumberOfHats() : 0 ); - } - if (!strcmp(attr_str, "connected")) { - return PyBool_FromLong( joy ? joy->Connected() : 0 ); - } +PyObject* SCA_JoystickSensor::py_getattro(PyObject *attr) +{ PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; @@ -532,7 +512,6 @@ const char SCA_JoystickSensor::GetButtonStatus_doc[] = "\tReturns a bool of the current pressed state of the specified button.\n"; PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* self, PyObject* args ) { SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); - PyObject *value; int index; if(!PyArg_ParseTuple(args, "i", &index)){ @@ -609,3 +588,41 @@ PyObject* SCA_JoystickSensor::PyConnected( PyObject* self ) { SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); return PyBool_FromLong( joy ? joy->Connected() : 0 ); } + + +PyObject* SCA_JoystickSensor::pyattr_get_axis_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + + if(joy) return Py_BuildValue("[iiii]", joy->GetAxis10(), joy->GetAxis11(), joy->GetAxis20(), joy->GetAxis21()); + else return Py_BuildValue("[iiii]", 0, 0, 0, 0); +} + +PyObject* SCA_JoystickSensor::pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + return PyInt_FromLong( joy ? joy->GetNumberOfAxes() : 0 ); +} + +PyObject* SCA_JoystickSensor::pyattr_get_num_buttons(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + return PyInt_FromLong( joy ? joy->GetNumberOfButtons() : 0 ); +} + +PyObject* SCA_JoystickSensor::pyattr_get_num_hats(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + return PyInt_FromLong( joy ? joy->GetNumberOfHats() : 0 ); +} + +PyObject* SCA_JoystickSensor::pyattr_get_connected(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + return PyBool_FromLong( joy ? joy->Connected() : 0 ); +} diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h index ccdd2107b21..f8a3eb8756a 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.h +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h @@ -148,6 +148,13 @@ public: KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfHats); KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,Connected); + static PyObject* pyattr_get_axis_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_num_buttons(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_num_hats(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_connected(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + /* attribute check */ static int CheckAxis(void *self, const PyAttributeDef*) { diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 2d200e0a238..4b9248a908f 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -265,6 +265,8 @@ PyMethodDef SCA_PythonController::Methods[] = { }; PyAttributeDef SCA_PythonController::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("state", SCA_PythonController, pyattr_get_state), + KX_PYATTRIBUTE_RW_FUNCTION("script", SCA_PythonController, pyattr_get_script, pyattr_set_script), { NULL } //Sentinel }; @@ -374,37 +376,19 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) PyObject* SCA_PythonController::py_getattro(PyObject *attr) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str,"state")) { - return PyInt_FromLong(m_statemask); - } - if (!strcmp(attr_str,"script")) { - return PyString_FromString(m_scriptText); - } + PyObject* object = py_getattro_self(Attributes, this, attr); + if (object != NULL) + return object; + py_getattro_up(SCA_IController); } int SCA_PythonController::py_setattro(PyObject *attr, PyObject *value) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str,"state")) { - PyErr_SetString(PyExc_AttributeError, "state is read only"); - return 1; - } - if (!strcmp(attr_str,"script")) { - char *scriptArg = PyString_AsString(value); - - if (scriptArg==NULL) { - PyErr_SetString(PyExc_TypeError, "expected a string (script name)"); - return -1; - } + int ret = py_setattro_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; - /* set scripttext sets m_bModified to true, - so next time the script is needed, a reparse into byte code is done */ - this->SetScriptText(scriptArg); - - return 1; - } return SCA_IController::py_setattro(attr, value); } @@ -548,4 +532,35 @@ PyObject* SCA_PythonController::PyGetState(PyObject* self) return PyInt_FromLong(m_statemask); } +PyObject* SCA_PythonController::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_PythonController* self= static_cast(self_v); + return PyInt_FromLong(self->m_statemask); +} + +PyObject* SCA_PythonController::pyattr_get_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_PythonController* self= static_cast(self_v); + return PyString_FromString(self->m_scriptText); +} + +int SCA_PythonController::pyattr_set_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + SCA_PythonController* self= static_cast(self_v); + + char *scriptArg = PyString_AsString(value); + + if (scriptArg==NULL) { + PyErr_SetString(PyExc_TypeError, "expected a string (script name)"); + return -1; + } + + /* set scripttext sets m_bModified to true, + so next time the script is needed, a reparse into byte code is done */ + self->SetScriptText(scriptArg); + + return 0; +} + + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h index 3348071c00f..f10c4e47ebb 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.h +++ b/source/gameengine/GameLogic/SCA_PythonController.h @@ -92,6 +92,10 @@ class SCA_PythonController : public SCA_IController KX_PYMETHOD_NOARGS(SCA_PythonController,GetScript); KX_PYMETHOD_NOARGS(SCA_PythonController,GetState); + static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + }; diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index 84a9ef95e84..bdee64430fa 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -162,6 +162,7 @@ PyMethodDef SCA_RandomSensor::Methods[] = { PyAttributeDef SCA_RandomSensor::Attributes[] = { KX_PYATTRIBUTE_BOOL_RO("lastDraw",SCA_RandomSensor,m_lastdraw), + KX_PYATTRIBUTE_RW_FUNCTION("seed", SCA_RandomSensor, pyattr_get_seed, pyattr_set_seed), {NULL} //Sentinel }; @@ -169,11 +170,6 @@ PyObject* SCA_RandomSensor::py_getattro(PyObject *attr) { PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; - - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str,"seed")) { - return PyInt_FromLong(m_basegenerator->GetSeed()); - } py_getattro_up(SCA_ISensor); } @@ -182,17 +178,6 @@ int SCA_RandomSensor::py_setattro(PyObject *attr, PyObject *value) int ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str,"seed")) { - if (PyInt_Check(value)) { - int ival = PyInt_AsLong(value); - m_basegenerator->SetSeed(ival); - return 0; - } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - return 1; - } - } return SCA_ISensor::py_setattro(attr, value); } @@ -234,4 +219,22 @@ PyObject* SCA_RandomSensor::PyGetLastDraw(PyObject* self, PyObject* args, PyObje return PyInt_FromLong(m_lastdraw); } + +PyObject* SCA_RandomSensor::pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_RandomSensor* self= static_cast(self_v); + return PyInt_FromLong(self->m_basegenerator->GetSeed()); +} + +int SCA_RandomSensor::pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + SCA_RandomSensor* self= static_cast(self_v); + if (!PyInt_Check(value)) { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + return -1; + } + self->m_basegenerator->SetSeed(PyInt_AsLong(value)); + return 0; +} + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h index 39d072dd316..844552f0b64 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.h +++ b/source/gameengine/GameLogic/SCA_RandomSensor.h @@ -69,6 +69,9 @@ public: KX_PYMETHOD_DOC(SCA_RandomSensor,GetSeed); /* 3. getSeed */ KX_PYMETHOD_DOC(SCA_RandomSensor,GetLastDraw); + + static PyObject* pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); }; diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 354143f1e69..526c2dc404b 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -417,19 +417,12 @@ PyAttributeDef KX_CameraActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RW("max",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_maxHeight), KX_PYATTRIBUTE_FLOAT_RW("height",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_height), KX_PYATTRIBUTE_BOOL_RW("xy",KX_CameraActuator,m_x), - KX_PYATTRIBUTE_DUMMY("object"), + KX_PYATTRIBUTE_RW_FUNCTION("object", KX_CameraActuator, pyattr_get_object, pyattr_set_object), {NULL} }; PyObject* KX_CameraActuator::py_getattro(PyObject *attr) { - PyObject* object; - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "object")) { - if (!m_ob) Py_RETURN_NONE; - else return m_ob->AddRef(); - } - - object = py_getattro_self(Attributes, this, attr); + PyObject* object = py_getattro_self(Attributes, this, attr); if (object != NULL) return object; py_getattro_up(SCA_IActuator); @@ -437,24 +430,6 @@ PyObject* KX_CameraActuator::py_getattro(PyObject *attr) { int KX_CameraActuator::py_setattro(PyObject *attr, PyObject* value) { int ret; - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "object")) { - KX_GameObject *gameobj; - - if (!ConvertPythonToGameObject(value, &gameobj, true)) - return 1; // ConvertPythonToGameObject sets the error - - if (m_ob != NULL) - m_ob->UnregisterActuator(this); - - m_ob = (SCA_IObject*)gameobj; - - if (m_ob) - m_ob->RegisterActuator(this); - - return 0; - } - ret = py_setattro_self(Attributes, this, attr, value); if (ret >= 0) return ret; @@ -623,4 +598,30 @@ PyObject* KX_CameraActuator::PyGetXY(PyObject* self, return PyInt_FromLong(m_x); } +PyObject* KX_CameraActuator::pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_CameraActuator* self= static_cast(self_v); + if (self->m_ob==NULL) + Py_RETURN_NONE; + else + return self->m_ob->AddRef(); +} + +int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_CameraActuator* self= static_cast(self_v); + KX_GameObject *gameobj; + + if (!ConvertPythonToGameObject(value, &gameobj, true)) + return 1; // ConvertPythonToGameObject sets the error + + if (self->m_ob) + self->m_ob->UnregisterActuator(self); + + if (self->m_ob = (SCA_IObject*)gameobj) + self->m_ob->RegisterActuator(self); + + return 0; +} + /* eof */ diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h index 5d7473a5bf0..d0aceb89aff 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.h +++ b/source/gameengine/Ketsji/KX_CameraActuator.h @@ -135,6 +135,9 @@ private : KX_PYMETHOD_DOC(KX_CameraActuator,GetHeight); KX_PYMETHOD_DOC(KX_CameraActuator,SetXY); KX_PYMETHOD_DOC(KX_CameraActuator,GetXY); + + static PyObject* pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); }; diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index 49d3d20dc3d..c22885f3664 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -286,8 +286,8 @@ PyAttributeDef KX_TouchSensor::Attributes[] = { KX_PYATTRIBUTE_STRING_RW("property",0,100,false,KX_TouchSensor,m_touchedpropname), KX_PYATTRIBUTE_BOOL_RW("useMaterial",KX_TouchSensor,m_bFindMaterial), KX_PYATTRIBUTE_BOOL_RW("pulseCollisions",KX_TouchSensor,m_bTouchPulse), - KX_PYATTRIBUTE_DUMMY("objectHit"), - KX_PYATTRIBUTE_DUMMY("objectHitList"), + KX_PYATTRIBUTE_RO_FUNCTION("objectHit", KX_TouchSensor, pyattr_get_object_hit), + KX_PYATTRIBUTE_RO_FUNCTION("objectHitList", KX_TouchSensor, pyattr_get_object_hit_list), { NULL } //Sentinel }; @@ -295,17 +295,7 @@ PyObject* KX_TouchSensor::py_getattro(PyObject *attr) { PyObject* object= py_getattro_self(Attributes, this, attr); if (object != NULL) - return object; - - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "objectHit")) { - if (m_hitObject) return m_hitObject->AddRef(); - else Py_RETURN_NONE; - } - if (!strcmp(attr_str, "objectHitList")) { - return m_colliders->AddRef(); - } - + return object; py_getattro_up(SCA_ISensor); } @@ -412,4 +402,21 @@ PyObject* KX_TouchSensor::PySetTouchMaterial(PyObject* self, PyObject *value) } #endif +PyObject* KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_TouchSensor* self= static_cast(self_v); + + if (self->m_hitObject) + return self->m_hitObject->AddRef(); + else + Py_RETURN_NONE; +} + +PyObject* KX_TouchSensor::pyattr_get_object_hit_list(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_TouchSensor* self= static_cast(self_v); + return self->m_colliders->AddRef(); +} + + /* eof */ diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h index 93fadef4abd..15ef653c1b2 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.h +++ b/source/gameengine/Ketsji/KX_TouchSensor.h @@ -140,6 +140,10 @@ public: #endif //<----- + static PyObject* pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_object_hit_list(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + }; #endif //__KX_TOUCHSENSOR From c31f806c99e14ef54a06ea90f0f66d4d1b2572a1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 04:56:05 +0000 Subject: [PATCH 068/201] fix for [#18484] Bullet Crash (possibly because of overlapping rigid body balls) simple missing negative index check. --- .../Dynamics/btDiscreteDynamicsWorld.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index ea2e0ad2a2b..457e26b1dc0 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -725,9 +725,13 @@ void btDiscreteDynamicsWorld::calculateSimulationIslands() { if (colObj0->isActive() || colObj1->isActive()) { - - getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), - (colObj1)->getIslandTag()); + if ((colObj0)->getIslandTag() != -1 && (colObj1)->getIslandTag() != -1) + { + + getSimulationIslandManager()->getUnionFind().unite((colObj0)->getIslandTag(), + (colObj1)->getIslandTag()); + } + } } } From a35a8f7a382e9f62834eaf355d448205665a07bc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 08:20:52 +0000 Subject: [PATCH 069/201] - should fix compiling with older python versions (<2.5) - made the isA() function accept python types as well as strings. - renamed _getattr_dict to py_getattr_dict --- .../gameengine/Expressions/PyObjectPlus.cpp | 45 ++++++++++--------- source/gameengine/Expressions/PyObjectPlus.h | 6 ++- source/gameengine/Ketsji/KX_GameObject.cpp | 2 +- source/gameengine/Ketsji/KX_Scene.cpp | 2 +- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index ed6932b414a..ac1871300d0 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -703,35 +703,40 @@ PyObject *PyObjectPlus::py_repr(void) ------------------------------*/ bool PyObjectPlus::isA(PyTypeObject *T) // if called with a Type, use "typename" { - return isA(T->tp_name); + int i; + PyParentObject P; + PyParentObject *Ps = GetParents(); + + for (P = Ps[i=0]; P != NULL; P = Ps[i++]) + if (P==T) + return true; + + return false; } bool PyObjectPlus::isA(const char *mytypename) // check typename of each parent { - int i; - PyParentObject P; - PyParentObject *Ps = GetParents(); + int i; + PyParentObject P; + PyParentObject *Ps = GetParents(); - for (P = Ps[i=0]; P != NULL; P = Ps[i++]) - { - if (strcmp(P->tp_name, mytypename)==0) - return true; - } - - return false; + for (P = Ps[i=0]; P != NULL; P = Ps[i++]) + if (strcmp(P->tp_name, mytypename)==0) + return true; + + return false; } PyObject *PyObjectPlus::Py_isA(PyObject *value) // Python wrapper for isA { - if (!PyString_Check(value)) { - PyErr_SetString(PyExc_TypeError, "expected a string"); - return NULL; - } - if(isA(PyString_AsString(value))) - Py_RETURN_TRUE; - else - Py_RETURN_FALSE; + if (PyType_Check(value)) { + return PyBool_FromLong(isA((PyTypeObject *)value)); + } else if (PyString_Check(value)) { + return PyBool_FromLong(isA(PyString_AsString(value))); + } + PyErr_SetString(PyExc_TypeError, "expected a type or a string"); + return NULL; } /* Utility function called by the macro py_getattro_up() @@ -742,7 +747,7 @@ PyObject *PyObjectPlus::Py_isA(PyObject *value) // Python wrapper for isA * Other then making dir() useful the value returned from __dict__() is not useful * since every value is a Py_None * */ -PyObject *_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef) +PyObject *py_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef) { if(pydict==NULL) { /* incase calling __dict__ on the parent of this object raised an error */ PyErr_Clear(); diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 77963c092eb..f178d03e131 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -62,6 +62,7 @@ /* for pre Py 2.5 */ #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; +typedef Py_ssize_t (*lenfunc)(PyObject *); #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #define PY_METHODCHAR char * @@ -74,6 +75,7 @@ typedef int Py_ssize_t; #include "descrobject.h" + static inline void Py_Fatal(const char *M) { fprintf(stderr, "%s\n", M); exit(-1); @@ -108,7 +110,7 @@ static inline void Py_Fatal(const char *M) { } \ \ if (strcmp(PyString_AsString(attr), "__dict__")==0) {\ - rvalue = _getattr_dict(rvalue, Methods, Attributes); \ + rvalue = py_getattr_dict(rvalue, Methods, Attributes); \ } \ return rvalue; \ @@ -404,7 +406,7 @@ public: } }; -PyObject *_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef); +PyObject *py_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef); #endif // _adr_py_lib_h_ diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index e79ef5ab72b..5bba9190bd6 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1421,7 +1421,7 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ { KX_GameObject* self= static_cast(self_v); PyObject *dict_str = PyString_FromString("__dict__"); - PyObject *dict= _getattr_dict(self->SCA_IObject::py_getattro(dict_str), KX_GameObject::Methods, KX_GameObject::Attributes); + PyObject *dict= py_getattr_dict(self->SCA_IObject::py_getattro(dict_str), KX_GameObject::Methods, KX_GameObject::Attributes); Py_DECREF(dict_str); if(dict==NULL) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 94ea234f1bf..254717894df 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1574,7 +1574,7 @@ PyObject* KX_Scene::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF * KX_Scene* self= static_cast(self_v); /* Useually done by py_getattro_up but in this case we want to include m_attrlist dict */ PyObject *dict_str= PyString_FromString("__dict__"); - PyObject *dict= _getattr_dict(self->PyObjectPlus::py_getattro(dict_str), KX_Scene::Methods, KX_Scene::Attributes); + PyObject *dict= py_getattr_dict(self->PyObjectPlus::py_getattro(dict_str), KX_Scene::Methods, KX_Scene::Attributes); Py_DECREF(dict_str); PyDict_Update(dict, self->m_attrlist); From b6114be5e388a4f3a1edf75ccbcb7121e88cad33 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 09:54:05 +0000 Subject: [PATCH 070/201] include PyObjectPlus method in __dict__ --- source/gameengine/Expressions/PyObjectPlus.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index ac1871300d0..03afa62a6da 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -110,6 +110,9 @@ PyObject *PyObjectPlus::py_getattro(PyObject* attr) { PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ if (descr == NULL) { + if (strcmp(PyString_AsString(attr), "__dict__")==0) { + return py_getattr_dict(NULL, Methods, NULL); /* no Attributes yet */ + } PyErr_SetString(PyExc_AttributeError, "attribute not found"); return NULL; } else { From cb26c7e75acce743d8f9d906293dea4f582a8ba7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 11:02:13 +0000 Subject: [PATCH 071/201] BGE Py API, mistake when redoing set action as a static function. --- source/gameengine/Converter/BL_ActionActuator.cpp | 2 +- source/gameengine/Converter/BL_ShapeActionActuator.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index b7a961d6a9d..46ad344c5dd 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1073,7 +1073,7 @@ int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF if (val != "") { - (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); + action= (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); if (!action) { PyErr_SetString(PyExc_ValueError, "action not found!"); diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 3c0ce0918f2..a6dbf088ee3 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -904,7 +904,7 @@ int BL_ShapeActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE if (val != "") { - (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); + action= (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); if (action==NULL) { PyErr_SetString(PyExc_ValueError, "action not found!"); From d84dc44835e817ee4b4324b1627cf5290cd9c8be Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sat, 4 Apr 2009 12:48:40 +0000 Subject: [PATCH 072/201] Fix for [#18017] reactor particles affected by a curve guide emit at a wrong position. --- source/blender/blenkernel/intern/particle_system.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 7bda29ebcaf..2728addeddd 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1734,6 +1734,8 @@ void reset_particle(ParticleData *pa, ParticleSystem *psys, ParticleSystemModifi VECSUB(p_vel,pa->r_ve,p_vel); Normalize(p_vel); VecMulf(p_vel,speed); + + VECCOPY(pa->fuv,loc); /* abusing pa->fuv (not used for "from particle") for storing emit location */ } else{ /* get precise emitter matrix if particle is born */ @@ -2483,7 +2485,12 @@ static void precalc_effectors(Object *ob, ParticleSystem *psys, ParticleSystemMo ec->locations=MEM_callocN(totpart*3*sizeof(float),"particle locations"); for(p=0,pa=psys->particles; pfrom,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,0,0,0,0,0); + if(part->from == PART_FROM_PARTICLE) { + VECCOPY(loc, pa->fuv); + } + else + psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,0,0,0,0,0); + Mat4MulVecfl(ob->obmat,loc); ec->distances[p]=VecLenf(loc,vec); VECSUB(loc,loc,vec); From 9982217a727f2714808aafbb8f56eb959c25fed9 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sat, 4 Apr 2009 14:34:39 +0000 Subject: [PATCH 073/201] Fix for: [#18273] reactor particle spowns to earlier. Particle life "rand" value could be set above "1.0" allowing for negative particle lifetimes. --- source/blender/src/buttons_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 04aa54f2526..6f871527ab7 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -4899,7 +4899,7 @@ static void object_panel_particle_system(Object *ob) if(part->type!=PART_HAIR) { uiDefButF(block, NUM, B_PART_INIT, "Life:", butx,(buty-=buth),butw,buth, &part->lifetime, 1.0, MAXFRAMEF, 100, 1, "Specify the life span of the particles"); - uiDefButF(block, NUM, B_PART_INIT, "Rand:", butx,(buty-=buth),butw,buth, &part->randlife, 0.0, 2.0, 10, 1, "Give the particle life a random variation"); + uiDefButF(block, NUM, B_PART_INIT, "Rand:", butx,(buty-=buth),butw,buth, &part->randlife, 0.0, 1.0, 10, 1, "Give the particle life a random variation"); } uiBlockEndAlign(block); From 04ef5a492af04fa9317245c7a843afed1cbd8252 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 4 Apr 2009 15:54:07 +0000 Subject: [PATCH 074/201] Made KX_MeshProxy use PyAttributeDef. simplified getting the 'materials' attribute (no need to differentiate between types) Added KX_GameObject 'meshes' attribute to replace getMesh(i) --- source/gameengine/Ketsji/KX_GameObject.cpp | 21 +++++++++- source/gameengine/Ketsji/KX_GameObject.h | 3 ++ source/gameengine/Ketsji/KX_MeshProxy.cpp | 47 ++++++++++++---------- source/gameengine/Ketsji/KX_MeshProxy.h | 2 + source/gameengine/PyDoc/KX_GameObject.py | 3 ++ 5 files changed, 53 insertions(+), 23 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 5bba9190bd6..d8fb54086b3 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1009,7 +1009,6 @@ PyMethodDef KX_GameObject::Methods[] = { {"removeParent", (PyCFunction)KX_GameObject::sPyRemoveParent,METH_NOARGS}, {"getChildren", (PyCFunction)KX_GameObject::sPyGetChildren,METH_NOARGS}, {"getChildrenRecursive", (PyCFunction)KX_GameObject::sPyGetChildrenRecursive,METH_NOARGS}, - {"getMesh", (PyCFunction)KX_GameObject::sPyGetMesh,METH_VARARGS}, {"getPhysicsId", (PyCFunction)KX_GameObject::sPyGetPhysicsId,METH_NOARGS}, {"getPropertyNames", (PyCFunction)KX_GameObject::sPyGetPropertyNames,METH_NOARGS}, {"replaceMesh",(PyCFunction) KX_GameObject::sPyReplaceMesh, METH_O}, @@ -1030,6 +1029,7 @@ PyMethodDef KX_GameObject::Methods[] = { {"getParent", (PyCFunction)KX_GameObject::sPyGetParent,METH_NOARGS}, {"getVisible",(PyCFunction) KX_GameObject::sPyGetVisible, METH_NOARGS}, {"getMass", (PyCFunction) KX_GameObject::sPyGetMass, METH_NOARGS}, + {"getMesh", (PyCFunction)KX_GameObject::sPyGetMesh,METH_VARARGS}, {NULL,NULL} //Sentinel }; @@ -1043,6 +1043,7 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_scaling, pyattr_set_scaling), KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), KX_PYATTRIBUTE_RW_FUNCTION("state", KX_GameObject, pyattr_get_state, pyattr_set_state), + KX_PYATTRIBUTE_RO_FUNCTION("meshes", KX_GameObject, pyattr_get_meshes), KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_GameObject, pyattr_get_dir_dict), {NULL} //Sentinel }; @@ -1416,6 +1417,22 @@ int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attr return 0; } +PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + PyObject *meshes= PyList_New(self->m_meshes.size()); + int i; + + for(i=0; i < self->m_meshes.size(); i++) + { + KX_MeshProxy* meshproxy = new KX_MeshProxy(self->m_meshes[i]); + PyList_SET_ITEM(meshes, i, meshproxy); + } + + return meshes; +} + + /* __dict__ only for the purpose of giving useful dir() results */ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { @@ -1758,6 +1775,8 @@ PyObject* KX_GameObject::PyGetChildrenRecursive(PyObject* self) PyObject* KX_GameObject::PyGetMesh(PyObject* self, PyObject* args) { + ShowDeprecationWarning("getMesh()", "the meshes property"); + int mesh = 0; if (!PyArg_ParseTuple(args, "|i:getMesh", &mesh)) diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 9ed35b6d26b..c2b0428240d 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -821,10 +821,13 @@ public: static int pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_meshes(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + /* getitem/setitem */ static Py_ssize_t Map_Len(PyObject* self); static PyMappingMethods Mapping; diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index f464cb798e8..4a4c98603e3 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -87,6 +87,7 @@ KX_PYMETHODTABLE(KX_MeshProxy, reinstancePhysicsMesh), }; PyAttributeDef KX_MeshProxy::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("materials", KX_MeshProxy, pyattr_get_materials), { NULL } //Sentinel }; @@ -96,30 +97,12 @@ void KX_MeshProxy::SetMeshModified(bool v) } -PyObject* -KX_MeshProxy::py_getattro(PyObject *attr) +PyObject* KX_MeshProxy::py_getattro(PyObject *attr) { - char *attr_str= PyString_AsString(attr); + PyObject* object = py_getattro_self(Attributes, this, attr); + if (object != NULL) + return object; - if (!strcmp(attr_str, "materials")) - { - PyObject *materials = PyList_New(0); - list::iterator mit = m_meshobj->GetFirstMaterial(); - for(; mit != m_meshobj->GetLastMaterial(); ++mit) - { - RAS_IPolyMaterial *polymat = mit->m_bucket->GetPolyMaterial(); - - if(polymat->GetFlag() & RAS_BLENDERMAT) - { - KX_BlenderMaterial *mat = static_cast(polymat); - PyList_Append(materials, mat); - }else - { - PyList_Append(materials, static_cast(polymat)); - } - } - return materials; - } py_getattro_up(SCA_IObject); } @@ -280,3 +263,23 @@ KX_PYMETHODDEF_DOC(KX_MeshProxy, reinstancePhysicsMesh, //this needs to be reviewed, it is dependend on Sumo/Solid. Who is using this ? Py_RETURN_NONE;//(KX_ReInstanceShapeFromMesh(m_meshobj)) ? Py_RETURN_TRUE : Py_RETURN_FALSE; } + +PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MeshProxy* self= static_cast(self_v); + + int tot= self->m_meshobj->NumMaterials(); + int i; + + PyObject *materials = PyList_New( tot ); + + list::iterator mit= self->m_meshobj->GetFirstMaterial(); + + /* Can be a KX_PolygonMaterial or KX_BlenderMaterial, since both are cast to a PyObject * we dont need to care */ + for(i=0; im_bucket->GetPolyMaterial(); + PyList_SET_ITEM(materials, i, py_mat); + Py_INCREF(py_mat); + } + return materials; +} diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index 0b9738153ff..56a6dfcac42 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -65,6 +65,8 @@ public: KX_PYMETHOD(KX_MeshProxy,GetVertex); KX_PYMETHOD(KX_MeshProxy,GetPolygon); KX_PYMETHOD_DOC(KX_MeshProxy, reinstancePhysicsMesh); + + static PyObject* pyattr_get_materials(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; #endif //__KX_MESHPROXY diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 694fe02a7cc..12a395287b0 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -26,6 +26,9 @@ class KX_GameObject: @type timeOffset: float @ivar state: the game object's state bitmask. @type state: int + @ivar meshes: a list of L{KX_MeshProxy} objects. + B{Note}: Changes to this list will not update the KX_GameObject + @type meshes: list """ def endObject(visible): """ From 53e721305ef76505257bba3c62c24a042a3030a9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 06:08:41 +0000 Subject: [PATCH 075/201] BGE Python API - made camera use PyAttributeDef's - removed unneeded duplicate matrix type checks - fixed own bug (added since 2.48a) that broke a converting 4x4 matrix to a PyObject --- source/gameengine/Ketsji/BL_Shader.cpp | 31 ++- source/gameengine/Ketsji/KX_Camera.cpp | 228 ++++++++++++++------- source/gameengine/Ketsji/KX_Camera.h | 20 ++ source/gameengine/Ketsji/KX_GameObject.cpp | 14 +- source/gameengine/Ketsji/KX_PyMath.cpp | 2 +- 5 files changed, 188 insertions(+), 107 deletions(-) diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index 279721b4840..c82a9979fe1 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -1278,19 +1278,16 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix4, int loc = GetUniformLocation(uniform); if(loc != -1) { - if (PyObject_IsMT_Matrix(matrix, 4)) + MT_Matrix4x4 mat; + if (PyMatTo(matrix, mat)) { - MT_Matrix4x4 mat; - if (PyMatTo(matrix, mat)) - { #ifdef SORT_UNIFORMS - mat.getValue(matr); - SetUniformfv(loc, BL_Uniform::UNI_MAT4, matr, (sizeof(float)*16), (transp!=0) ); + mat.getValue(matr); + SetUniformfv(loc, BL_Uniform::UNI_MAT4, matr, (sizeof(float)*16), (transp!=0) ); #else - SetUniform(loc,mat,(transp!=0)); + SetUniform(loc,mat,(transp!=0)); #endif - Py_RETURN_NONE; - } + Py_RETURN_NONE; } } } @@ -1319,20 +1316,16 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix3, int loc = GetUniformLocation(uniform); if(loc != -1) { - if (PyObject_IsMT_Matrix(matrix, 3)) + MT_Matrix3x3 mat; + if (PyMatTo(matrix, mat)) { - MT_Matrix3x3 mat; - if (PyMatTo(matrix, mat)) - { #ifdef SORT_UNIFORMS - mat.getValue(matr); - SetUniformfv(loc, BL_Uniform::UNI_MAT3, matr, (sizeof(float)*9), (transp!=0) ); + mat.getValue(matr); + SetUniformfv(loc, BL_Uniform::UNI_MAT3, matr, (sizeof(float)*9), (transp!=0) ); #else - SetUniform(loc,mat,(transp!=0)); + SetUniform(loc,mat,(transp!=0)); #endif - Py_RETURN_NONE; - - } + Py_RETURN_NONE; } } } diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index 19370d83322..1540db5c44f 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -484,6 +484,24 @@ PyMethodDef KX_Camera::Methods[] = { }; PyAttributeDef KX_Camera::Attributes[] = { + + KX_PYATTRIBUTE_BOOL_RW("frustum_culling", KX_Camera, m_frustum_culling), + KX_PYATTRIBUTE_RW_FUNCTION("perspective", KX_Camera, pyattr_get_perspective, pyattr_set_perspective), + + KX_PYATTRIBUTE_RW_FUNCTION("lens", KX_Camera, pyattr_get_lens, pyattr_set_lens), + 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_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), + KX_PYATTRIBUTE_RO_FUNCTION("world_to_camera", KX_Camera, pyattr_get_world_to_camera), + + /* Grrr, functions for constants? */ + KX_PYATTRIBUTE_RO_FUNCTION("INSIDE", KX_Camera, pyattr_get_INSIDE), + KX_PYATTRIBUTE_RO_FUNCTION("OUTSIDE", KX_Camera, pyattr_get_OUTSIDE), + KX_PYATTRIBUTE_RO_FUNCTION("INTERSECT", KX_Camera, pyattr_get_INTERSECT), + { NULL } //Sentinel }; @@ -516,91 +534,20 @@ PyParentObject KX_Camera::Parents[] = { PyObject* KX_Camera::py_getattro(PyObject *attr) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "INSIDE")) - return PyInt_FromLong(INSIDE); /* new ref */ - if (!strcmp(attr_str, "OUTSIDE")) - return PyInt_FromLong(OUTSIDE); /* new ref */ - if (!strcmp(attr_str, "INTERSECT")) - return PyInt_FromLong(INTERSECT); /* new ref */ - - if (!strcmp(attr_str, "lens")) - return PyFloat_FromDouble(GetLens()); /* new ref */ - if (!strcmp(attr_str, "near")) - return PyFloat_FromDouble(GetCameraNear()); /* new ref */ - if (!strcmp(attr_str, "far")) - return PyFloat_FromDouble(GetCameraFar()); /* new ref */ - if (!strcmp(attr_str, "frustum_culling")) - return PyInt_FromLong(m_frustum_culling); /* new ref */ - if (!strcmp(attr_str, "perspective")) - return PyInt_FromLong(m_camdata.m_perspective); /* new ref */ - if (!strcmp(attr_str, "projection_matrix")) - return PyObjectFrom(GetProjectionMatrix()); /* new ref */ - if (!strcmp(attr_str, "modelview_matrix")) - return PyObjectFrom(GetModelviewMatrix()); /* new ref */ - if (!strcmp(attr_str, "camera_to_world")) - return PyObjectFrom(GetCameraToWorld()); /* new ref */ - if (!strcmp(attr_str, "world_to_camera")) - return PyObjectFrom(GetWorldToCamera()); /* new ref */ + PyObject* object = py_getattro_self(Attributes, this, attr); + if (object != NULL) + return object; py_getattro_up(KX_GameObject); } -int KX_Camera::py_setattro(PyObject *attr, PyObject *pyvalue) +int KX_Camera::py_setattro(PyObject *attr, PyObject *value) { - char *attr_str= PyString_AsString(attr); + int ret = py_setattro_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; - if (PyInt_Check(pyvalue)) - { - if (!strcmp(attr_str, "frustum_culling")) - { - m_frustum_culling = PyInt_AsLong(pyvalue); - return 0; - } - - if (!strcmp(attr_str, "perspective")) - { - m_camdata.m_perspective = PyInt_AsLong(pyvalue); - return 0; - } - } - - if (PyFloat_Check(pyvalue)) - { - if (!strcmp(attr_str, "lens")) - { - m_camdata.m_lens = PyFloat_AsDouble(pyvalue); - m_set_projection_matrix = false; - return 0; - } - if (!strcmp(attr_str, "near")) - { - m_camdata.m_clipstart = PyFloat_AsDouble(pyvalue); - m_set_projection_matrix = false; - return 0; - } - if (!strcmp(attr_str, "far")) - { - m_camdata.m_clipend = PyFloat_AsDouble(pyvalue); - m_set_projection_matrix = false; - return 0; - } - } - - if (PyObject_IsMT_Matrix(pyvalue, 4)) - { - if (!strcmp(attr_str, "projection_matrix")) - { - MT_Matrix4x4 mat; - if (PyMatTo(pyvalue, mat)) - { - SetProjectionMatrix(mat); - return 0; - } - return 1; - } - } - return KX_GameObject::py_setattro(attr, pyvalue); + return KX_GameObject::py_setattro(attr, value); } KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, sphereInsideFrustum, @@ -831,3 +778,126 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Camera, setOnTop, scene->SetCameraOnTop(this); Py_RETURN_NONE; } + +PyObject* KX_Camera::pyattr_get_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyBool_FromLong(self->m_camdata.m_perspective); +} + +int KX_Camera::pyattr_set_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_Camera* self= static_cast(self_v); + int param = PyObject_IsTrue( value ); + if (param == -1) { + PyErr_SetString(PyExc_AttributeError, "expected True or False"); + return -1; + } + + self->m_camdata.m_perspective= param; + return 0; +} + +PyObject* KX_Camera::pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyFloat_FromDouble(self->m_camdata.m_lens); +} + +int KX_Camera::pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_Camera* self= static_cast(self_v); + float param = PyFloat_AsDouble(value); + if (param == -1) { + PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + return -1; + } + + self->m_camdata.m_lens= param; + self->m_set_projection_matrix = false; + return 0; +} + +PyObject* KX_Camera::pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyFloat_FromDouble(self->m_camdata.m_clipstart); +} + +int KX_Camera::pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_Camera* self= static_cast(self_v); + float param = PyFloat_AsDouble(value); + if (param == -1) { + PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + return -1; + } + + self->m_camdata.m_clipstart= param; + self->m_set_projection_matrix = false; + return 0; +} + +PyObject* KX_Camera::pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyFloat_FromDouble(self->m_camdata.m_clipend); +} + +int KX_Camera::pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_Camera* self= static_cast(self_v); + float param = PyFloat_AsDouble(value); + if (param == -1) { + PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + return -1; + } + + self->m_camdata.m_clipend= param; + self->m_set_projection_matrix = false; + return 0; +} + +PyObject* KX_Camera::pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyObjectFrom(self->GetProjectionMatrix()); +} + +int KX_Camera::pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_Camera* self= static_cast(self_v); + MT_Matrix4x4 mat; + if (!PyMatTo(value, mat)) + return -1; + + self->SetProjectionMatrix(mat); + return 0; +} + +PyObject* KX_Camera::pyattr_get_modelview_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyObjectFrom(self->GetModelviewMatrix()); +} + +PyObject* KX_Camera::pyattr_get_camera_to_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyObjectFrom(self->GetCameraToWorld()); +} + +PyObject* KX_Camera::pyattr_get_world_to_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_Camera* self= static_cast(self_v); + return PyObjectFrom(self->GetWorldToCamera()); +} + + +PyObject* KX_Camera::pyattr_get_INSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ return PyInt_FromLong(INSIDE); } +PyObject* KX_Camera::pyattr_get_OUTSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ return PyInt_FromLong(OUTSIDE); } +PyObject* KX_Camera::pyattr_get_INTERSECT(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ return PyInt_FromLong(INTERSECT); } + diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h index 499db66ab14..6ed21506372 100644 --- a/source/gameengine/Ketsji/KX_Camera.h +++ b/source/gameengine/Ketsji/KX_Camera.h @@ -267,7 +267,27 @@ public: virtual PyObject* py_getattro(PyObject *attr); /* lens, near, far, projection_matrix */ virtual int py_setattro(PyObject *attr, PyObject *pyvalue); + + static PyObject* pyattr_get_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + 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_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + + static PyObject* pyattr_get_modelview_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_camera_to_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_world_to_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + static PyObject* pyattr_get_INSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_OUTSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_INTERSECT(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; #endif //__KX_CAMERA diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index d8fb54086b3..dd38bdfb06f 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1303,16 +1303,14 @@ int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF } MT_Matrix3x3 rot; - if (PyObject_IsMT_Matrix(value, 3)) + + if (PyMatTo(value, rot)) { - if (PyMatTo(value, rot)) - { - self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f,true); - return 0; - } - return 1; + self->NodeSetLocalOrientation(rot); + self->NodeUpdateGS(0.f,true); + return 0; } + return 1; if (PySequence_Size(value) == 4) { diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp index 92f18590a7e..cceb7a12446 100644 --- a/source/gameengine/Ketsji/KX_PyMath.cpp +++ b/source/gameengine/Ketsji/KX_PyMath.cpp @@ -93,7 +93,7 @@ PyObject* PyObjectFrom(const MT_Matrix4x4 &mat) PyList_SET_ITEM(sublist, 0, PyFloat_FromDouble(mat[i][0])); PyList_SET_ITEM(sublist, 1, PyFloat_FromDouble(mat[i][1])); PyList_SET_ITEM(sublist, 2, PyFloat_FromDouble(mat[i][2])); - PyList_SET_ITEM(sublist, 2, PyFloat_FromDouble(mat[i][3])); + PyList_SET_ITEM(sublist, 3, PyFloat_FromDouble(mat[i][3])); PyList_SET_ITEM(list, i, sublist); } From 3fa7717b57f5d0c9667caec856e214c7597ce42c Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 5 Apr 2009 06:54:47 +0000 Subject: [PATCH 076/201] 2.4x - Grease Pencil: Swapping the order of args for gpencil_frame_delete_laststroke() to be more consistent with the rest of the Grease Pencil API. --- source/blender/include/BDR_gpencil.h | 2 +- source/blender/src/drawgpencil.c | 2 +- source/blender/src/gpencil.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/include/BDR_gpencil.h b/source/blender/include/BDR_gpencil.h index 6848be2a481..2835e414d1c 100644 --- a/source/blender/include/BDR_gpencil.h +++ b/source/blender/include/BDR_gpencil.h @@ -65,7 +65,7 @@ struct bGPdata *gpencil_data_getactive(struct ScrArea *sa); short gpencil_data_setactive(struct ScrArea *sa, struct bGPdata *gpd); struct ScrArea *gpencil_data_findowner(struct bGPdata *gpd); -void gpencil_frame_delete_laststroke(struct bGPDframe *gpf, bGPDlayer *gpl); +void gpencil_frame_delete_laststroke(struct bGPDlayer *gpl, struct bGPDframe *gpf); struct bGPDframe *gpencil_layer_getframe(struct bGPDlayer *gpl, int cframe, short addnew); void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf); diff --git a/source/blender/src/drawgpencil.c b/source/blender/src/drawgpencil.c index 3c6cef469a2..5cabb38887a 100644 --- a/source/blender/src/drawgpencil.c +++ b/source/blender/src/drawgpencil.c @@ -142,7 +142,7 @@ void gp_ui_delstroke_cb (void *gpd, void *gpl) if (gpf->framenum != CFRA) return; gpencil_layer_setactive(gpd, gpl); - gpencil_frame_delete_laststroke(gpf, gpl); + gpencil_frame_delete_laststroke(gpl, gpf); scrarea_queue_winredraw(curarea); } diff --git a/source/blender/src/gpencil.c b/source/blender/src/gpencil.c index c7e453c416c..4f50a83a3f2 100644 --- a/source/blender/src/gpencil.c +++ b/source/blender/src/gpencil.c @@ -484,7 +484,7 @@ ScrArea *gpencil_data_findowner (bGPdata *gpd) /* -------- GP-Frame API ---------- */ /* delete the last stroke of the given frame */ -void gpencil_frame_delete_laststroke (bGPDframe *gpf, bGPDlayer *gpl) +void gpencil_frame_delete_laststroke (bGPDlayer *gpl, bGPDframe *gpf) { bGPDstroke *gps= (gpf) ? gpf->strokes.last : NULL; @@ -704,7 +704,7 @@ void gpencil_delete_laststroke (bGPdata *gpd) if (gpf->framenum != CFRA) return; - gpencil_frame_delete_laststroke(gpf, gpl); + gpencil_frame_delete_laststroke(gpl, gpf); } /* delete the active frame */ From 77da8461f3ed620ec06d69315d24b22d514d26f4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 07:41:03 +0000 Subject: [PATCH 077/201] Make materials use PyAttributeDef's --- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 232 +++++++----------- source/gameengine/Ketsji/KX_PolygonMaterial.h | 12 + 2 files changed, 105 insertions(+), 139 deletions(-) diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index 6b9a6201d5c..c5bddd6d166 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -181,6 +181,28 @@ PyMethodDef KX_PolygonMaterial::Methods[] = { }; PyAttributeDef KX_PolygonMaterial::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("texture", KX_PolygonMaterial, pyattr_get_texture), + KX_PYATTRIBUTE_RO_FUNCTION("material", KX_PolygonMaterial, pyattr_get_material), /* should probably be .name ? */ + + KX_PYATTRIBUTE_INT_RW("tile", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tile), + KX_PYATTRIBUTE_INT_RW("tilexrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tilexrep), + KX_PYATTRIBUTE_INT_RW("tileyrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tileyrep), + KX_PYATTRIBUTE_INT_RW("drawingmode", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_drawingmode), + KX_PYATTRIBUTE_INT_RW("lightlayer", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_lightlayer), + + KX_PYATTRIBUTE_BOOL_RW("transparent", KX_PolygonMaterial, m_alpha), + KX_PYATTRIBUTE_BOOL_RW("zsort", KX_PolygonMaterial, m_zsort), + + KX_PYATTRIBUTE_FLOAT_RW("shininess", 0.0f, 1000.0f, KX_PolygonMaterial, m_shininess), + KX_PYATTRIBUTE_FLOAT_RW("specularity", 0.0f, 1000.0f, KX_PolygonMaterial, m_specularity), + + KX_PYATTRIBUTE_RW_FUNCTION("diffuse", KX_PolygonMaterial, pyattr_get_texture, pyattr_set_diffuse), + KX_PYATTRIBUTE_RW_FUNCTION("specular",KX_PolygonMaterial, pyattr_get_specular, pyattr_set_specular), + + KX_PYATTRIBUTE_RO_FUNCTION("tface", KX_PolygonMaterial, pyattr_get_tface), /* How the heck is this even useful??? - Campbell */ + KX_PYATTRIBUTE_RO_FUNCTION("gl_texture", KX_PolygonMaterial, pyattr_get_gl_texture), /* could be called 'bindcode' */ + + /* triangle used to be an attribute, removed for 2.49, nobody should be using it */ { NULL } //Sentinel }; @@ -211,151 +233,20 @@ PyParentObject KX_PolygonMaterial::Parents[] = { PyObject* KX_PolygonMaterial::py_getattro(PyObject *attr) { - char *attr_str= PyString_AsString(attr); - if (!strcmp(attr_str, "texture")) - return PyString_FromString(m_texturename.ReadPtr()); - if (!strcmp(attr_str, "material")) - return PyString_FromString(m_materialname.ReadPtr()); - - if (!strcmp(attr_str, "tface")) - return PyCObject_FromVoidPtr(m_tface, NULL); - - if (!strcmp(attr_str, "gl_texture")) - { - Image *ima = m_tface->tpage; - int bind = 0; - if (ima) - bind = ima->bindcode; - - return PyInt_FromLong(bind); - } - - if (!strcmp(attr_str, "tile")) - return PyInt_FromLong(m_tile); - if (!strcmp(attr_str, "tilexrep")) - return PyInt_FromLong(m_tilexrep); - if (!strcmp(attr_str, "tileyrep")) - return PyInt_FromLong(m_tileyrep); - - if (!strcmp(attr_str, "drawingmode")) - return PyInt_FromLong(m_drawingmode); - if (!strcmp(attr_str, "transparent")) - return PyInt_FromLong(m_alpha); - if (!strcmp(attr_str, "zsort")) - return PyInt_FromLong(m_zsort); - if (!strcmp(attr_str, "lightlayer")) - return PyInt_FromLong(m_lightlayer); - if (!strcmp(attr_str, "triangle")) - // deprecated, triangle/quads shouldn't have been a material property - return 0; - - if (!strcmp(attr_str, "diffuse")) - return PyObjectFrom(m_diffuse); - if (!strcmp(attr_str, "shininess")) - return PyFloat_FromDouble(m_shininess); - if (!strcmp(attr_str, "specular")) - return PyObjectFrom(m_specular); - if (!strcmp(attr_str, "specularity")) - return PyFloat_FromDouble(m_specularity); + PyObject* object = py_getattro_self(Attributes, this, attr); + if (object != NULL) + return object; py_getattro_up(PyObjectPlus); } -int KX_PolygonMaterial::py_setattro(PyObject *attr, PyObject *pyvalue) +int KX_PolygonMaterial::py_setattro(PyObject *attr, PyObject *value) { - char *attr_str= PyString_AsString(attr); - if (PyFloat_Check(pyvalue)) - { - float value = PyFloat_AsDouble(pyvalue); - if (!strcmp(attr_str, "shininess")) - { - m_shininess = value; - return 0; - } - - if (!strcmp(attr_str, "specularity")) - { - m_specularity = value; - return 0; - } - } - - if (PyInt_Check(pyvalue)) - { - int value = PyInt_AsLong(pyvalue); - if (!strcmp(attr_str, "tile")) - { - m_tile = value; - return 0; - } - - if (!strcmp(attr_str, "tilexrep")) - { - m_tilexrep = value; - return 0; - } - - if (!strcmp(attr_str, "tileyrep")) - { - m_tileyrep = value; - return 0; - } - - if (!strcmp(attr_str, "drawingmode")) - { - m_drawingmode = value; - return 0; - } - - if (!strcmp(attr_str, "transparent")) - { - m_alpha = value; - return 0; - } - - if (!strcmp(attr_str, "zsort")) - { - m_zsort = value; - return 0; - } - - if (!strcmp(attr_str, "lightlayer")) - { - m_lightlayer = value; - return 0; - } - - // This probably won't work... - if (!strcmp(attr_str, "triangle")) - { - // deprecated, triangle/quads shouldn't have been a material property - return 0; - } - } - - if (PySequence_Check(pyvalue)) - { - if (PySequence_Size(pyvalue) == 3) - { - MT_Vector3 value; - if (PyVecTo(pyvalue, value)) - { - if (!strcmp(attr_str, "diffuse")) - { - m_diffuse = value; - return 0; - } - - if (!strcmp(attr_str, "specular")) - { - m_specular = value; - return 0; - } - } - } - } + int ret = py_setattro_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; - return PyObjectPlus::py_setattro(attr, pyvalue); + return PyObjectPlus::py_setattro(attr, value); } KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setCustomMaterial, "setCustomMaterial(material)") @@ -419,3 +310,66 @@ KX_PYMETHODDEF_DOC(KX_PolygonMaterial, activate, "activate(rasty, cachingInfo)") return NULL; } + +PyObject* KX_PolygonMaterial::pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + return PyString_FromString(self->m_texturename.ReadPtr()); +} + +PyObject* KX_PolygonMaterial::pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + return PyString_FromString(self->m_materialname.ReadPtr()); +} + +/* this does not seem useful */ +PyObject* KX_PolygonMaterial::pyattr_get_tface(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + return PyCObject_FromVoidPtr(self->m_tface, NULL); +} + +PyObject* KX_PolygonMaterial::pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + Image *ima = self->m_tface->tpage; + return PyInt_FromLong(ima ? ima->bindcode:0); +} + + +PyObject* KX_PolygonMaterial::pyattr_get_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + return PyObjectFrom(self->m_diffuse); +} + +int KX_PolygonMaterial::pyattr_set_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_PolygonMaterial* self= static_cast(self_v); + MT_Vector3 vec; + + if (!PyVecTo(value, vec)) + return -1; + + self->m_diffuse= vec; + return 0; +} + +PyObject* KX_PolygonMaterial::pyattr_get_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_PolygonMaterial* self= static_cast(self_v); + return PyObjectFrom(self->m_specular); +} + +int KX_PolygonMaterial::pyattr_set_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_PolygonMaterial* self= static_cast(self_v); + MT_Vector3 vec; + + if (!PyVecTo(value, vec)) + return -1; + + self->m_specular= vec; + return 0; +} diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h index f3eb1979f34..1e8ce5c3367 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.h +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h @@ -117,6 +117,18 @@ public: virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *pyvalue); + + + static PyObject* pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + static PyObject* pyattr_get_tface(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + static PyObject* pyattr_get_diffuse(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_specular(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); }; #endif // __KX_POLYGONMATERIAL_H__ From f8cc2725755ae02f9a12ad9a346ddf326533cc3e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 08:48:51 +0000 Subject: [PATCH 078/201] added experimental KX_GameObject attributes "sensors", "controllers" and "actuators" --- source/gameengine/Ketsji/KX_GameObject.cpp | 47 ++++++++++++++++++++++ source/gameengine/Ketsji/KX_GameObject.h | 5 ++- source/gameengine/PyDoc/KX_GameObject.py | 25 ++++++++++-- 3 files changed, 73 insertions(+), 4 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index dd38bdfb06f..6f4aa2bc71a 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -64,6 +64,7 @@ typedef unsigned long uint_ptr; #include "KX_PyMath.h" #include "SCA_IActuator.h" #include "SCA_ISensor.h" +#include "SCA_IController.h" #include "PyObjectPlus.h" /* python stuff */ @@ -1044,7 +1045,14 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), KX_PYATTRIBUTE_RW_FUNCTION("state", KX_GameObject, pyattr_get_state, pyattr_set_state), KX_PYATTRIBUTE_RO_FUNCTION("meshes", KX_GameObject, pyattr_get_meshes), + KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_GameObject, pyattr_get_dir_dict), + + /* Experemental, dont rely on these yet */ + KX_PYATTRIBUTE_RO_FUNCTION("sensors", KX_GameObject, pyattr_get_sensors), + KX_PYATTRIBUTE_RO_FUNCTION("controllers", KX_GameObject, pyattr_get_controllers), + KX_PYATTRIBUTE_RO_FUNCTION("actuators", KX_GameObject, pyattr_get_actuators), + {NULL} //Sentinel }; @@ -1431,6 +1439,44 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE } +/* experemental! */ +PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + SCA_SensorList& sensors= self->GetSensors(); + PyObject* resultlist = PyList_New(sensors.size()); + + for (unsigned int index=0;indexAddRef()); + + return resultlist; +} + +PyObject* KX_GameObject::pyattr_get_controllers(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + SCA_ControllerList& controllers= self->GetControllers(); + PyObject* resultlist = PyList_New(controllers.size()); + + for (unsigned int index=0;indexAddRef()); + + return resultlist; +} + +PyObject* KX_GameObject::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + SCA_ActuatorList& actuators= self->GetActuators(); + PyObject* resultlist = PyList_New(actuators.size()); + + for (unsigned int index=0;indexAddRef()); + + return resultlist; +} + + /* __dict__ only for the purpose of giving useful dir() results */ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { @@ -1458,6 +1504,7 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ return dict; } + PyObject* KX_GameObject::py_getattro(PyObject *attr) { PyObject* object = py_getattro_self(Attributes, this, attr); diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index c2b0428240d..bc6b60102d6 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -826,7 +826,10 @@ public: /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - + /* Experemental! */ + static PyObject* pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_controllers(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); /* getitem/setitem */ static Py_ssize_t Map_Len(PyObject* self); diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 12a395287b0..a8d37cbbe53 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -1,7 +1,13 @@ # $Id$ # Documentation for game objects -class KX_GameObject: +# from SCA_IObject import * +from SCA_ISensor import * +from SCA_IController import * +from SCA_IActuator import * + + +class KX_GameObject: # (SCA_IObject) """ All game objects are derived from this class. @@ -26,9 +32,22 @@ class KX_GameObject: @type timeOffset: float @ivar state: the game object's state bitmask. @type state: int - @ivar meshes: a list of L{KX_MeshProxy} objects. + @ivar meshes: a list meshes for this object. + B{Note}: Most objects use only 1 mesh. + B{Note}: Changes to this list will not update the KX_GameObject. + @type meshes: list of L{KX_MeshProxy} + @ivar sensors: a list of L{SCA_ISensor} objects. + B{Note}: This attribute is experemental and may be removed (but probably wont be). B{Note}: Changes to this list will not update the KX_GameObject - @type meshes: list + @type sensors: list of L{SCA_ISensor} + @ivar controllers: a list of L{SCA_ISensor} objects. + B{Note}: This attribute is experemental and may be removed (but probably wont be). + B{Note}: Changes to this list will not update the KX_GameObject + @type controllers: list of L{SCA_IController} + @ivar the actuators assigned to this object. + B{Note}: This attribute is experemental and may be removed (but probably wont be). + B{Note}: Changes to this list will not update the KX_GameObject + @type actuators: a list of L{SCA_IActuator} """ def endObject(visible): """ From 7d4dc4f0f5d34d91703b2219323ef4a3db28a572 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 10:03:23 +0000 Subject: [PATCH 079/201] - fixed errors with bge epydocs - changed epy_docgen.sh so inherited attributes & methods are included inline for each type, removed source option since its not useful and makes the download bigger. --- source/gameengine/PyDoc/BL_ActionActuator.py | 8 ++-- .../PyDoc/BL_ShapeActionActuator.py | 3 +- source/gameengine/PyDoc/KX_ActuatorSensor.py | 1 + source/gameengine/PyDoc/KX_CDActuator.py | 36 ++++++++-------- source/gameengine/PyDoc/KX_GameObject.py | 43 ++++++++++--------- source/gameengine/PyDoc/KX_ParentActuator.py | 4 +- .../PyDoc/KX_SCA_DynamicActuator.py | 30 ++++++------- .../PyDoc/KX_SCA_ReplaceMeshActuator.py | 19 ++++---- source/gameengine/PyDoc/KX_Scene.py | 4 +- source/gameengine/PyDoc/KX_SceneActuator.py | 4 +- source/gameengine/PyDoc/KX_TrackToActuator.py | 12 +++--- .../gameengine/PyDoc/KX_VisibilityActuator.py | 14 +++--- source/gameengine/PyDoc/SCA_JoystickSensor.py | 14 +++--- source/gameengine/PyDoc/epy_docgen.sh | 2 +- 14 files changed, 97 insertions(+), 97 deletions(-) diff --git a/source/gameengine/PyDoc/BL_ActionActuator.py b/source/gameengine/PyDoc/BL_ActionActuator.py index 3e95befe16b..480681dc14a 100644 --- a/source/gameengine/PyDoc/BL_ActionActuator.py +++ b/source/gameengine/PyDoc/BL_ActionActuator.py @@ -1,7 +1,9 @@ # $Id$ # Documentation for BL_ActionActuator +import SCA_ILogicBrick from SCA_IActuator import * + class BL_ActionActuator(SCA_IActuator): """ Action Actuators apply an action to an actor. @@ -10,7 +12,7 @@ class BL_ActionActuator(SCA_IActuator): @type action: string @ivar start: Specifies the starting frame of the animation. @type start: float - @type end: Specifies the ending frame of the animation. + @ivar end: Specifies the ending frame of the animation. @type end: float @ivar blendin: Specifies the number of frames of animation to generate when making transitions between actions. @type blendin: float @@ -25,9 +27,7 @@ class BL_ActionActuator(SCA_IActuator): @ivar blendTime: Sets the internal frame timer. This property must be in the range from 0.0 to blendin. @type blendTime: float - @ivar type: The operation mode of the actuator. - KX_ACTIONACT_PLAY, KX_ACTIONACT_PROPERTY, KX_ACTIONACT_FLIPPER, - KX_ACTIONACT_LOOPSTOP, KX_ACTIONACT_LOOPEND + @ivar type: The operation mode of the actuator. KX_ACTIONACT_PLAY, KX_ACTIONACT_PROPERTY, KX_ACTIONACT_FLIPPER, KX_ACTIONACT_LOOPSTOP, KX_ACTIONACT_LOOPEND @type type: integer @ivar continue: The actions continue option, True or False. When True, the action will always play from where last left off, diff --git a/source/gameengine/PyDoc/BL_ShapeActionActuator.py b/source/gameengine/PyDoc/BL_ShapeActionActuator.py index 209ff4e5580..e1e8b039749 100644 --- a/source/gameengine/PyDoc/BL_ShapeActionActuator.py +++ b/source/gameengine/PyDoc/BL_ShapeActionActuator.py @@ -1,6 +1,7 @@ # $Id$ # Documentation for BL_ShapeActionActuator from SCA_IActuator import * +from SCA_ILogicBrick import * class BL_ShapeActionActuator(SCA_IActuator): """ @@ -10,7 +11,7 @@ class BL_ShapeActionActuator(SCA_IActuator): @type action: string @ivar start: Specifies the starting frame of the shape animation. @type start: float - @type end: Specifies the ending frame of the shape animation. + @ivar end: Specifies the ending frame of the shape animation. @type end: float @ivar blendin: Specifies the number of frames of animation to generate when making transitions between actions. @type blendin: float diff --git a/source/gameengine/PyDoc/KX_ActuatorSensor.py b/source/gameengine/PyDoc/KX_ActuatorSensor.py index b0e138a8009..27ee3a475e0 100644 --- a/source/gameengine/PyDoc/KX_ActuatorSensor.py +++ b/source/gameengine/PyDoc/KX_ActuatorSensor.py @@ -2,6 +2,7 @@ # Documentation for KX_ActuatorSensor from SCA_IActuator import * from SCA_ISensor import * +from SCA_ILogicBrick import * class KX_ActuatorSensor(SCA_ISensor): """ diff --git a/source/gameengine/PyDoc/KX_CDActuator.py b/source/gameengine/PyDoc/KX_CDActuator.py index ffc8ddefa43..e1067674e7e 100644 --- a/source/gameengine/PyDoc/KX_CDActuator.py +++ b/source/gameengine/PyDoc/KX_CDActuator.py @@ -3,13 +3,15 @@ from SCA_IActuator import * class KX_CDActuator(SCA_IActuator): - """ - CD Controller actuator. - @ivar volume: controls the volume to set the CD to. 0.0 = silent, 1.0 = max volume. - @type volume: float - @ivar track: the track selected to be played - @type track: integer - """ + """ + CD Controller actuator. + @ivar volume: controls the volume to set the CD to. 0.0 = silent, 1.0 = max volume. + @type volume: float + @ivar track: the track selected to be played + @type track: integer + @ivar gain: the gain (volume) of the CD between 0.0 and 1.0. + @type gain: float + """ def startCD(): """ Starts the CD playing. @@ -26,17 +28,17 @@ class KX_CDActuator(SCA_IActuator): """ Resumes the CD after a pause. """ - def playAll(): - """ - Plays the CD from the beginning. - """ - def playTrack(trackNumber): - """ - Plays the track selected. - """ + def playAll(): + """ + Plays the CD from the beginning. + """ + def playTrack(trackNumber): + """ + Plays the track selected. + """ def setGain(gain): """ - DEPRECATED: Use the volume property. + DEPRECATED: Use the volume property. Sets the gain (volume) of the CD. @type gain: float @@ -44,7 +46,7 @@ class KX_CDActuator(SCA_IActuator): """ def getGain(): """ - DEPRECATED: Use the volume property. + DEPRECATED: Use the volume property. Gets the current gain (volume) of the CD. @rtype: float diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index a8d37cbbe53..88c3a55280e 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -2,9 +2,9 @@ # Documentation for game objects # from SCA_IObject import * -from SCA_ISensor import * -from SCA_IController import * -from SCA_IActuator import * +# from SCA_ISensor import * +# from SCA_IController import * +# from SCA_IActuator import * class KX_GameObject: # (SCA_IObject) @@ -12,19 +12,20 @@ class KX_GameObject: # (SCA_IObject) All game objects are derived from this class. Properties assigned to game objects are accessible as attributes of this class. - + @ivar name: The object's name. (Read only) + - note: Currently (Blender 2.49) the prefix "OB" is added to all objects name. This may change in blender 2.5. @type name: string. @ivar mass: The object's mass (provided the object has a physics controller). Read only. @type mass: float @ivar parent: The object's parent object. (Read only) - @type parent: L{KX_GameObject} + @type parent: L{KX_GameObject} or None @ivar visible: visibility flag. + - note: Game logic will still run for invisible objects. @type visible: boolean @ivar position: The object's position. @type position: list [x, y, z] - @ivar orientation: The object's orientation. 3x3 Matrix. - You can also write a Quaternion or Euler vector. + @ivar orientation: The object's orientation. 3x3 Matrix. You can also write a Quaternion or Euler vector. @type orientation: 3x3 Matrix [[float]] @ivar scaling: The object's scaling factor. list [sx, sy, sz] @type scaling: list [sx, sy, sz] @@ -33,21 +34,21 @@ class KX_GameObject: # (SCA_IObject) @ivar state: the game object's state bitmask. @type state: int @ivar meshes: a list meshes for this object. - B{Note}: Most objects use only 1 mesh. - B{Note}: Changes to this list will not update the KX_GameObject. + - note: Most objects use only 1 mesh. + - note: Changes to this list will not update the KX_GameObject. @type meshes: list of L{KX_MeshProxy} @ivar sensors: a list of L{SCA_ISensor} objects. - B{Note}: This attribute is experemental and may be removed (but probably wont be). - B{Note}: Changes to this list will not update the KX_GameObject - @type sensors: list of L{SCA_ISensor} - @ivar controllers: a list of L{SCA_ISensor} objects. - B{Note}: This attribute is experemental and may be removed (but probably wont be). - B{Note}: Changes to this list will not update the KX_GameObject - @type controllers: list of L{SCA_IController} - @ivar the actuators assigned to this object. - B{Note}: This attribute is experemental and may be removed (but probably wont be). - B{Note}: Changes to this list will not update the KX_GameObject - @type actuators: a list of L{SCA_IActuator} + - note: This attribute is experemental and may be removed (but probably wont be). + - note: Changes to this list will not update the KX_GameObject. + @type sensors: list + @ivar controllers: a list of L{SCA_IController} objects. + - note: This attribute is experemental and may be removed (but probably wont be). + - note: Changes to this list will not update the KX_GameObject. + @type controllers: list of L{SCA_ISensor}. + @ivar actuators: a list of L{SCA_IActuator} objects. + - note: This attribute is experemental and may be removed (but probably wont be). + - note: Changes to this list will not update the KX_GameObject. + @type actuators: list """ def endObject(visible): """ @@ -159,7 +160,7 @@ class KX_GameObject: # (SCA_IObject) @param local: - False: you get the "global" movement ie: relative to world orientation (default). - True: you get the "local" movement ie: relative to object orientation. """ - def applyRotation(movement, local = 0): + def applyRotation(rotation, local = 0): """ Sets the game object's rotation. diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py index 4a5f72e7cc2..2f5d9515d0b 100644 --- a/source/gameengine/PyDoc/KX_ParentActuator.py +++ b/source/gameengine/PyDoc/KX_ParentActuator.py @@ -10,7 +10,7 @@ class KX_ParentActuator(SCA_IActuator): """ def setObject(object): """ - DEPRECATED: Use the object property. + DEPRECATED: Use the object property. Sets the object to set as parent. Object can be either a L{KX_GameObject} or the name of the object. @@ -19,7 +19,7 @@ class KX_ParentActuator(SCA_IActuator): """ def getObject(name_only = 1): """ - DEPRECATED: Use the object property. + DEPRECATED: Use the object property. Returns the name of the object to change to. @type name_only: bool @param name_only: optional argument, when 0 return a KX_GameObject diff --git a/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py index a6a3bce1f31..d65d3c22993 100644 --- a/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py @@ -5,26 +5,26 @@ from SCA_IActuator import * class KX_SCA_DynamicActuator(SCA_IActuator): """ Dynamic Actuator. - @ivar operation: the type of operation of the actuator, 0-4 - KX_DYN_RESTORE_DYNAMICS, KX_DYN_DISABLE_DYNAMICS, - KX_DYN_ENABLE_RIGID_BODY, KX_DYN_DISABLE_RIGID_BODY, KX_DYN_SET_MASS - @type operation: integer - @ivar mass: the mass value for the KX_DYN_SET_MASS operation - @type mass: float + @ivar operation: the type of operation of the actuator, 0-4 + KX_DYN_RESTORE_DYNAMICS, KX_DYN_DISABLE_DYNAMICS, + KX_DYN_ENABLE_RIGID_BODY, KX_DYN_DISABLE_RIGID_BODY, KX_DYN_SET_MASS + @type operation: integer + @ivar mass: the mass value for the KX_DYN_SET_MASS operation + @type mass: float """ def setOperation(operation): """ - DEPRECATED: Use the operation property instead. + DEPRECATED: Use the operation property instead. Set the type of operation when the actuator is activated: - 0 = restore dynamics - 1 = disable dynamics - 2 = enable rigid body - 3 = disable rigid body - 4 = set mass - """ - def getOperatoin() + - 0 = restore dynamics + - 1 = disable dynamics + - 2 = enable rigid body + - 3 = disable rigid body + - 4 = set mass """ - DEPRECATED: Use the operation property instead. + def getOperatoin(): + """ + DEPRECATED: Use the operation property instead. return the type of operation """ diff --git a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py index 1013dd53cb9..4397a9152d0 100644 --- a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py @@ -18,13 +18,13 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): # Mesh (name, near, far) # Meshes overlap so that they don't 'pop' when on the edge of the distance. meshes = ((".Hi", 0.0, -20.0), - (".Med", -15.0, -50.0), - (".Lo", -40.0, -100.0) - ) + (".Med", -15.0, -50.0), + (".Lo", -40.0, -100.0) + ) co = GameLogic.getCurrentController() obj = co.getOwner() - act = co.getActuator("LOD." + obj.getName()) + act = co.getActuator("LOD." + obj.name) cam = GameLogic.getCurrentScene().active_camera def Depth(pos, plane): @@ -39,10 +39,10 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): for mesh in meshes: if depth < mesh[1] and depth > mesh[2]: newmesh = mesh - if "ME" + obj.getName() + mesh[0] == act.getMesh(): + if "ME" + obj.name + mesh[0] == act.getMesh(): curmesh = mesh - if newmesh != None and "ME" + obj.getName() + newmesh[0] != act.getMesh(): + if newmesh != None and "ME" + obj.name + newmesh[0] != act.getMesh(): # The mesh is a different mesh - switch it. # Check the current mesh is not a better fit. if curmesh == None or curmesh[1] < depth or curmesh[2] > depth: @@ -55,15 +55,14 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): This will generate a warning in the console: C{ERROR: GameObject I{OBName} ReplaceMeshActuator I{ActuatorName} without object} - - Properties: + @ivar mesh: L{KX_MeshProxy} or the name of the mesh that will replace the current one Set to None to disable actuator @type mesh: L{KX_MeshProxy} or None if no mesh is set """ def setMesh(name): """ - DEPRECATED: Use the mesh property instead. + DEPRECATED: Use the mesh property instead. Sets the name of the mesh that will replace the current one. When the name is None it will unset the mesh value so no action is taken. @@ -71,7 +70,7 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): """ def getMesh(): """ - DEPRECATED: Use the mesh property instead. + DEPRECATED: Use the mesh property instead. Returns the name of the mesh that will replace the current one. Returns None if no mesh has been scheduled to be added. diff --git a/source/gameengine/PyDoc/KX_Scene.py b/source/gameengine/PyDoc/KX_Scene.py index 5e357e6eefc..4f7beb9e300 100644 --- a/source/gameengine/PyDoc/KX_Scene.py +++ b/source/gameengine/PyDoc/KX_Scene.py @@ -39,7 +39,7 @@ class KX_Scene: @ivar name: The scene's name @type name: string - @type objects: A list of objects in the scene. + @ivar objects: A list of objects in the scene. @type objects: list [L{KX_GameObject}] @ivar active_camera: The current active camera @type active_camera: L{KX_Camera} @@ -70,7 +70,7 @@ class KX_Scene: @rtype: string """ - def addObject(object, other, time=0) + def addObject(object, other, time=0): """ Adds an object to the scene like the Add Object Actuator would, and returns the created object. diff --git a/source/gameengine/PyDoc/KX_SceneActuator.py b/source/gameengine/PyDoc/KX_SceneActuator.py index c8912783ab7..6e27257533e 100644 --- a/source/gameengine/PyDoc/KX_SceneActuator.py +++ b/source/gameengine/PyDoc/KX_SceneActuator.py @@ -8,12 +8,10 @@ class KX_SceneActuator(SCA_IActuator): @warning: Scene actuators that use a scene name will be ignored if at game start, the named scene doesn't exist or is empty - + This will generate a warning in the console: C{ERROR: GameObject I{OBName} has a SceneActuator I{ActuatorName} (SetScene) without scene} - - Properties: @ivar scene: the name of the scene to change to/overlay/underlay/remove/suspend/resume @type scene: string. diff --git a/source/gameengine/PyDoc/KX_TrackToActuator.py b/source/gameengine/PyDoc/KX_TrackToActuator.py index ff533e22ac0..ee2dc5d6144 100644 --- a/source/gameengine/PyDoc/KX_TrackToActuator.py +++ b/source/gameengine/PyDoc/KX_TrackToActuator.py @@ -23,7 +23,7 @@ class KX_TrackToActuator(SCA_IActuator): """ def setObject(object): """ - DEPRECATED: Use the object property. + DEPRECATED: Use the object property. Sets the object to track. @type object: L{KX_GameObject}, string or None @@ -31,7 +31,7 @@ class KX_TrackToActuator(SCA_IActuator): """ def getObject(name_only): """ - DEPRECATED: Use the object property. + DEPRECATED: Use the object property. Returns the name of the object to track. @type name_only: bool @@ -40,21 +40,21 @@ class KX_TrackToActuator(SCA_IActuator): """ def setTime(time): """ - DEPRECATED: Use the time property. + DEPRECATED: Use the time property. Sets the time in frames with which to delay the tracking motion. @type time: integer """ def getTime(): """ - DEPRECATED: Use the time property. + DEPRECATED: Use the time property. Returns the time in frames with which the tracking motion is delayed. @rtype: integer """ def setUse3D(use3d): """ - DEPRECATED: Use the use3D property. + DEPRECATED: Use the use3D property. Sets the tracking motion to use 3D. @type use3d: boolean @@ -63,7 +63,7 @@ class KX_TrackToActuator(SCA_IActuator): """ def getUse3D(): """ - DEPRECATED: Use the use3D property. + DEPRECATED: Use the use3D property. Returns True if the tracking motion will track in the z direction. @rtype: boolean diff --git a/source/gameengine/PyDoc/KX_VisibilityActuator.py b/source/gameengine/PyDoc/KX_VisibilityActuator.py index 17d22fa5f83..aca8d1ce243 100644 --- a/source/gameengine/PyDoc/KX_VisibilityActuator.py +++ b/source/gameengine/PyDoc/KX_VisibilityActuator.py @@ -5,18 +5,16 @@ from SCA_IActuator import * class KX_VisibilityActuator(SCA_IActuator): """ Visibility Actuator. - @ivar visibility: whether the actuator makes its parent object visible or invisible - @type visibility: boolean - @ivar recursion: whether the visibility/invisibility should be propagated to all children of the object - @type recursion: boolean + @ivar visibility: whether the actuator makes its parent object visible or invisible + @type visibility: boolean + @ivar recursion: whether the visibility/invisibility should be propagated to all children of the object + @type recursion: boolean """ def set(visible): """ - DEPRECATED: Use the visibility property instead. + DEPRECATED: Use the visibility property instead. Sets whether the actuator makes its parent object visible or invisible. - + @param visible: - True: Makes its parent visible. - False: Makes its parent invisible. """ - - diff --git a/source/gameengine/PyDoc/SCA_JoystickSensor.py b/source/gameengine/PyDoc/SCA_JoystickSensor.py index 944ff64dc64..e38e023143d 100644 --- a/source/gameengine/PyDoc/SCA_JoystickSensor.py +++ b/source/gameengine/PyDoc/SCA_JoystickSensor.py @@ -41,13 +41,13 @@ class SCA_JoystickSensor(SCA_ISensor): Returns a list containing the indicies of the currently pressed buttons. @rtype: list """ - def getButtonStatus(buttonIndex): - """ - Returns a bool of the current pressed state of the specified button. - @param buttonIndex: the button index, 0=first button - @type buttonIndex: integer - @rtype: bool - """ + def getButtonStatus(buttonIndex): + """ + Returns a bool of the current pressed state of the specified button. + @param buttonIndex: the button index, 0=first button + @type buttonIndex: integer + @rtype: bool + """ def getIndex(): """ DEPRECATED: use the 'index' property. diff --git a/source/gameengine/PyDoc/epy_docgen.sh b/source/gameengine/PyDoc/epy_docgen.sh index b243101ddcb..ddf39dcc081 100755 --- a/source/gameengine/PyDoc/epy_docgen.sh +++ b/source/gameengine/PyDoc/epy_docgen.sh @@ -8,4 +8,4 @@ LC_ALL=POSIX epydoc --debug -v -o BPY_GE --url "http://www.blender.org" --top GameLogic \ - --name "Blender GameEngine" --no-private --no-frames *.py + --name "Blender GameEngine" --no-private --no-frames --no-sourcecode --inheritance=included *.py From 033a63f8580227582a9695ebdd78ac0b4322e867 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 14:01:49 +0000 Subject: [PATCH 080/201] BGE Bugfixes (mostly in the py api) KX_PolygonMaterial and KX_BlenderMaterial - Added a print function (would raise a python error on printing) * Crashes * KX_GameObject SetParent - Disallowed setting a parent to its self, caused a recursion crash. KX_MeshProxy "materials" attribute was segfaulting because of my recent change - I was wrong, you do need to check material types (no idea why since they are both PyObject * at the base) KX_VisibilityActuator - Wasn't initialized with PyType_Ready() making it crash on access (own fault) * Crashes because of missing NULL checks * KX_PolygonMaterial's "gl_texture" attribute wasnt checking for a valid m_tface KX_GameObject - added checks for GetPhysicsController() KX_RayCast::RayTest - didnt check for a valid physics_environment KX_SceneActuator's getCamera python function wasnt checking if there was a camera. --- source/gameengine/Ketsji/KX_BlenderMaterial.h | 1 + source/gameengine/Ketsji/KX_GameObject.cpp | 33 +++++++++--- source/gameengine/Ketsji/KX_MeshProxy.cpp | 53 ++++++++++++------- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 7 ++- source/gameengine/Ketsji/KX_PolygonMaterial.h | 3 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 2 + source/gameengine/Ketsji/KX_RayCast.cpp | 3 ++ source/gameengine/Ketsji/KX_SceneActuator.cpp | 7 ++- source/gameengine/PyDoc/KX_GameObject.py | 2 + 9 files changed, 82 insertions(+), 29 deletions(-) diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h index 2d9dc8fd022..48d4730ab07 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.h +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h @@ -84,6 +84,7 @@ public: // -------------------------------- virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *pyvalue); + virtual PyObject* py_repr(void) { return PyString_FromString(mMaterial->matname.ReadPtr()); } KX_PYMETHOD_DOC( KX_BlenderMaterial, getShader ); KX_PYMETHOD_DOC( KX_BlenderMaterial, getMaterialIndex ); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 6f4aa2bc71a..a788b12b121 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -73,6 +73,8 @@ typedef unsigned long uint_ptr; #include "KX_SG_NodeRelationships.h" +static MT_Point3 dummy_point= MT_Point3(0.0, 0.0, 0.0); + KX_GameObject::KX_GameObject( void* sgReplicationInfo, SG_Callbacks callbacks, @@ -943,7 +945,7 @@ const MT_Vector3& KX_GameObject::NodeGetWorldScaling() const } -static MT_Point3 dummy_point= MT_Point3(0.0, 0.0, 0.0); + const MT_Point3& KX_GameObject::NodeGetWorldPosition() const { // check on valid node in case a python controller holds a reference to a deleted object @@ -964,7 +966,8 @@ void KX_GameObject::Resume(void) { if (m_suspended) { SCA_IObject::Resume(); - GetPhysicsController()->RestoreDynamics(); + if(GetPhysicsController()) + GetPhysicsController()->RestoreDynamics(); m_suspended = false; } @@ -975,7 +978,8 @@ void KX_GameObject::Suspend() if ((!m_ignore_activity_culling) && (!m_suspended)) { SCA_IObject::Suspend(); - GetPhysicsController()->SuspendDynamics(); + if(GetPhysicsController()) + GetPhysicsController()->SuspendDynamics(); m_suspended = true; } } @@ -1717,7 +1721,7 @@ PyObject* KX_GameObject::PyGetVelocity(PyObject* self, PyObject* args) PyObject* KX_GameObject::PyGetMass(PyObject* self) { ShowDeprecationWarning("getMass()", "the mass property"); - return PyFloat_FromDouble(GetPhysicsController()->GetMass()); + return PyFloat_FromDouble((GetPhysicsController() != NULL) ? GetPhysicsController()->GetMass() : 0.0f); } @@ -1725,14 +1729,24 @@ PyObject* KX_GameObject::PyGetMass(PyObject* self) PyObject* KX_GameObject::PyGetReactionForce(PyObject* self) { // only can get the velocity if we have a physics object connected to us... - return PyObjectFrom(GetPhysicsController()->getReactionForce()); + + // XXX - Currently not working with bullet intergration, see KX_BulletPhysicsController.cpp's getReactionForce + /* + if (GetPhysicsController()) + return PyObjectFrom(GetPhysicsController()->getReactionForce()); + return PyObjectFrom(dummy_point); + */ + + return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f); + } PyObject* KX_GameObject::PyEnableRigidBody(PyObject* self) { - GetPhysicsController()->setRigidBody(true); + if(GetPhysicsController()) + GetPhysicsController()->setRigidBody(true); Py_RETURN_NONE; } @@ -1741,7 +1755,8 @@ PyObject* KX_GameObject::PyEnableRigidBody(PyObject* self) PyObject* KX_GameObject::PyDisableRigidBody(PyObject* self) { - GetPhysicsController()->setRigidBody(false); + if(GetPhysicsController()) + GetPhysicsController()->setRigidBody(false); Py_RETURN_NONE; } @@ -1763,6 +1778,10 @@ PyObject* KX_GameObject::PySetParent(PyObject* self, PyObject* value) PyErr_SetString(PyExc_TypeError, "expected a KX_GameObject type"); return NULL; } + if (self==value) { + PyErr_SetString(PyExc_ValueError, "cannot set the object to be its own parent!"); + return NULL; + } // The object we want to set as parent CValue *m_ob = (CValue*)value; diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 4a4c98603e3..d9b1cc6df23 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -190,24 +190,24 @@ PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* self, PyObject* args, PyObject* kwds) { - int matid= -1; - int length = -1; + int matid= 0; + int length = 0; - if (PyArg_ParseTuple(args,"i",&matid)) - { - RAS_MeshMaterial *mmat = m_meshobj->GetMeshMaterial(matid); - RAS_IPolyMaterial* mat = mmat->m_bucket->GetPolyMaterial(); + if (!PyArg_ParseTuple(args,"i",&matid)) + return NULL; + + RAS_MeshMaterial *mmat = m_meshobj->GetMeshMaterial(matid); /* can be NULL*/ + + if (mmat) + { + RAS_IPolyMaterial* mat = mmat->m_bucket->GetPolyMaterial(); if (mat) length = m_meshobj->NumVertices(mat); } - else { - return NULL; - } - + return PyInt_FromLong(length); - } @@ -244,15 +244,21 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* self, if (!PyArg_ParseTuple(args,"i",&polyindex)) return NULL; + + if (polyindex<0 || polyindex >= m_meshobj->NumPolygons()) + { + PyErr_SetString(PyExc_AttributeError, "Invalid polygon index"); + return NULL; + } + RAS_Polygon* polygon = m_meshobj->GetPolygon(polyindex); if (polygon) { polyob = new KX_PolyProxy(m_meshobj, polygon); } - else - { - PyErr_SetString(PyExc_AttributeError, "Invalid polygon index"); + else { + PyErr_SetString(PyExc_AttributeError, "polygon is NULL, unknown reason"); } return polyob; } @@ -275,11 +281,22 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_ list::iterator mit= self->m_meshobj->GetFirstMaterial(); - /* Can be a KX_PolygonMaterial or KX_BlenderMaterial, since both are cast to a PyObject * we dont need to care */ + for(i=0; im_bucket->GetPolyMaterial(); - PyList_SET_ITEM(materials, i, py_mat); - Py_INCREF(py_mat); + RAS_IPolyMaterial *polymat = mit->m_bucket->GetPolyMaterial(); + + /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject*)? - Campbell */ + if(polymat->GetFlag() & RAS_BLENDERMAT) + { + KX_BlenderMaterial *mat = static_cast(polymat); + PyList_SET_ITEM(materials, i, mat); + Py_INCREF(mat); + } + else { + KX_PolygonMaterial *mat = static_cast(polymat); + PyList_SET_ITEM(materials, i, mat); + Py_INCREF(mat); + } } return materials; } diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index c5bddd6d166..3975189a9c2 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -333,8 +333,11 @@ PyObject* KX_PolygonMaterial::pyattr_get_tface(void *self_v, const KX_PYATTRIBUT PyObject* KX_PolygonMaterial::pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_PolygonMaterial* self= static_cast(self_v); - Image *ima = self->m_tface->tpage; - return PyInt_FromLong(ima ? ima->bindcode:0); + int bindcode= 0; + if (self->m_tface && self->m_tface->tpage) + bindcode= self->m_tface->tpage->bindcode; + + return PyInt_FromLong(bindcode); } diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h index 1e8ce5c3367..9865a66e836 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.h +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h @@ -33,6 +33,7 @@ #include "RAS_MaterialBucket.h" #include "RAS_IRasterizer.h" +#include "DNA_ID.h" struct MTFace; struct Material; @@ -117,7 +118,7 @@ public: virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *pyvalue); - + virtual PyObject* py_repr(void) { return PyString_FromString(m_material ? ((ID *)m_material)->name+2 : ""); } static PyObject* pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index e2ff4ced122..8eeed5d853b 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -80,6 +80,7 @@ #include "KX_SCA_DynamicActuator.h" #include "KX_SoundActuator.h" #include "KX_TouchSensor.h" +#include "KX_VisibilityActuator.h" #include "SCA_PropertySensor.h" #include "SCA_PythonController.h" #include "SCA_RandomActuator.h" @@ -177,6 +178,7 @@ void initPyTypes(void) PyType_Ready(&KX_TrackToActuator::Type); PyType_Ready(&KX_VehicleWrapper::Type); PyType_Ready(&KX_VertexProxy::Type); + PyType_Ready(&KX_VisibilityActuator::Type); PyType_Ready(&PyObjectPlus::Type); PyType_Ready(&SCA_2DFilterActuator::Type); PyType_Ready(&SCA_ANDController::Type); diff --git a/source/gameengine/Ketsji/KX_RayCast.cpp b/source/gameengine/Ketsji/KX_RayCast.cpp index 974d4b992a6..8c7612bf663 100644 --- a/source/gameengine/Ketsji/KX_RayCast.cpp +++ b/source/gameengine/Ketsji/KX_RayCast.cpp @@ -56,12 +56,15 @@ void KX_RayCast::reportHit(PHY_RayCastResult* result) bool KX_RayCast::RayTest(PHY_IPhysicsEnvironment* physics_environment, const MT_Point3& _frompoint, const MT_Point3& topoint, KX_RayCast& callback) { + if(physics_environment==NULL) return false; /* prevents crashing in some cases */ + // Loops over all physics objects between frompoint and topoint, // calling callback.RayHit for each one. // // callback.RayHit should return true to stop looking, or false to continue. // // returns true if an object was found, false if not. + MT_Point3 frompoint(_frompoint); const MT_Vector3 todir( (topoint - frompoint).safe_normalized() ); MT_Point3 prevpoint(_frompoint+todir*(-1.f)); diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 40a2ff2ef66..f158eb29dd7 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -468,6 +468,11 @@ PyObject* KX_SceneActuator::PyGetCamera(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("getCamera()", "the camera property"); - return PyString_FromString(m_camera->GetName()); + if (m_camera) { + PyString_FromString(m_camera->GetName()); + } + else { + Py_RETURN_NONE; + } } /* eof */ diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 88c3a55280e..97e53ffacaa 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -270,6 +270,8 @@ class KX_GameObject: # (SCA_IObject) The reaction force is the force applied to this object over the last simulation timestep. This also includes impulses, eg from collisions. + (B{This is not implimented for bullet physics at the moment}) + @rtype: list [fx, fy, fz] @return: the reaction force of this object. """ From 3dacfbb23161a1b779c2c4ac0f06431c5adda6a2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 14:55:50 +0000 Subject: [PATCH 081/201] BGE Python API - action attribute wasnt checking for NULL (own fault) - KX_Scene getCamera wasnt checking for NULL - CListValue had asserts for not yet implimented functionality, this would close blender. Better to print an error if the user manages to run this functions (I managed to by CListValue.count([1,2,3])) --- source/gameengine/Converter/BL_ActionActuator.cpp | 2 +- .../gameengine/Converter/BL_ShapeActionActuator.cpp | 2 +- source/gameengine/Expressions/ListValue.cpp | 12 +++++++++--- source/gameengine/Ketsji/KX_SceneActuator.cpp | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 46ad344c5dd..9102c453a16 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1055,7 +1055,7 @@ int BL_ActionActuator::py_setattro(PyObject *attr, PyObject* value) { PyObject* BL_ActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { BL_ActionActuator* self= static_cast(self_v); - return PyString_FromString(self->GetAction()->id.name+2); + return PyString_FromString(self->GetAction() ? self->GetAction()->id.name+2 : ""); } int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index a6dbf088ee3..d52cc8cfccc 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -886,7 +886,7 @@ PyObject* BL_ShapeActionActuator::PySetType(PyObject* self, PyObject* BL_ShapeActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { BL_ShapeActionActuator* self= static_cast(self_v); - return PyString_FromString(self->GetAction()->id.name+2); + return PyString_FromString(self->GetAction() ? self->GetAction()->id.name+2 : ""); } int BL_ShapeActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 15eb8835b79..d0aec645468 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -430,6 +430,10 @@ bool CListValue::CheckEqual(CValue* first,CValue* second) bool result = false; CValue* eqval = ((CValue*)first)->Calc(VALUE_EQL_OPERATOR,(CValue*)second); + + if (eqval==NULL) + return false; + STR_String txt = eqval->GetText(); eqval->Release(); if (txt=="TRUE") @@ -479,7 +483,7 @@ PyObject* CListValue::Pycount(PyObject* self, PyObject* value) if (checkobj==NULL) { /* in this case just return that there are no items in the list */ PyErr_Clear(); - PyInt_FromLong(0); + return PyInt_FromLong(0); } int numelem = GetCount(); @@ -503,7 +507,8 @@ PyObject* CListValue::Pycount(PyObject* self, PyObject* value) * --------------------------------------------------------------------- */ CValue* CListValue::Calc(VALUE_OPERATOR op,CValue *val) { - assert(false); // todo: implement me! + //assert(false); // todo: implement me! + fprintf(stderr, "CValueList::Calc not yet implimented\n"); return NULL; } @@ -513,7 +518,8 @@ CValue* CListValue::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue* val) { - assert(false); // todo: implement me! + //assert(false); // todo: implement me! + fprintf(stderr, "CValueList::CalcFinal not yet implimented\n"); return NULL; } diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index f158eb29dd7..e1cd3d45503 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -469,7 +469,7 @@ PyObject* KX_SceneActuator::PyGetCamera(PyObject* self, { ShowDeprecationWarning("getCamera()", "the camera property"); if (m_camera) { - PyString_FromString(m_camera->GetName()); + return PyString_FromString(m_camera->GetName()); } else { Py_RETURN_NONE; From b4e4ccf92ddc8a7d4ed3da13c589b2f7c44baa0d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Apr 2009 19:37:13 +0000 Subject: [PATCH 082/201] BGE PyAPI can now import text (within the blend-file) Previously this only worked with the Blender API. - bpy_internal_import small C file that Blender scripting and the game engine use. - Tested with blender, blenderplayer, loading files - Needed to use a hack to override the Main struct since the game engine doesn't set G.main - when the sandbox is set, only internal scripts can be imported. --- source/blender/python/BPY_interface.c | 177 +------------- .../python/api2_2x/bpy_internal_import.c | 230 ++++++++++++++++++ .../python/api2_2x/bpy_internal_import.h | 48 ++++ .../BlenderRoutines/BL_KetsjiEmbedStart.cpp | 4 +- .../GamePlayer/ghost/GPG_Application.cpp | 2 +- source/gameengine/Ketsji/CMakeLists.txt | 1 + source/gameengine/Ketsji/KX_PythonInit.cpp | 49 +++- source/gameengine/Ketsji/KX_PythonInit.h | 4 +- source/gameengine/Ketsji/SConscript | 6 +- 9 files changed, 333 insertions(+), 188 deletions(-) create mode 100644 source/blender/python/api2_2x/bpy_internal_import.c create mode 100644 source/blender/python/api2_2x/bpy_internal_import.h diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index ec81de1f5e8..4de7942666c 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -71,6 +71,7 @@ #include "api2_2x/Registry.h" #include "api2_2x/Pose.h" #include "api2_2x/bpy.h" /* for the new "bpy" module */ +#include "api2_2x/bpy_internal_import.h" /*these next two are for pyconstraints*/ #include "api2_2x/IDProp.h" @@ -164,10 +165,8 @@ static PyObject *RunPython( Text * text, PyObject * globaldict ); static PyObject *CreateGlobalDictionary( void ); static void ReleaseGlobalDictionary( PyObject * dict ); static void DoAllScriptsFromList( ListBase * list, short event ); -static PyObject *importText( char *name ); static void init_ourImport( void ); static void init_ourReload( void ); -static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * kw); static void BPY_Err_Handle( char *script_name ); @@ -2821,91 +2820,11 @@ static void DoAllScriptsFromList( ListBase * list, short event ) return; } -static PyObject *importText( char *name ) -{ - Text *text; - char txtname[22]; /* 21+NULL */ - char *buf = NULL; - int namelen = strlen( name ); - - if (namelen>21-3) return NULL; /* we know this cant be importable, the name is too long for blender! */ - - memcpy( txtname, name, namelen ); - memcpy( &txtname[namelen], ".py", 4 ); - - for(text = G.main->text.first; text; text = text->id.next) { - if( !strcmp( txtname, text->id.name+2 ) ) - break; - } - - if( !text ) - return NULL; - - if( !text->compiled ) { - buf = txt_to_buf( text ); - text->compiled = Py_CompileString( buf, text->id.name+2, Py_file_input ); - MEM_freeN( buf ); - - if( PyErr_Occurred( ) ) { - PyErr_Print( ); - BPY_free_compiled_text( text ); - return NULL; - } - } - - return PyImport_ExecCodeModule( name, text->compiled ); -} - -static PyMethodDef bimport[] = { - {"blimport", blender_import, METH_KEYWORDS, "our own import"} -}; - -static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * kw) -{ - PyObject *exception, *err, *tb; - char *name; - PyObject *globals = NULL, *locals = NULL, *fromlist = NULL; - PyObject *m; - - //PyObject_Print(args, stderr, 0); -#if (PY_VERSION_HEX >= 0x02060000) - int dummy_val; /* what does this do?*/ - static char *kwlist[] = {"name", "globals", "locals", "fromlist", "level", 0}; - - if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bimport", kwlist, - &name, &globals, &locals, &fromlist, &dummy_val) ) - return NULL; -#else - static char *kwlist[] = {"name", "globals", "locals", "fromlist", 0}; - - if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bimport", kwlist, - &name, &globals, &locals, &fromlist ) ) - return NULL; -#endif - m = PyImport_ImportModuleEx( name, globals, locals, fromlist ); - - if( m ) - return m; - else - PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ - - m = importText( name ); - if( m ) { /* found module, ignore above exception */ - PyErr_Clear( ); - Py_XDECREF( exception ); - Py_XDECREF( err ); - Py_XDECREF( tb ); - printf( "imported from text buffer...\n" ); - } else { - PyErr_Restore( exception, err, tb ); - } - return m; -} static void init_ourImport( void ) { PyObject *m, *d; - PyObject *import = PyCFunction_New( bimport, NULL ); + PyObject *import = PyCFunction_New( bpy_import, NULL ); m = PyImport_AddModule( "__builtin__" ); d = PyModule_GetDict( m ); @@ -2913,100 +2832,10 @@ static void init_ourImport( void ) EXPP_dict_set_item_str( d, "__import__", import ); } -/* - * find in-memory module and recompile - */ - -static PyObject *reimportText( PyObject *module ) -{ - Text *text; - char *txtname; - char *name; - char *buf = NULL; - - /* get name, filename from the module itself */ - - txtname = PyModule_GetFilename( module ); - name = PyModule_GetName( module ); - if( !txtname || !name) - return NULL; - - /* look up the text object */ - text = ( Text * ) & ( G.main->text.first ); - while( text ) { - if( !strcmp( txtname, text->id.name+2 ) ) - break; - text = text->id.next; - } - - /* uh-oh.... didn't find it */ - if( !text ) - return NULL; - - /* if previously compiled, free the object */ - /* (can't see how could be NULL, but check just in case) */ - if( text->compiled ){ - Py_DECREF( (PyObject *)text->compiled ); - } - - /* compile the buffer */ - buf = txt_to_buf( text ); - text->compiled = Py_CompileString( buf, text->id.name+2, Py_file_input ); - MEM_freeN( buf ); - - /* if compile failed.... return this error */ - if( PyErr_Occurred( ) ) { - PyErr_Print( ); - BPY_free_compiled_text( text ); - return NULL; - } - - /* make into a module */ - return PyImport_ExecCodeModule( name, text->compiled ); -} - -/* - * our reload() module, to handle reloading in-memory scripts - */ - -static PyObject *blender_reload( PyObject * self, PyObject * args ) -{ - PyObject *exception, *err, *tb; - PyObject *module = NULL; - PyObject *newmodule = NULL; - - /* check for a module arg */ - if( !PyArg_ParseTuple( args, "O:breload", &module ) ) - return NULL; - - /* try reimporting from file */ - newmodule = PyImport_ReloadModule( module ); - if( newmodule ) - return newmodule; - - /* no file, try importing from memory */ - PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ - - newmodule = reimportText( module ); - if( newmodule ) { /* found module, ignore above exception */ - PyErr_Clear( ); - Py_XDECREF( exception ); - Py_XDECREF( err ); - Py_XDECREF( tb ); - } else - PyErr_Restore( exception, err, tb ); - - return newmodule; -} - -static PyMethodDef breload[] = { - {"blreload", blender_reload, METH_VARARGS, "our own reload"} -}; - static void init_ourReload( void ) { PyObject *m, *d; - PyObject *reload = PyCFunction_New( breload, NULL ); + PyObject *reload = PyCFunction_New( bpy_reload, NULL ); m = PyImport_AddModule( "__builtin__" ); d = PyModule_GetDict( m ); diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c new file mode 100644 index 00000000000..fe69950f8c9 --- /dev/null +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -0,0 +1,230 @@ +/* + * $Id: bpy_types.h 14444 2008-04-16 22:40:48Z hos $ + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Willian P. Germano + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +#include "bpy_internal_import.h" +#include "DNA_text_types.h" +#include "DNA_ID.h" + +#include "BKE_global.h" +#include "MEM_guardedalloc.h" +#include "BKE_text.h" /* txt_to_buf */ +#include "BKE_main.h" + +static Main *bpy_import_main= NULL; + +static void free_compiled_text(Text *text) +{ + if(text->compiled) { + Py_DECREF(text->compiled); + } + text->compiled= NULL; +} + +struct Main *bpy_import_main_get(void) +{ + return bpy_import_main; +} + +void bpy_import_main_set(struct Main *maggie) +{ + bpy_import_main= maggie; +} + + +PyObject *importText( char *name ) +{ + Text *text; + char txtname[22]; /* 21+NULL */ + char *buf = NULL; + int namelen = strlen( name ); + Main *maggie= bpy_import_main ? bpy_import_main:G.main; + + if (namelen>21-3) return NULL; /* we know this cant be importable, the name is too long for blender! */ + + memcpy( txtname, name, namelen ); + memcpy( &txtname[namelen], ".py", 4 ); + + for(text = maggie->text.first; text; text = text->id.next) { + fprintf(stderr, "%s | %s\n", txtname, text->id.name+2); + if( !strcmp( txtname, text->id.name+2 ) ) + break; + } + + if( !text ) + return NULL; + + if( !text->compiled ) { + buf = txt_to_buf( text ); + text->compiled = Py_CompileString( buf, text->id.name+2, Py_file_input ); + MEM_freeN( buf ); + + if( PyErr_Occurred( ) ) { + PyErr_Print( ); + free_compiled_text( text ); + return NULL; + } + } + + return PyImport_ExecCodeModule( name, text->compiled ); +} + + +/* + * find in-memory module and recompile + */ + +PyObject *reimportText( PyObject *module ) +{ + Text *text; + char *txtname; + char *name; + char *buf = NULL; + Main *maggie= bpy_import_main ? bpy_import_main:G.main; + + /* get name, filename from the module itself */ + + txtname = PyModule_GetFilename( module ); + name = PyModule_GetName( module ); + if( !txtname || !name) + return NULL; + + /* look up the text object */ + text = ( Text * ) & ( maggie->text.first ); + while( text ) { + if( !strcmp( txtname, text->id.name+2 ) ) + break; + text = text->id.next; + } + + /* uh-oh.... didn't find it */ + if( !text ) + return NULL; + + /* if previously compiled, free the object */ + /* (can't see how could be NULL, but check just in case) */ + if( text->compiled ){ + Py_DECREF( (PyObject *)text->compiled ); + } + + /* compile the buffer */ + buf = txt_to_buf( text ); + text->compiled = Py_CompileString( buf, text->id.name+2, Py_file_input ); + MEM_freeN( buf ); + + /* if compile failed.... return this error */ + if( PyErr_Occurred( ) ) { + PyErr_Print( ); + free_compiled_text( text ); + return NULL; + } + + /* make into a module */ + return PyImport_ExecCodeModule( name, text->compiled ); +} + + +static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * kw) +{ + PyObject *exception, *err, *tb; + char *name; + PyObject *globals = NULL, *locals = NULL, *fromlist = NULL; + PyObject *m; + + //PyObject_Print(args, stderr, 0); +#if (PY_VERSION_HEX >= 0x02060000) + int dummy_val; /* what does this do?*/ + static char *kwlist[] = {"name", "globals", "locals", "fromlist", "level", 0}; + + if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bpy_import", kwlist, + &name, &globals, &locals, &fromlist, &dummy_val) ) + return NULL; +#else + static char *kwlist[] = {"name", "globals", "locals", "fromlist", 0}; + + if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bpy_import", kwlist, + &name, &globals, &locals, &fromlist ) ) + return NULL; +#endif + m = PyImport_ImportModuleEx( name, globals, locals, fromlist ); + + if( m ) + return m; + else + PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ + + m = importText( name ); + if( m ) { /* found module, ignore above exception */ + PyErr_Clear( ); + Py_XDECREF( exception ); + Py_XDECREF( err ); + Py_XDECREF( tb ); + printf( "imported from text buffer...\n" ); + } else { + PyErr_Restore( exception, err, tb ); + } + return m; +} + + +/* + * our reload() module, to handle reloading in-memory scripts + */ + +static PyObject *blender_reload( PyObject * self, PyObject * args ) +{ + PyObject *exception, *err, *tb; + PyObject *module = NULL; + PyObject *newmodule = NULL; + + /* check for a module arg */ + if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) + return NULL; + + /* try reimporting from file */ + newmodule = PyImport_ReloadModule( module ); + if( newmodule ) + return newmodule; + + /* no file, try importing from memory */ + PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ + + newmodule = reimportText( module ); + if( newmodule ) { /* found module, ignore above exception */ + PyErr_Clear( ); + Py_XDECREF( exception ); + Py_XDECREF( err ); + Py_XDECREF( tb ); + } else + PyErr_Restore( exception, err, tb ); + + return newmodule; +} + +PyMethodDef bpy_import[] = { {"bpy_import", blender_import, METH_KEYWORDS, "blenders import"} }; +PyMethodDef bpy_reload[] = { {"bpy_reload", blender_reload, METH_VARARGS, "blenders reload"} }; + diff --git a/source/blender/python/api2_2x/bpy_internal_import.h b/source/blender/python/api2_2x/bpy_internal_import.h new file mode 100644 index 00000000000..773749b10f9 --- /dev/null +++ b/source/blender/python/api2_2x/bpy_internal_import.h @@ -0,0 +1,48 @@ +/* + * $Id: bpy_types.h 14444 2008-04-16 22:40:48Z hos $ + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * This is a new part of Blender. + * + * Contributor(s): Willian P. Germano, Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** +*/ + +/* Note, the BGE needs to use this too, keep it minimal */ + +#ifndef EXPP_bpy_import_h +#define EXPP_bpy_import_h + +#include +#include "compile.h" /* for the PyCodeObject */ +#include "eval.h" /* for PyEval_EvalCode */ + +PyObject *importText( char *name ); +PyObject *reimportText( PyObject *module ); +extern PyMethodDef bpy_import[]; +extern PyMethodDef bpy_reload[]; + +/* The game engine has its own Main struct, if this is set search this rather then G.main */ +struct Main *bpy_import_main_get(void); +void bpy_import_main_set(struct Main *maggie); + + +#endif /* EXPP_bpy_import_h */ diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index d89d2d80ab4..1d4cd011fe4 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -357,7 +357,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, blscene); // some python things - PyObject* dictionaryobject = initGamePythonScripting("Ketsji", psl_Lowest); + PyObject* dictionaryobject = initGamePythonScripting("Ketsji", psl_Lowest, blenderdata); ketsjiengine->SetPythonDictionary(dictionaryobject); initRasterizer(rasterizer, canvas); PyObject *gameLogic = initGameLogic(ketsjiengine, startscene); @@ -656,7 +656,7 @@ extern "C" void StartKetsjiShellSimulation(struct ScrArea *area, blscene); // some python things - PyObject* dictionaryobject = initGamePythonScripting("Ketsji", psl_Lowest); + PyObject* dictionaryobject = initGamePythonScripting("Ketsji", psl_Lowest, blenderdata); ketsjiengine->SetPythonDictionary(dictionaryobject); initRasterizer(rasterizer, canvas); PyObject *gameLogic = initGameLogic(ketsjiengine, startscene); diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index cca344a03bb..6d846610109 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -681,7 +681,7 @@ bool GPG_Application::startEngine(void) // some python things - PyObject* dictionaryobject = initGamePlayerPythonScripting("Ketsji", psl_Lowest); + PyObject* dictionaryobject = initGamePlayerPythonScripting("Ketsji", psl_Lowest, m_maggie); m_ketsjiengine->SetPythonDictionary(dictionaryobject); initRasterizer(m_rasterizer, m_canvas); PyObject *gameLogic = initGameLogic(m_ketsjiengine, startscene); diff --git a/source/gameengine/Ketsji/CMakeLists.txt b/source/gameengine/Ketsji/CMakeLists.txt index 58411f6d25e..3bd05ca5137 100644 --- a/source/gameengine/Ketsji/CMakeLists.txt +++ b/source/gameengine/Ketsji/CMakeLists.txt @@ -35,6 +35,7 @@ SET(SRC ../../../source/blender/python/api2_2x/point.c ../../../source/blender/python/api2_2x/quat.c ../../../source/blender/python/api2_2x/vector.c + ../../../source/blender/python/api2_2x/bpy_internal_import.c ) SET(INC diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index f065eb29c44..ef7655f38a2 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -77,6 +77,7 @@ extern "C" { #include "Mathutils.h" // Blender.Mathutils module copied here so the blenderlayer can use. + #include "bpy_internal_import.h" /* from the blender python api, but we want to import text too! */ } #include "marshal.h" /* python header for loading/saving dicts */ @@ -1107,11 +1108,6 @@ PyObject *KXpy_open(PyObject *self, PyObject *args) { return NULL; } -PyObject *KXpy_reload(PyObject *self, PyObject *args) { - PyErr_SetString(PyExc_RuntimeError, "Sandbox: reload() function disabled!\nGame Scripts should not use this function."); - return NULL; -} - PyObject *KXpy_file(PyObject *self, PyObject *args) { PyErr_SetString(PyExc_RuntimeError, "Sandbox: file() function disabled!\nGame Scripts should not use this function."); return NULL; @@ -1162,6 +1158,11 @@ PyObject *KXpy_import(PyObject *self, PyObject *args) !strcmp(name, "Rasterizer") || !strcmp(name, "Mathutils")) { return PyImport_ImportModuleEx(name, globals, locals, fromlist); } + + /* Import blender texts as python modules */ + m= importText(name); + if (m) + return m; PyErr_Format(PyExc_ImportError, "Import of external Module %.20s not allowed.", name); @@ -1169,6 +1170,29 @@ PyObject *KXpy_import(PyObject *self, PyObject *args) } +PyObject *KXpy_reload(PyObject *self, PyObject *args) { + + /* Used to be sandboxed, bettet to allow importing of internal text only */ +#if 0 + PyErr_SetString(PyExc_RuntimeError, "Sandbox: reload() function disabled!\nGame Scripts should not use this function."); + return NULL; +#endif + + PyObject *module = NULL; + PyObject *newmodule = NULL; + + /* check for a module arg */ + if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) + return NULL; + + newmodule= reimportText( module ); + + if (newmodule==NULL) + PyErr_SetString(PyExc_ImportError, "failed to reload from blenders internal text"); + + return newmodule; +} + /* override python file type functions */ #if 0 static int @@ -1241,6 +1265,9 @@ void setSandbox(TPythonSecurityLevel level) } */ default: + /* Allow importing internal text, from bpy_internal_import.py */ + PyDict_SetItemString(d, "reload", PyCFunction_New(bpy_reload, NULL)); + PyDict_SetItemString(d, "__import__", PyCFunction_New(bpy_import, NULL)); break; } } @@ -1248,7 +1275,7 @@ void setSandbox(TPythonSecurityLevel level) /** * Python is not initialised. */ -PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level) +PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie) { STR_String pname = progname; Py_SetProgramName(pname.Ptr()); @@ -1260,7 +1287,9 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur setSandbox(level); initPyTypes(); - + + bpy_import_main_set(maggie); + PyObject* moduleobj = PyImport_AddModule("__main__"); return PyModule_GetDict(moduleobj); } @@ -1268,12 +1297,13 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur void exitGamePlayerPythonScripting() { Py_Finalize(); + bpy_import_main_set(NULL); } /** * Python is already initialized. */ -PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level) +PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie) { STR_String pname = progname; Py_SetProgramName(pname.Ptr()); @@ -1282,6 +1312,8 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev setSandbox(level); initPyTypes(); + + bpy_import_main_set(maggie); PyObject* moduleobj = PyImport_AddModule("__main__"); return PyModule_GetDict(moduleobj); @@ -1291,6 +1323,7 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev void exitGamePythonScripting() { + bpy_import_main_set(NULL); } diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h index 57ee0be9400..b709cee2f37 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.h +++ b/source/gameengine/Ketsji/KX_PythonInit.h @@ -43,11 +43,11 @@ extern bool gUseVisibilityTemp; PyObject* initGameLogic(class KX_KetsjiEngine *engine, class KX_Scene* ketsjiscene); PyObject* initGameKeys(); PyObject* initRasterizer(class RAS_IRasterizer* rasty,class RAS_ICanvas* canvas); -PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level); +PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie); PyObject* initMathutils(); PyObject* initVideoTexture(void); void exitGamePlayerPythonScripting(); -PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level); +PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie); void exitGamePythonScripting(); void setGamePythonPath(char *path); diff --git a/source/gameengine/Ketsji/SConscript b/source/gameengine/Ketsji/SConscript index 5989d9d8b52..68e5c62ab6c 100644 --- a/source/gameengine/Ketsji/SConscript +++ b/source/gameengine/Ketsji/SConscript @@ -18,7 +18,11 @@ sources.extend([\ '#source/blender/python/api2_2x/vector.c',\ ]) -incs = '. #source/blender/python/api2_2x' # Only for Mathutils! - no other deps +sources.extend([\ + '#source/blender/python/api2_2x/bpy_internal_import.c' +]) + +incs = '. #source/blender/python/api2_2x' # Only for Mathutils! and bpy_internal_import.h, be very careful incs += ' #source/kernel/gen_system #intern/string #intern/guardedalloc' incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer #intern/bmfont' From 9a1e1912e173262436598efe62f4ff0134ea04a7 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 6 Apr 2009 00:04:04 +0000 Subject: [PATCH 083/201] 2.4x Bugfix - #18188: "Clear user transform" does not work as described For the record, "Clear user transform" is supposed to restore selected bones to the transforms defined by Actions/NLA, not back to rest position. --- source/blender/include/BIF_poseobject.h | 1 + source/blender/src/header_view3d.c | 6 +---- source/blender/src/poseobject.c | 30 ++++++++++++++++++++++--- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/source/blender/include/BIF_poseobject.h b/source/blender/include/BIF_poseobject.h index ab96f7ec03e..ba7ad8c4e77 100644 --- a/source/blender/include/BIF_poseobject.h +++ b/source/blender/include/BIF_poseobject.h @@ -80,6 +80,7 @@ void pose_activate_flipped_bone(void); void pose_movetolayer(void); void pose_relax(void); void pose_flipquats(void); +void pose_clear_user_transforms(void); #endif diff --git a/source/blender/src/header_view3d.c b/source/blender/src/header_view3d.c index 8171fe2e527..6d72e434e67 100644 --- a/source/blender/src/header_view3d.c +++ b/source/blender/src/header_view3d.c @@ -4123,8 +4123,6 @@ static uiBlock *view3d_edit_armaturemenu(void *arg_unused) static void do_view3d_pose_armature_transformmenu(void *arg, int event) { - Object *ob= OBACT; - switch(event) { case 0: /* clear origin */ clear_object('o'); @@ -4139,9 +4137,7 @@ static void do_view3d_pose_armature_transformmenu(void *arg, int event) clear_object('g'); break; case 4: /* clear user transform */ - rest_pose(ob->pose); - DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); - BIF_undo_push("Pose, Clear User Transform"); + pose_clear_user_transforms(); break; } allqueue(REDRAWVIEW3D, 0); diff --git a/source/blender/src/poseobject.c b/source/blender/src/poseobject.c index c2a2be80e89..c081bcbcb45 100644 --- a/source/blender/src/poseobject.c +++ b/source/blender/src/poseobject.c @@ -568,9 +568,7 @@ void pose_special_editmenu(void) pose_clear_paths(ob); } else if(nr==5) { - rest_pose(ob->pose); - DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); - BIF_undo_push("Clear User Transform Pose"); + pose_clear_user_transforms(); } else if(nr==6) { pose_relax(); @@ -1740,4 +1738,30 @@ void pose_flipquats(void) autokeyframe_pose_cb_func(ob, TFM_ROTATION, 0); } +/* Restore selected pose-bones to 'action'-defined pose */ +void pose_clear_user_transforms (void) +{ + Object *ob = OBACT; + bArmature *arm= ob->data; + bPoseChannel *pchan; + + if (ob->pose == NULL) + return; + + /* find selected bones */ + for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { + if (pchan->bone && (pchan->bone->flag & BONE_SELECTED) && (pchan->bone->layer & arm->layer)) { + /* just clear the BONE_UNKEYED flag, allowing this bone to get overwritten by actions again */ + pchan->bone->flag &= ~BONE_UNKEYED; + } + } + + /* clear pose locking flag + * - this will only clear the user-defined pose in the selected bones, where BONE_UNKEYED has been cleared + */ + ob->pose->flag |= POSE_DO_UNLOCK; + + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); + BIF_undo_push("Clear User Transform"); +} From 58b1e04fe0a026d57c3f456393468bd0d596054b Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 6 Apr 2009 00:10:52 +0000 Subject: [PATCH 084/201] Fix for: [#18371] VParent breaks fur effects. -Virtual parents were not randomly selected due to optimization in child particle distribution code. -Wave-kink had a wrong matrix multiplication. -Amount of virtual parents wasn't scaled properly to the amount of children rendered. -Calculating virtual parents is now thread safe. --- source/blender/blenkernel/BKE_particle.h | 2 +- source/blender/blenkernel/intern/particle.c | 56 +++++++++++++++---- .../blenkernel/intern/particle_system.c | 3 +- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 5dbfe2fe520..5f5635bae1f 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -173,7 +173,7 @@ typedef struct ParticleThreadContext { /* path caching */ int editupdate, between, steps; - int totchild, totparent; + int totchild, totparent, parent_pass; float cfra; diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 4eabb82f6cb..3fea9e44acb 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -1461,7 +1461,7 @@ static void do_prekink(ParticleKey *state, ParticleKey *par, float *par_rot, flo case PART_KINK_WAVE: vec[axis]=1.0; if(obmat) - Mat4MulVecfl(obmat,vec); + Mat4Mul3Vecfl(obmat,vec); if(par_rot) QuatMulVecf(par_rot,vec); @@ -1805,10 +1805,13 @@ void psys_find_parents(Object *ob, ParticleSystemModifierData *psmd, ParticleSys int from=PART_FROM_FACE; totparent=(int)(totchild*part->parents*0.3); + if(G.rendering && part->child_nbr && part->ren_child_nbr) + totparent*=(float)part->child_nbr/(float)part->ren_child_nbr; + tree=BLI_kdtree_new(totparent); for(p=0,cpa=psys->child; pnum,-1,cpa->fuv,cpa->foffset,co,0,0,0,orco,0); + psys_particle_on_emitter(psmd,from,cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,co,0,0,0,orco,0); BLI_kdtree_insert(tree, p, orco, NULL); } @@ -1872,6 +1875,10 @@ int psys_threads_init_path(ParticleThread *threads, float cfra, int editupdate) if(totchild && part->from!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES){ totparent=(int)(totchild*part->parents*0.3); + + if(G.rendering && part->child_nbr && part->ren_child_nbr) + totparent*=(float)part->child_nbr/(float)part->ren_child_nbr; + /* part->parents could still be 0 so we can't test with totparent */ between=1; } @@ -1904,6 +1911,7 @@ int psys_threads_init_path(ParticleThread *threads, float cfra, int editupdate) ctx->steps= steps; ctx->totchild= totchild; ctx->totparent= totparent; + ctx->parent_pass= 0; ctx->cfra= cfra; psys->lattice = psys_get_lattice(ob, psys); @@ -1941,14 +1949,14 @@ void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, ParticleCacheKey *state, *par = NULL, *key[4]; ParticleData *pa=NULL; ParticleTexture ptex; - float *cpa_fuv=0; + float *cpa_fuv=0, *par_rot=0; float co[3], orco[3], ornor[3], t, rough_t, cpa_1st[3], dvec[3]; float branch_begin, branch_end, branch_prob, branchfac, rough_rand; float pa_rough1, pa_rough2, pa_roughe; float length, pa_length, pa_clump, pa_kink, pa_effector; float max_length = 1.0f, cur_length = 0.0f; float eff_length, eff_vec[3]; - int k, cpa_num, guided=0; + int k, cpa_num, guided = 0; short cpa_from; if(part->flag & PART_BRANCHING) { @@ -2138,15 +2146,16 @@ void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, t=(float)k/(float)ctx->steps; if(ctx->totparent){ - if(i>=ctx->totparent) - /* this is not threadsafe, but should only happen for - * branching particles particles, which are not threaded */ + if(i>=ctx->totparent) { + /* this is now threadsafe, virtual parents are calculated before rest of children */ par = cache[cpa->parent] + k; + } else par=0; } else if(cpa->parent>=0){ par=pcache[cpa->parent]+k; + par_rot = par->rot; } /* apply different deformations to the child path */ @@ -2156,7 +2165,7 @@ void psys_thread_create_path(ParticleThread *thread, struct ChildParticle *cpa, if(guided==0){ if(part->kink) - do_prekink((ParticleKey*)state, (ParticleKey*)par, par->rot, t, + do_prekink((ParticleKey*)state, (ParticleKey*)par, par_rot, t, part->kink_freq * pa_kink, part->kink_shape, part->kink_amp, part->kink, part->kink_axis, ob->obmat); do_clump((ParticleKey*)state, (ParticleKey*)par, t, part->clumpfac, part->clumppow, pa_clump); @@ -2255,10 +2264,15 @@ static void *exec_child_path_cache(void *data) ParticleSystem *psys= ctx->psys; ParticleCacheKey **cache= psys->childcache; ChildParticle *cpa; - int i, totchild= ctx->totchild; + int i, totchild= ctx->totchild, first= 0; + + if(thread->tot > 1){ + first= ctx->parent_pass? 0 : ctx->totparent; + totchild= ctx->parent_pass? ctx->totparent : ctx->totchild; + } - cpa= psys->child + thread->num; - for(i=thread->num; itot, cpa+=thread->tot) + cpa= psys->child + first + thread->num; + for(i=first+thread->num; itot, cpa+=thread->tot) psys_thread_create_path(thread, cpa, cache[i], i); return 0; @@ -2297,6 +2311,22 @@ void psys_cache_child_paths(Object *ob, ParticleSystem *psys, float cfra, int ed totthread= pthreads[0].tot; if(totthread > 1) { + + /* make virtual child parents thread safe by calculating them first */ + if(totparent) { + BLI_init_threads(&threads, exec_child_path_cache, totthread); + + for(i=0; iparent_pass = 1; + BLI_insert_thread(&threads, &pthreads[i]); + } + + BLI_end_threads(&threads); + + for(i=0; iparent_pass = 0; + } + BLI_init_threads(&threads, exec_child_path_cache, totthread); for(i=0; ifrom!=PART_FROM_PARTICLE && part->childtype==PART_CHILD_FACES){ totparent=(int)(totchild*part->parents*0.3); + + if(G.rendering && part->child_nbr && part->ren_child_nbr) + totparent*=(float)part->child_nbr/(float)part->ren_child_nbr; + /* part->parents could still be 0 so we can't test with totparent */ between=1; } diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 2728addeddd..8720edf6c24 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1301,7 +1301,8 @@ int psys_threads_init_distribution(ParticleThread *threads, DerivedMesh *finaldm MEM_freeN(sum); /* for hair, sort by origindex, allows optimizations in rendering */ - if(part->type == PART_HAIR) { + /* however with virtual parents the children need to be in random order */ + if(part->type == PART_HAIR && !(part->childtype==PART_CHILD_FACES && part->parents!=0.0)) { COMPARE_ORIG_INDEX= dm->getFaceDataArray(dm, CD_ORIGINDEX); if(COMPARE_ORIG_INDEX) qsort(index, totpart, sizeof(int), compare_orig_index); From ab467e72382c125642e7f7d03308a6913ec9c716 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 6 Apr 2009 00:22:58 +0000 Subject: [PATCH 085/201] 2.4x Bugfix #18279 - Copy Vertex Group Location doesn't work with subsurf modifier --- source/blender/blenkernel/intern/constraint.c | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index b668a1f214d..db98c200566 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -540,6 +540,7 @@ static void contarget_get_mesh_mat (Object *ob, char *substring, float mat[][4]) float normal[3] = {0.0f, 0.0f, 0.0f}, plane[3]; float imat[3][3], tmat[3][3]; int dgroup; + short freeDM = 0; /* initialize target matrix using target matrix */ Mat4CpyMat4(mat, ob->obmat); @@ -552,10 +553,19 @@ static void contarget_get_mesh_mat (Object *ob, char *substring, float mat[][4]) if ((G.obedit == ob) && (G.editMesh)) { /* target is in editmode, so get a special derived mesh */ dm = CDDM_from_editmesh(G.editMesh, ob->data); + freeDM= 1; } else { - /* when not in EditMode, this should exist */ - dm = (DerivedMesh *)ob->derivedFinal; + /* when not in EditMode, use the 'final' derived mesh + * - check if the custom data masks for derivedFinal mean that we can just use that + * (this is more effficient + sufficient for most cases) + */ + if (ob->lastDataMask != CD_MASK_DERIVEDMESH) { + dm = mesh_get_derived_final(ob, CD_MASK_DERIVEDMESH); + freeDM= 1; + } + else + dm = (DerivedMesh *)ob->derivedFinal; } /* only continue if there's a valid DerivedMesh */ @@ -620,10 +630,9 @@ static void contarget_get_mesh_mat (Object *ob, char *substring, float mat[][4]) } } - /* free temporary DerivedMesh created (in EditMode case) */ - if (G.editMesh) { - if (dm) dm->release(dm); - } + /* free temporary DerivedMesh created */ + if (dm && freeDM) + dm->release(dm); } /* function that sets the given matrix based on given vertex group in lattice */ From fe562f0dd4be9c9aecffc777a9a91a57540eb8c6 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 6 Apr 2009 00:43:59 +0000 Subject: [PATCH 086/201] Fix for: [#18482] Mixed object and halo visualization for particles needs "Emitter" to be activated. --- .../render/intern/source/convertblender.c | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 9e474c19619..06ba8f16a3b 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4374,24 +4374,8 @@ void RE_Database_Free(Render *re) static int allow_render_object(Object *ob, int nolamps, int onlyselected, Object *actob) { /* override not showing object when duplis are used with particles */ - if(ob->transflag & OB_DUPLIPARTS){ - int allow= 0; - - if(ob->particlesystem.first) { - ParticleSystem *psys; - ParticleSettings *part; - - for(psys=ob->particlesystem.first; psys; psys=psys->next){ - part=psys->part; - - if(part->draw & PART_DRAW_EMITTER) - allow= 1; - } - } - - if(!allow) - return 0; - } + if(ob->transflag & OB_DUPLIPARTS) + ; /* let particle system(s) handle showing vs. not showing */ else if((ob->transflag & OB_DUPLI) && !(ob->transflag & OB_DUPLIFRAMES)) return 0; From a95f97cb2832296fc02cb2cb236cbb69d51a3cf1 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Mon, 6 Apr 2009 01:43:01 +0000 Subject: [PATCH 087/201] cast needed to get things compiling again on my machine. Kent --- source/blender/python/api2_2x/bpy_internal_import.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index fe69950f8c9..1423ffe522b 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -40,7 +40,7 @@ static Main *bpy_import_main= NULL; static void free_compiled_text(Text *text) { if(text->compiled) { - Py_DECREF(text->compiled); + Py_DECREF(( PyObject * )text->compiled); } text->compiled= NULL; } From c10d1c28532e238f418244df7c994c212634114a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 6 Apr 2009 08:17:04 +0000 Subject: [PATCH 088/201] Python ref-counting fixes --- .../BlenderRoutines/BL_KetsjiEmbedStart.cpp | 4 +- source/gameengine/Ketsji/BL_Shader.h | 1 + .../Ketsji/KX_PyConstraintBinding.cpp | 1 + source/gameengine/Ketsji/KX_PythonInit.cpp | 73 +++++++++++++++---- source/gameengine/Ketsji/KX_Scene.cpp | 2 +- 5 files changed, 65 insertions(+), 16 deletions(-) diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index 1d4cd011fe4..9228798890a 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -527,7 +527,9 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, SND_DeviceManager::Unsubscribe(); } while (exitrequested == KX_EXIT_REQUEST_RESTART_GAME || exitrequested == KX_EXIT_REQUEST_START_OTHER_GAME); - + + Py_DECREF(pyGlobalDict); + if (bfd) BLO_blendfiledata_free(bfd); BLI_strncpy(G.sce, oldsce, sizeof(G.sce)); diff --git a/source/gameengine/Ketsji/BL_Shader.h b/source/gameengine/Ketsji/BL_Shader.h index 490c0268a6d..08cad5071fd 100644 --- a/source/gameengine/Ketsji/BL_Shader.h +++ b/source/gameengine/Ketsji/BL_Shader.h @@ -203,6 +203,7 @@ public: // Python interface virtual PyObject* py_getattro(PyObject *attr); + virtual PyObject* py_repr(void) { return PyString_FromFormat("BL_Shader\n\tvertex shader:%s\n\n\tfragment shader%s\n\n", vertProg, fragProg); } // ----------------------------------- KX_PYMETHOD_DOC( BL_Shader, setSource ); diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index fb37eded450..34c975f6bf6 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -582,6 +582,7 @@ PyObject* initPythonConstraintBinding() d = PyModule_GetDict(m); ErrorObject = PyString_FromString("PhysicsConstraints.error"); PyDict_SetItemString(d, "error", ErrorObject); + Py_DECREF(ErrorObject); // XXXX Add constants here diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index ef7655f38a2..73342d891d8 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -113,9 +113,9 @@ void KX_RasterizerDrawDebugLine(const MT_Vector3& from,const MT_Vector3& to,cons /* Macro for building the keyboard translation */ //#define KX_MACRO_addToDict(dict, name) PyDict_SetItemString(dict, #name, PyInt_FromLong(SCA_IInputDevice::KX_##name)) -#define KX_MACRO_addToDict(dict, name) PyDict_SetItemString(dict, #name, PyInt_FromLong(name)) +#define KX_MACRO_addToDict(dict, name) PyDict_SetItemString(dict, #name, item=PyInt_FromLong(name)); Py_DECREF(item) /* For the defines for types from logic bricks, we do stuff explicitly... */ -#define KX_MACRO_addTypesToDict(dict, name, name2) PyDict_SetItemString(dict, #name, PyInt_FromLong(name2)) +#define KX_MACRO_addTypesToDict(dict, name, name2) PyDict_SetItemString(dict, #name, item=PyInt_FromLong(name2)); Py_DECREF(item) // temporarily python stuff, will be put in another place later ! @@ -916,26 +916,41 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack { PyObject* m; PyObject* d; - + PyObject* item; /* temp PyObject* storage */ + gp_KetsjiEngine = engine; gp_KetsjiScene = scene; gUseVisibilityTemp=false; // Create the module and add the functions - m = Py_InitModule4("GameLogic", game_methods, + + + m = PyImport_ImportModule("GameLogic"); + + if(m==NULL) { + printf("Import for the first time!\n"); + PyErr_Clear(); + m = Py_InitModule4("GameLogic", game_methods, GameLogic_module_documentation, (PyObject*)NULL,PYTHON_API_VERSION); - + } + else { + Py_DECREF(m); /**/ + printf("Alredy imported!\n"); + return(m); + } // Add some symbolic constants to the module d = PyModule_GetDict(m); // can be overwritten later for gameEngine instances that can load new blend files and re-initialize this module // for now its safe to make sure it exists for other areas such as the web plugin - PyDict_SetItemString(d, "globalDict", PyDict_New()); + + PyDict_SetItemString(d, "globalDict", item=PyDict_New()); Py_DECREF(item); ErrorObject = PyString_FromString("GameLogic.error"); PyDict_SetItemString(d, "error", ErrorObject); + Py_DECREF(ErrorObject); // XXXX Add constants here /* To use logic bricks, we need some sort of constants. Here, we associate */ @@ -1225,18 +1240,18 @@ void setSandbox(TPythonSecurityLevel level) { PyObject *m = PyImport_AddModule("__builtin__"); PyObject *d = PyModule_GetDict(m); - + PyObject *item; switch (level) { case psl_Highest: //if (!g_security) { //g_oldopen = PyDict_GetItemString(d, "open"); // functions we cant trust - PyDict_SetItemString(d, "open", PyCFunction_New(meth_open, NULL)); - PyDict_SetItemString(d, "reload", PyCFunction_New(meth_reload, NULL)); - PyDict_SetItemString(d, "file", PyCFunction_New(meth_file, NULL)); - PyDict_SetItemString(d, "execfile", PyCFunction_New(meth_execfile, NULL)); - PyDict_SetItemString(d, "compile", PyCFunction_New(meth_compile, NULL)); + PyDict_SetItemString(d, "open", item=PyCFunction_New(meth_open, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "reload", item=PyCFunction_New(meth_reload, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "file", item=PyCFunction_New(meth_file, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "execfile", item=PyCFunction_New(meth_execfile, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "compile", item=PyCFunction_New(meth_compile, NULL)); Py_DECREF(item); // our own import PyDict_SetItemString(d, "__import__", PyCFunction_New(meth_import, NULL)); @@ -1266,8 +1281,8 @@ void setSandbox(TPythonSecurityLevel level) */ default: /* Allow importing internal text, from bpy_internal_import.py */ - PyDict_SetItemString(d, "reload", PyCFunction_New(bpy_reload, NULL)); - PyDict_SetItemString(d, "__import__", PyCFunction_New(bpy_import, NULL)); + PyDict_SetItemString(d, "reload", item=PyCFunction_New(bpy_reload, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "__import__", item=PyCFunction_New(bpy_import, NULL)); Py_DECREF(item); break; } } @@ -1296,6 +1311,7 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur void exitGamePlayerPythonScripting() { + //clearGameModules(); // were closing python anyway Py_Finalize(); bpy_import_main_set(NULL); } @@ -1319,10 +1335,36 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev return PyModule_GetDict(moduleobj); } +static void clearModule(PyObject *modules, const char *name) +{ + PyObject *mod= PyDict_GetItemString(modules, name); + + if (mod==NULL) + return; + + PyDict_Clear(PyModule_GetDict(mod)); /* incase there are any circular refs */ + PyDict_DelItemString(modules, name); +} +static void clearGameModules() +{ + /* Note, user modules could still reference these modules + * but since the dict's are cleared their members wont be accessible */ + + PyObject *modules= PySys_GetObject("modules"); + clearModule(modules, "Expression"); + clearModule(modules, "CValue"); + clearModule(modules, "PhysicsConstraints"); + clearModule(modules, "GameLogic"); + clearModule(modules, "Rasterizer"); + clearModule(modules, "GameKeys"); + clearModule(modules, "VideoTexture"); + PyErr_Clear(); // incase some of these were alredy removed. +} void exitGamePythonScripting() { + clearGameModules(); bpy_import_main_set(NULL); } @@ -1336,6 +1378,7 @@ PyObject* initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas) PyObject* m; PyObject* d; + PyObject* item; // Create the module and add the functions m = Py_InitModule4("Rasterizer", rasterizer_methods, @@ -1346,6 +1389,7 @@ PyObject* initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas) d = PyModule_GetDict(m); ErrorObject = PyString_FromString("Rasterizer.error"); PyDict_SetItemString(d, "error", ErrorObject); + Py_DECREF(ErrorObject); /* needed for get/setMaterialType */ KX_MACRO_addTypesToDict(d, KX_TEXFACE_MATERIAL, KX_TEXFACE_MATERIAL); @@ -1414,6 +1458,7 @@ PyObject* initGameKeys() { PyObject* m; PyObject* d; + PyObject* item; // Create the module and add the functions m = Py_InitModule4("GameKeys", gamekeys_methods, diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 254717894df..72f2fd9827f 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -244,7 +244,7 @@ KX_Scene::~KX_Scene() { delete m_bucketmanager; } - //Py_DECREF(m_attrlist); + Py_DECREF(m_attrlist); } void KX_Scene::SetProjectionMatrix(MT_CmMatrix4x4& pmat) From fdceee008867179e36028853d85356c034f48e23 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 6 Apr 2009 09:05:37 +0000 Subject: [PATCH 089/201] Bugfix #18266 Mipmap creation for render crashed, in this case: - use Curves tool on an Image, which is UV mapped on object - Save the image to disk, under new name - Render (F12) This fix is only for the crash, there's something not well coded for Curves tool, how it manages float buffers. That's for 2.5. --- source/blender/imbuf/intern/scaling.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c index 8257eb4643e..807b0c84e90 100644 --- a/source/blender/imbuf/intern/scaling.c +++ b/source/blender/imbuf/intern/scaling.c @@ -299,7 +299,6 @@ struct ImBuf *IMB_onehalf(struct ImBuf *ibuf1) if (ibuf1->rect==NULL && ibuf1->rect_float==NULL) return (0); do_rect= (ibuf1->rect != NULL); - do_float= (ibuf1->rect_float != NULL); if (ibuf1->x <= 1) return(IMB_half_y(ibuf1)); if (ibuf1->y <= 1) return(IMB_half_x(ibuf1)); @@ -312,6 +311,8 @@ struct ImBuf *IMB_onehalf(struct ImBuf *ibuf1) p1 = (uchar *) ibuf1->rect; dest=(uchar *) ibuf2->rect; + do_float= (ibuf1->rect_float != NULL && ibuf2->rect_float != NULL); + for(y=ibuf2->y;y>0;y--){ if (do_rect) p2 = p1 + (ibuf1->x << 2); if (do_float) p2f = p1f + (ibuf1->x << 2); From 64fe09ab20ce4f80f627d4c868f2b12936c2168c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 6 Apr 2009 12:47:15 +0000 Subject: [PATCH 090/201] - remove debug printf - remove test for importing the module rather then creating a new one (didnt mean to commit) - added constants for the mouse sensor to use. --- .../python/api2_2x/bpy_internal_import.c | 1 - source/gameengine/Ketsji/KX_PythonInit.cpp | 26 +++++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index 1423ffe522b..d8280d4d609 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -70,7 +70,6 @@ PyObject *importText( char *name ) memcpy( &txtname[namelen], ".py", 4 ); for(text = maggie->text.first; text; text = text->id.next) { - fprintf(stderr, "%s | %s\n", txtname, text->id.name+2); if( !strcmp( txtname, text->id.name+2 ) ) break; } diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 73342d891d8..9929e66c3a4 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -924,22 +924,10 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack gUseVisibilityTemp=false; // Create the module and add the functions - - - m = PyImport_ImportModule("GameLogic"); - - if(m==NULL) { - printf("Import for the first time!\n"); - PyErr_Clear(); - m = Py_InitModule4("GameLogic", game_methods, + m = Py_InitModule4("GameLogic", game_methods, GameLogic_module_documentation, (PyObject*)NULL,PYTHON_API_VERSION); - } - else { - Py_DECREF(m); /**/ - printf("Alredy imported!\n"); - return(m); - } + // Add some symbolic constants to the module d = PyModule_GetDict(m); @@ -1105,6 +1093,16 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_DYN_DISABLE_RIGID_BODY, KX_SCA_DynamicActuator::KX_DYN_DISABLE_RIGID_BODY); KX_MACRO_addTypesToDict(d, KX_DYN_SET_MASS, KX_SCA_DynamicActuator::KX_DYN_SET_MASS); + /* Input & Mouse Sensor */ + KX_MACRO_addTypesToDict(d, KX_INPUT_NONE, SCA_InputEvent::KX_NO_INPUTSTATUS); + KX_MACRO_addTypesToDict(d, KX_INPUT_JUST_ACTIVATED, SCA_InputEvent::KX_JUSTACTIVATED); + KX_MACRO_addTypesToDict(d, KX_INPUT_ACTIVE, SCA_InputEvent::KX_ACTIVE); + KX_MACRO_addTypesToDict(d, KX_INPUT_JUST_RELEASED, SCA_InputEvent::KX_JUSTRELEASED); + + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_LEFT, SCA_InputEvent::KX_LEFTMOUSE); + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_MIDDLE, SCA_InputEvent::KX_MIDDLEMOUSE); + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_RIGHT, SCA_InputEvent::KX_RIGHTMOUSE); + // Check for errors if (PyErr_Occurred()) { From 960fa534b7690796d463f062edf572ceae88457d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 6 Apr 2009 13:13:25 +0000 Subject: [PATCH 091/201] BGE Epydocs were missing some functions renamed KX_Light -> KX_LightObject added some missing controllers --- source/gameengine/PyDoc/GameLogic.py | 23 +++++- source/gameengine/PyDoc/GameTypes.py | 75 +++++++++++++++++++ source/gameengine/PyDoc/KX_Camera.py | 22 ++++++ source/gameengine/PyDoc/KX_GameObject.py | 11 ++- .../PyDoc/{KX_Light.py => KX_LightObject.py} | 2 +- .../gameengine/PyDoc/KX_MouseFocusSensor.py | 40 ++++++++-- .../PyDoc/KX_SCA_AddObjectActuator.py | 7 ++ .../PyDoc/KX_SCA_DynamicActuator.py | 2 +- .../PyDoc/KX_SCA_ReplaceMeshActuator.py | 6 +- source/gameengine/PyDoc/KX_Scene.py | 2 +- source/gameengine/PyDoc/KX_VertexProxy.py | 21 ++++++ ...ctuatorSensor.py => SCA_ActuatorSensor.py} | 4 +- source/gameengine/PyDoc/SCA_MouseSensor.py | 10 +++ source/gameengine/PyDoc/SCA_NANDController.py | 11 +++ source/gameengine/PyDoc/SCA_NORController.py | 11 +++ source/gameengine/PyDoc/SCA_XNORController.py | 11 +++ source/gameengine/PyDoc/SCA_XORController.py | 11 +++ source/gameengine/PyDoc/WhatsNew.py | 2 +- 18 files changed, 253 insertions(+), 18 deletions(-) create mode 100644 source/gameengine/PyDoc/GameTypes.py rename source/gameengine/PyDoc/{KX_Light.py => KX_LightObject.py} (97%) rename source/gameengine/PyDoc/{KX_ActuatorSensor.py => SCA_ActuatorSensor.py} (91%) create mode 100644 source/gameengine/PyDoc/SCA_NANDController.py create mode 100644 source/gameengine/PyDoc/SCA_NORController.py create mode 100644 source/gameengine/PyDoc/SCA_XNORController.py create mode 100644 source/gameengine/PyDoc/SCA_XORController.py diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index f158b410975..da394288e25 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -3,10 +3,17 @@ Documentation for the GameLogic Module. ======================================= - There are only three importable modules in the game engine: + Modules available in the game engine: - GameLogic - L{GameKeys} - L{Rasterizer} + - L{GameTypes} + + Undocumented modules: + - VideoTexture + - CValue + - Expression + - PhysicsConstraints All the other modules are accessible through the methods in GameLogic. @@ -18,7 +25,7 @@ Documentation for the GameLogic Module. # To get the game object this controller is on: obj = co.getOwner() - L{KX_GameObject} and L{KX_Camera} or L{KX_Light} methods are + L{KX_GameObject} and L{KX_Camera} or L{KX_LightObject} methods are available depending on the type of object:: # To get a sensor linked to this controller. # "sensorname" is the name of the sensor as defined in the Blender interface. @@ -165,9 +172,19 @@ Documentation for the GameLogic Module. @var KX_DYN_DISABLE_RIGID_BODY: See L{KX_SCA_DynamicActuator} @var KX_DYN_SET_MASS: See L{KX_SCA_DynamicActuator} -""" +@group Input Status: KX_INPUT_NONE, KX_INPUT_JUST_ACTIVATED, KX_INPUT_ACTIVE, KX_INPUT_JUST_RELEASED +@var KX_INPUT_NONE: See L{SCA_MouseSensor} +@var KX_INPUT_JUST_ACTIVATED: See L{SCA_MouseSensor} +@var KX_INPUT_ACTIVE: See L{SCA_MouseSensor} +@var KX_INPUT_JUST_RELEASED: See L{SCA_MouseSensor} +@group Mouse Buttons: KX_MOUSE_BUT_LEFT, KX_MOUSE_BUT_MIDDLE, KX_MOUSE_BUT_RIGHT +@var KX_MOUSE_BUT_LEFT: See L{SCA_MouseSensor} +@var KX_MOUSE_BUT_MIDDLE: See L{SCA_MouseSensor} +@var KX_MOUSE_BUT_RIGHT: See L{SCA_MouseSensor} +""" + def getCurrentController(): """ Gets the Python controller associated with this Python script. diff --git a/source/gameengine/PyDoc/GameTypes.py b/source/gameengine/PyDoc/GameTypes.py new file mode 100644 index 00000000000..f39e4ed064d --- /dev/null +++ b/source/gameengine/PyDoc/GameTypes.py @@ -0,0 +1,75 @@ +# $Id: GameLogic.py 19483 2009-03-31 21:03:15Z ben2610 $ +""" +GameEngine Types +================ +@var BL_ActionActuator: L{BL_ActionActuator} +@var BL_Shader: L{BL_Shader} +@var BL_ShapeActionActuator: L{BL_ShapeActionActuator} +@var CListValue: L{CListValue} +@var CValue: L{CValue} +@var KX_BlenderMaterial: L{KX_BlenderMaterial} +@var KX_CDActuator: L{KX_CDActuator} +@var KX_Camera: L{KX_Camera} +@var KX_CameraActuator: L{KX_CameraActuator} +@var KX_ConstraintActuator: L{KX_ConstraintActuator} +@var KX_ConstraintWrapper: L{KX_ConstraintWrapper} +@var KX_GameActuator: L{KX_GameActuator} +@var KX_GameObject: L{KX_GameObject} +@var KX_IpoActuator: L{KX_IpoActuator} +@var KX_LightObject: L{KX_LightObject} +@var KX_MeshProxy: L{KX_MeshProxy} +@var KX_MouseFocusSensor: L{KX_MouseFocusSensor} +@var KX_NearSensor: L{KX_NearSensor} +@var KX_NetworkMessageActuator: L{KX_NetworkMessageActuator} +@var KX_NetworkMessageSensor: L{KX_NetworkMessageSensor} +@var KX_ObjectActuator: L{KX_ObjectActuator} +@var KX_ParentActuator: L{KX_ParentActuator} +@var KX_PhysicsObjectWrapper: L{KX_PhysicsObjectWrapper} +@var KX_PolyProxy: L{KX_PolyProxy} +@var KX_PolygonMaterial: L{KX_PolygonMaterial} +@var KX_RadarSensor: L{KX_RadarSensor} +@var KX_RaySensor: L{KX_RaySensor} +@var KX_SCA_AddObjectActuator: L{KX_SCA_AddObjectActuator} +@var KX_SCA_DynamicActuator: L{KX_SCA_DynamicActuator} +@var KX_SCA_EndObjectActuator: L{KX_SCA_EndObjectActuator} +@var KX_SCA_ReplaceMeshActuator: L{KX_SCA_ReplaceMeshActuator} +@var KX_Scene: L{KX_Scene} +@var KX_SceneActuator: L{KX_SceneActuator} +@var KX_SoundActuator: L{KX_SoundActuator} +@var KX_StateActuator: L{KX_StateActuator} +@var KX_TouchSensor: L{KX_TouchSensor} +@var KX_TrackToActuator: L{KX_TrackToActuator} +@var KX_VehicleWrapper: L{KX_VehicleWrapper} +@var KX_VertexProxy: L{KX_VertexProxy} +@var KX_VisibilityActuator: L{KX_VisibilityActuator} +@var PyObjectPlus: L{PyObjectPlus} +@var SCA_2DFilterActuator: L{SCA_2DFilterActuator} +@var SCA_ANDController: L{SCA_ANDController} +@var SCA_ActuatorSensor: L{SCA_ActuatorSensor} +@var SCA_AlwaysSensor: L{SCA_AlwaysSensor} +@var SCA_DelaySensor: L{SCA_DelaySensor} +@var SCA_ILogicBrick: L{SCA_ILogicBrick} +@var SCA_IObject: L{SCA_IObject} +@var SCA_ISensor: L{SCA_ISensor} +@var SCA_JoystickSensor: L{SCA_JoystickSensor} +@var SCA_KeyboardSensor: L{SCA_KeyboardSensor} +@var SCA_MouseSensor: L{SCA_MouseSensor} +@var SCA_NANDController: L{SCA_NANDController} +@var SCA_NORController: L{SCA_NORController} +@var SCA_ORController: L{SCA_ORController} +@var SCA_PropertyActuator: L{SCA_PropertyActuator} +@var SCA_PropertySensor: L{SCA_PropertySensor} +@var SCA_PythonController: L{SCA_PythonController} +@var SCA_RandomActuator: L{SCA_RandomActuator} +@var SCA_RandomSensor: L{SCA_RandomSensor} +@var SCA_XNORController: L{SCA_XNORController} +@var SCA_XORController: L{SCA_XORController} +""" + +if 0: + # Use to print out all the links + for i in a.split('\n'): + if i.startswith('@var'): + var = i.split(' ')[1].split(':')[0] + print '@var %s: L{%s<%s.%s>}' % (var, var, var, var) + diff --git a/source/gameengine/PyDoc/KX_Camera.py b/source/gameengine/PyDoc/KX_Camera.py index 4cadf1c0ed0..f5d0d45f968 100644 --- a/source/gameengine/PyDoc/KX_Camera.py +++ b/source/gameengine/PyDoc/KX_Camera.py @@ -185,3 +185,25 @@ class KX_Camera(KX_GameObject): @param matrix: The new projection matrix for this camera. """ + def enableViewport(viewport): + """ + Use this camera to draw a viewport on the screen (for split screen games or overlay scenes). The viewport region is defined with L{setViewport}. + + @type viewport: bool + @param viewport: the new viewport status + """ + def setOnTop(): + """ + Set this cameras viewport ontop of all other viewport. + """ + def setViewport(left, bottom, right, top): + """ + Sets the region of this viewport on the screen in pixels. + + Use L{Rasterizer.getWindowHeight} L{Rasterizer.getWindowWidth} to calculate values relative to the entire display. + + @type left: int + @type bottom: int + @type right: int + @type top: int + """ diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 97e53ffacaa..972a15b7765 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -442,5 +442,12 @@ class KX_GameObject: # (SCA_IObject) If no hit, returns (None,None,None) or (None,None,None,None) If the object hit is not a static mesh, polygon is None """ - - + def setCollisionMargin(margin): + """ + Set the objects collision margin. + + note: If this object has no physics controller (a physics ID of zero), this function will raise RuntimeError. + + @type margin: float + @param margin: the collision margin distance in blender units. + """ diff --git a/source/gameengine/PyDoc/KX_Light.py b/source/gameengine/PyDoc/KX_LightObject.py similarity index 97% rename from source/gameengine/PyDoc/KX_Light.py rename to source/gameengine/PyDoc/KX_LightObject.py index ff0cf071d2d..8cc1787887b 100644 --- a/source/gameengine/PyDoc/KX_Light.py +++ b/source/gameengine/PyDoc/KX_LightObject.py @@ -2,7 +2,7 @@ # Documentation for Light game objects. from KX_GameObject import * -class KX_Light(KX_GameObject): +class KX_LightObject(KX_GameObject): """ A Light object. diff --git a/source/gameengine/PyDoc/KX_MouseFocusSensor.py b/source/gameengine/PyDoc/KX_MouseFocusSensor.py index 28d584037f8..ceab5b8c511 100644 --- a/source/gameengine/PyDoc/KX_MouseFocusSensor.py +++ b/source/gameengine/PyDoc/KX_MouseFocusSensor.py @@ -10,17 +10,45 @@ class KX_MouseFocusSensor(SCA_MouseSensor): space to 3d space then raycasting away from the camera. """ - def GetRayTarget(): + def getHitNormal(): """ - Returns the end point of the sensor ray. + Returns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray. @rtype: list [x, y, z] - @return: the end point of the sensor ray, in world coordinates. + @return: the ray collision normal. """ - def GetRaySource(): + def getHitObject(): """ - Returns the start point of the sensor ray. + Returns the object that was hit by this ray or None. + + @rtype: L{KX_GameObject} or None + @return: the collision object. + """ + def getHitPosition(): + """ + Returns the position (in worldcoordinates) at the point of collision where the object was hit by this ray. @rtype: list [x, y, z] - @return: the start point of the sensor ray, in world coordinates. + @return: the ray collision position. """ + def getRayDirection(): + """ + Returns the normalized direction (in worldcoordinates) of the ray cast by the mouse. + + @rtype: list [x, y, z] + @return: the ray direction. + """ + def getRaySource(): + """ + Returns the position (in worldcoordinates) the ray was cast from by the mouse. + + @rtype: list [x, y, z] + @return: the ray source. + """ + def getRayTarget(): + """ + Returns the target of the ray (in worldcoordinates) that seeks the focus object. + + @rtype: list [x, y, z] + @return: the ray target. + """ \ No newline at end of file diff --git a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py index 974ef718ccf..572b864ff0a 100644 --- a/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py @@ -109,3 +109,10 @@ class KX_SCA_AddObjectActuator(SCA_IActuator): @rtype: L{KX_GameObject} @return: A L{KX_GameObject} or None if no object has been created. """ + def instantAddObject(): + """ + Returns the last object created by this actuator. The object can then be accessed from L{objectLastCreated}. + + @rtype: None + """ + diff --git a/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py index d65d3c22993..22da159ce71 100644 --- a/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_DynamicActuator.py @@ -22,7 +22,7 @@ class KX_SCA_DynamicActuator(SCA_IActuator): - 3 = disable rigid body - 4 = set mass """ - def getOperatoin(): + def getOperation(): """ DEPRECATED: Use the operation property instead. return the type of operation diff --git a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py index 4397a9152d0..951c118a99a 100644 --- a/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py +++ b/source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py @@ -77,4 +77,8 @@ class KX_SCA_ReplaceMeshActuator(SCA_IActuator): @rtype: string or None """ - + def instantReplaceMesh(): + """ + Immediately replace mesh without delay. + @rtype: None + """ \ No newline at end of file diff --git a/source/gameengine/PyDoc/KX_Scene.py b/source/gameengine/PyDoc/KX_Scene.py index 4f7beb9e300..a9fd44ffc9a 100644 --- a/source/gameengine/PyDoc/KX_Scene.py +++ b/source/gameengine/PyDoc/KX_Scene.py @@ -55,7 +55,7 @@ class KX_Scene: """ Returns the list of lights in the scene. - @rtype: list [L{KX_Light}] + @rtype: list [L{KX_LightObject}] """ def getObjectList(): """ diff --git a/source/gameengine/PyDoc/KX_VertexProxy.py b/source/gameengine/PyDoc/KX_VertexProxy.py index 8dc2752c037..5baaf76c3d9 100644 --- a/source/gameengine/PyDoc/KX_VertexProxy.py +++ b/source/gameengine/PyDoc/KX_VertexProxy.py @@ -70,6 +70,19 @@ class KX_VertexProxy: """ Sets the UV (texture) coordinates of this vertex. + @type uv: list [u, v] + """ + def getUV2(): + """ + Gets the 2nd UV (texture) coordinates of this vertex. + + @rtype: list [u, v] + @return: this vertexes UV (texture) coordinates. + """ + def setUV2(uv): + """ + Sets the 2nd UV (texture) coordinates of this vertex. + @type uv: list [u, v] """ def getRGBA(): @@ -120,3 +133,11 @@ class KX_VertexProxy: @rtype: list [nx, ny, nz] @return: normalised normal vector. """ + def setNormal(normal): + """ + Sets the normal vector of this vertex. + + @type normal: sequence of floats [r, g, b] + @param normal: the new normal of this vertex. + """ + diff --git a/source/gameengine/PyDoc/KX_ActuatorSensor.py b/source/gameengine/PyDoc/SCA_ActuatorSensor.py similarity index 91% rename from source/gameengine/PyDoc/KX_ActuatorSensor.py rename to source/gameengine/PyDoc/SCA_ActuatorSensor.py index 27ee3a475e0..515354e8716 100644 --- a/source/gameengine/PyDoc/KX_ActuatorSensor.py +++ b/source/gameengine/PyDoc/SCA_ActuatorSensor.py @@ -1,10 +1,10 @@ # $Id$ -# Documentation for KX_ActuatorSensor +# Documentation for SCA_ActuatorSensor from SCA_IActuator import * from SCA_ISensor import * from SCA_ILogicBrick import * -class KX_ActuatorSensor(SCA_ISensor): +class SCA_ActuatorSensor(SCA_ISensor): """ Actuator sensor detect change in actuator state of the parent object. It generates a positive pulse if the corresponding actuator is activated diff --git a/source/gameengine/PyDoc/SCA_MouseSensor.py b/source/gameengine/PyDoc/SCA_MouseSensor.py index 9550cbb4105..278ebe63b8a 100644 --- a/source/gameengine/PyDoc/SCA_MouseSensor.py +++ b/source/gameengine/PyDoc/SCA_MouseSensor.py @@ -32,3 +32,13 @@ class SCA_MouseSensor(SCA_ISensor): @rtype: integer @return: the current y coordinate of the mouse, in frame coordinates (pixels). """ + def getButtonStatus(button): + """ + Get the mouse button status. + + @type button: int + @param button: value in GameLogic members KX_MOUSE_BUT_LEFT, KX_MOUSE_BUT_MIDDLE, KX_MOUSE_BUT_RIGHT + + @rtype: integer + @return: value in GameLogic members KX_INPUT_NONE, KX_INPUT_NONE, KX_INPUT_JUST_ACTIVATED, KX_INPUT_ACTIVE, KX_INPUT_JUST_RELEASED + """ diff --git a/source/gameengine/PyDoc/SCA_NANDController.py b/source/gameengine/PyDoc/SCA_NANDController.py new file mode 100644 index 00000000000..81e1dfd6d92 --- /dev/null +++ b/source/gameengine/PyDoc/SCA_NANDController.py @@ -0,0 +1,11 @@ +# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# Documentation for SCA_NANDController +from SCA_IController import * + +class SCA_NANDController(SCA_IController): + """ + An NAND controller activates when all linked sensors are not active. + + There are no special python methods for this controller. + """ + diff --git a/source/gameengine/PyDoc/SCA_NORController.py b/source/gameengine/PyDoc/SCA_NORController.py new file mode 100644 index 00000000000..e3bdeefa63e --- /dev/null +++ b/source/gameengine/PyDoc/SCA_NORController.py @@ -0,0 +1,11 @@ +# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# Documentation for SCA_NORController +from SCA_IController import * + +class SCA_NORController(SCA_IController): + """ + An NOR controller activates only when all linked sensors are de-activated. + + There are no special python methods for this controller. + """ + diff --git a/source/gameengine/PyDoc/SCA_XNORController.py b/source/gameengine/PyDoc/SCA_XNORController.py new file mode 100644 index 00000000000..b1d9dddd9f2 --- /dev/null +++ b/source/gameengine/PyDoc/SCA_XNORController.py @@ -0,0 +1,11 @@ +# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# Documentation for SCA_XNORController +from SCA_IController import * + +class SCA_XNORController(SCA_IController): + """ + An XNOR controller activates when all linked sensors are the same (activated or inative). + + There are no special python methods for this controller. + """ + diff --git a/source/gameengine/PyDoc/SCA_XORController.py b/source/gameengine/PyDoc/SCA_XORController.py new file mode 100644 index 00000000000..b8f2b5feef0 --- /dev/null +++ b/source/gameengine/PyDoc/SCA_XORController.py @@ -0,0 +1,11 @@ +# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# Documentation for SCA_XORController +from SCA_IController import * + +class SCA_XORController(SCA_IController): + """ + An XOR controller activates when there is the input is mixed, but not when all are on or off. + + There are no special python methods for this controller. + """ + diff --git a/source/gameengine/PyDoc/WhatsNew.py b/source/gameengine/PyDoc/WhatsNew.py index 64bef7ee1c8..4d86e6ef3c4 100644 --- a/source/gameengine/PyDoc/WhatsNew.py +++ b/source/gameengine/PyDoc/WhatsNew.py @@ -26,7 +26,7 @@ Blender 2.34 - Added getType() and setType() to L{BL_ActionActuator} and L{KX_SoundActuator} (sgefant) - New Scene module: L{KX_Scene} - New Camera module: L{KX_Camera} - - New Light module: L{KX_Light} + - New Light module: L{KX_LightObject} - Added attributes to L{KX_GameObject}, L{KX_VertexProxy} - L{KX_SCA_AddObjectActuator}.setObject(), L{KX_TrackToActuator}.setObject() and L{KX_SceneActuator}.setCamera() now accept L{KX_GameObject}s as parameters From 46a440c7a5393177dbc74cef466d1eb5643e068d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 6 Apr 2009 13:27:28 +0000 Subject: [PATCH 092/201] BGE Python API - added a module for the BGE - GameTypes, only contains types. - added KX_PYATTRIBUTE_DUMMY attributes for KX_Light, KX_PolyProxy, KX_VertexProxy, so all types should give correct results from a dir(). - added a script to check for missing methods in the epydocs - bge_api_validate_py.txt --- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 2 +- source/gameengine/Ketsji/KX_Light.cpp | 16 +- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 4 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 11 ++ source/gameengine/Ketsji/KX_PythonInit.cpp | 6 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 140 ++++++++++-------- source/gameengine/Ketsji/KX_VertexProxy.cpp | 24 +++ .../gameengine/PyDoc/bge_api_validate_py.txt | 66 +++++++++ 8 files changed, 198 insertions(+), 71 deletions(-) create mode 100644 source/gameengine/PyDoc/bge_api_validate_py.txt diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index c5f6fdabbe8..3cd32391ce2 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -275,7 +275,7 @@ PyObject* SCA_MouseSensor::PyGetYPosition(PyObject* self, KX_PYMETHODDEF_DOC_O(SCA_MouseSensor, getButtonStatus, "getButtonStatus(button)\n" -"\tGet the given button's status (KX_NO_INPUTSTATUS, KX_JUSTACTIVATED, KX_ACTIVE or KX_JUSTRELEASED).\n") +"\tGet the given button's status (KX_INPUT_NONE, KX_INPUT_NONE, KX_INPUT_JUST_ACTIVATED, KX_INPUT_ACTIVE, KX_INPUT_JUST_RELEASED).\n") { if (PyInt_Check(value)) { diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 6f9d8b0211b..7b5b77ccacf 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -236,7 +236,7 @@ int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) } } - if (PyFloat_Check(pyvalue)) + if (PyFloat_Check(pyvalue) || PyInt_Check(pyvalue)) { float value = PyFloat_AsDouble(pyvalue); if (!strcmp(attr_str, "energy")) @@ -306,10 +306,22 @@ PyMethodDef KX_LightObject::Methods[] = { }; PyAttributeDef KX_LightObject::Attributes[] = { + KX_PYATTRIBUTE_DUMMY("layer"), + KX_PYATTRIBUTE_DUMMY("energy"), + KX_PYATTRIBUTE_DUMMY("distance"), + KX_PYATTRIBUTE_DUMMY("colour"), + KX_PYATTRIBUTE_DUMMY("color"), + KX_PYATTRIBUTE_DUMMY("lin_attenuation"), + KX_PYATTRIBUTE_DUMMY("quad_attenuation"), + KX_PYATTRIBUTE_DUMMY("spotsize"), + KX_PYATTRIBUTE_DUMMY("spotblend"), + KX_PYATTRIBUTE_DUMMY("SPOT"), + KX_PYATTRIBUTE_DUMMY("SUN"), + KX_PYATTRIBUTE_DUMMY("NORMAL"), + KX_PYATTRIBUTE_DUMMY("type"), { NULL } //Sentinel }; - PyTypeObject KX_LightObject::Type = { PyObject_HEAD_INIT(NULL) 0, diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 72a0381e8dc..4afc6d6f1b8 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -343,7 +343,7 @@ PyObject* KX_MouseFocusSensor::py_getattro(PyObject *attr) { const char KX_MouseFocusSensor::GetHitObject_doc[] = "getHitObject()\n" -"\tReturns the name of the object that was hit by this ray.\n"; +"\tReturns the object that was hit by this ray.\n"; PyObject* KX_MouseFocusSensor::PyGetHitObject(PyObject* self) { if (m_hitObject) @@ -374,7 +374,7 @@ PyObject* KX_MouseFocusSensor::PyGetRayDirection(PyObject* self) const char KX_MouseFocusSensor::GetHitNormal_doc[] = "getHitNormal()\n" -"\tReturns the normal (in worldcoordinates) of the object at the location where the object was hit by this ray.\n"; +"\tReturns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray.\n"; PyObject* KX_MouseFocusSensor::PyGetHitNormal(PyObject* self) { return PyObjectFrom(m_hitNormal); diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index 6f74c3ed3f9..39eb6225864 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -78,6 +78,17 @@ PyMethodDef KX_PolyProxy::Methods[] = { }; PyAttributeDef KX_PolyProxy::Attributes[] = { + /* All dummy's so they come up in a dir() */ + KX_PYATTRIBUTE_DUMMY("matname"), + KX_PYATTRIBUTE_DUMMY("texture"), + KX_PYATTRIBUTE_DUMMY("material"), + KX_PYATTRIBUTE_DUMMY("matid"), + KX_PYATTRIBUTE_DUMMY("v1"), + KX_PYATTRIBUTE_DUMMY("v2"), + KX_PYATTRIBUTE_DUMMY("v3"), + KX_PYATTRIBUTE_DUMMY("v4"), + KX_PYATTRIBUTE_DUMMY("visible"), + KX_PYATTRIBUTE_DUMMY("collide"), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 9929e66c3a4..9a6565d7627 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1099,9 +1099,9 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_INPUT_ACTIVE, SCA_InputEvent::KX_ACTIVE); KX_MACRO_addTypesToDict(d, KX_INPUT_JUST_RELEASED, SCA_InputEvent::KX_JUSTRELEASED); - KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_LEFT, SCA_InputEvent::KX_LEFTMOUSE); - KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_MIDDLE, SCA_InputEvent::KX_MIDDLEMOUSE); - KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_RIGHT, SCA_InputEvent::KX_RIGHTMOUSE); + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_LEFT, SCA_IInputDevice::KX_LEFTMOUSE); + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_MIDDLE, SCA_IInputDevice::KX_MIDDLEMOUSE); + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_RIGHT, SCA_IInputDevice::KX_RIGHTMOUSE); // Check for errors if (PyErr_Occurred()) diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 8eeed5d853b..29a7a5f85f2 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -129,6 +129,13 @@ void initPyObjectPlusType(PyTypeObject **parents) +static int PyType_Ready_ADD(PyObject *dict, PyTypeObject * tp) +{ + PyType_Ready(tp); + PyDict_SetItemString(dict, tp->tp_name, (PyObject *)tp); +} + + void initPyTypes(void) { @@ -138,69 +145,76 @@ void initPyTypes(void) */ /* For now just do PyType_Ready */ - - PyType_Ready(&BL_ActionActuator::Type); - PyType_Ready(&BL_Shader::Type); - PyType_Ready(&BL_ShapeActionActuator::Type); - PyType_Ready(&CListValue::Type); - PyType_Ready(&CValue::Type); - PyType_Ready(&KX_BlenderMaterial::Type); - PyType_Ready(&KX_CDActuator::Type); - PyType_Ready(&KX_Camera::Type); - PyType_Ready(&KX_CameraActuator::Type); - PyType_Ready(&KX_ConstraintActuator::Type); - PyType_Ready(&KX_ConstraintWrapper::Type); - PyType_Ready(&KX_GameActuator::Type); - PyType_Ready(&KX_GameObject::Type); - PyType_Ready(&KX_IpoActuator::Type); - PyType_Ready(&KX_LightObject::Type); - PyType_Ready(&KX_MeshProxy::Type); - PyType_Ready(&KX_MouseFocusSensor::Type); - PyType_Ready(&KX_NearSensor::Type); - PyType_Ready(&KX_NetworkMessageActuator::Type); - PyType_Ready(&KX_NetworkMessageSensor::Type); - PyType_Ready(&KX_ObjectActuator::Type); - PyType_Ready(&KX_ParentActuator::Type); - PyType_Ready(&KX_PhysicsObjectWrapper::Type); - PyType_Ready(&KX_PolyProxy::Type); - PyType_Ready(&KX_PolygonMaterial::Type); - PyType_Ready(&KX_RadarSensor::Type); - PyType_Ready(&KX_RaySensor::Type); - PyType_Ready(&KX_SCA_AddObjectActuator::Type); - PyType_Ready(&KX_SCA_DynamicActuator::Type); - PyType_Ready(&KX_SCA_EndObjectActuator::Type); - PyType_Ready(&KX_SCA_ReplaceMeshActuator::Type); - PyType_Ready(&KX_Scene::Type); - PyType_Ready(&KX_SceneActuator::Type); - PyType_Ready(&KX_SoundActuator::Type); - PyType_Ready(&KX_StateActuator::Type); - PyType_Ready(&KX_TouchSensor::Type); - PyType_Ready(&KX_TrackToActuator::Type); - PyType_Ready(&KX_VehicleWrapper::Type); - PyType_Ready(&KX_VertexProxy::Type); - PyType_Ready(&KX_VisibilityActuator::Type); - PyType_Ready(&PyObjectPlus::Type); - PyType_Ready(&SCA_2DFilterActuator::Type); - PyType_Ready(&SCA_ANDController::Type); - PyType_Ready(&SCA_ActuatorSensor::Type); - PyType_Ready(&SCA_AlwaysSensor::Type); - PyType_Ready(&SCA_DelaySensor::Type); - PyType_Ready(&SCA_ILogicBrick::Type); - PyType_Ready(&SCA_IObject::Type); - PyType_Ready(&SCA_ISensor::Type); - PyType_Ready(&SCA_JoystickSensor::Type); - PyType_Ready(&SCA_KeyboardSensor::Type); - PyType_Ready(&SCA_MouseSensor::Type); - PyType_Ready(&SCA_NANDController::Type); - PyType_Ready(&SCA_NORController::Type); - PyType_Ready(&SCA_ORController::Type); - PyType_Ready(&SCA_PropertyActuator::Type); - PyType_Ready(&SCA_PropertySensor::Type); - PyType_Ready(&SCA_PythonController::Type); - PyType_Ready(&SCA_RandomActuator::Type); - PyType_Ready(&SCA_RandomSensor::Type); - PyType_Ready(&SCA_XNORController::Type); - PyType_Ready(&SCA_XORController::Type); + PyObject *mod= PyModule_New("GameTypes"); + PyObject *dict= PyModule_GetDict(mod); + PyDict_SetItemString(PySys_GetObject("modules"), "GameTypes", mod); + Py_DECREF(mod); + + PyType_Ready_ADD(dict, &BL_ActionActuator::Type); + PyType_Ready_ADD(dict, &BL_Shader::Type); + PyType_Ready_ADD(dict, &BL_ShapeActionActuator::Type); + PyType_Ready_ADD(dict, &CListValue::Type); + PyType_Ready_ADD(dict, &CValue::Type); + PyType_Ready_ADD(dict, &KX_BlenderMaterial::Type); + PyType_Ready_ADD(dict, &KX_CDActuator::Type); + PyType_Ready_ADD(dict, &KX_Camera::Type); + PyType_Ready_ADD(dict, &KX_CameraActuator::Type); + PyType_Ready_ADD(dict, &KX_ConstraintActuator::Type); + PyType_Ready_ADD(dict, &KX_ConstraintWrapper::Type); + PyType_Ready_ADD(dict, &KX_GameActuator::Type); + PyType_Ready_ADD(dict, &KX_GameObject::Type); + PyType_Ready_ADD(dict, &KX_IpoActuator::Type); + PyType_Ready_ADD(dict, &KX_LightObject::Type); + PyType_Ready_ADD(dict, &KX_MeshProxy::Type); + PyType_Ready_ADD(dict, &KX_MouseFocusSensor::Type); + PyType_Ready_ADD(dict, &KX_NearSensor::Type); + PyType_Ready_ADD(dict, &KX_NetworkMessageActuator::Type); + PyType_Ready_ADD(dict, &KX_NetworkMessageSensor::Type); + PyType_Ready_ADD(dict, &KX_ObjectActuator::Type); + PyType_Ready_ADD(dict, &KX_ParentActuator::Type); + PyType_Ready_ADD(dict, &KX_PhysicsObjectWrapper::Type); + PyType_Ready_ADD(dict, &KX_PolyProxy::Type); + PyType_Ready_ADD(dict, &KX_PolygonMaterial::Type); + PyType_Ready_ADD(dict, &KX_RadarSensor::Type); + PyType_Ready_ADD(dict, &KX_RaySensor::Type); + PyType_Ready_ADD(dict, &KX_SCA_AddObjectActuator::Type); + PyType_Ready_ADD(dict, &KX_SCA_DynamicActuator::Type); + PyType_Ready_ADD(dict, &KX_SCA_EndObjectActuator::Type); + PyType_Ready_ADD(dict, &KX_SCA_ReplaceMeshActuator::Type); + PyType_Ready_ADD(dict, &KX_Scene::Type); + PyType_Ready_ADD(dict, &KX_SceneActuator::Type); + PyType_Ready_ADD(dict, &KX_SoundActuator::Type); + PyType_Ready_ADD(dict, &KX_StateActuator::Type); + PyType_Ready_ADD(dict, &KX_TouchSensor::Type); + PyType_Ready_ADD(dict, &KX_TrackToActuator::Type); + PyType_Ready_ADD(dict, &KX_VehicleWrapper::Type); + PyType_Ready_ADD(dict, &KX_VertexProxy::Type); + PyType_Ready_ADD(dict, &KX_VisibilityActuator::Type); + PyType_Ready_ADD(dict, &PyObjectPlus::Type); + PyType_Ready_ADD(dict, &SCA_2DFilterActuator::Type); + PyType_Ready_ADD(dict, &SCA_ANDController::Type); + PyType_Ready_ADD(dict, &SCA_ActuatorSensor::Type); + PyType_Ready_ADD(dict, &SCA_AlwaysSensor::Type); + PyType_Ready_ADD(dict, &SCA_DelaySensor::Type); + PyType_Ready_ADD(dict, &SCA_ILogicBrick::Type); + PyType_Ready_ADD(dict, &SCA_IObject::Type); + PyType_Ready_ADD(dict, &SCA_ISensor::Type); + PyType_Ready_ADD(dict, &SCA_JoystickSensor::Type); + PyType_Ready_ADD(dict, &SCA_KeyboardSensor::Type); + PyType_Ready_ADD(dict, &SCA_MouseSensor::Type); + PyType_Ready_ADD(dict, &SCA_NANDController::Type); + PyType_Ready_ADD(dict, &SCA_NORController::Type); + PyType_Ready_ADD(dict, &SCA_ORController::Type); + PyType_Ready_ADD(dict, &SCA_PropertyActuator::Type); + PyType_Ready_ADD(dict, &SCA_PropertySensor::Type); + PyType_Ready_ADD(dict, &SCA_PythonController::Type); + PyType_Ready_ADD(dict, &SCA_RandomActuator::Type); + PyType_Ready_ADD(dict, &SCA_RandomSensor::Type); + PyType_Ready_ADD(dict, &SCA_XNORController::Type); + PyType_Ready_ADD(dict, &SCA_XORController::Type); + + + } #endif \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index 8c8291ef791..f3e9bbf86b1 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -79,6 +79,30 @@ PyMethodDef KX_VertexProxy::Methods[] = { }; PyAttributeDef KX_VertexProxy::Attributes[] = { + + KX_PYATTRIBUTE_DUMMY("x"), + KX_PYATTRIBUTE_DUMMY("y"), + KX_PYATTRIBUTE_DUMMY("z"), + + KX_PYATTRIBUTE_DUMMY("r"), + KX_PYATTRIBUTE_DUMMY("g"), + KX_PYATTRIBUTE_DUMMY("b"), + KX_PYATTRIBUTE_DUMMY("a"), + + KX_PYATTRIBUTE_DUMMY("u"), + KX_PYATTRIBUTE_DUMMY("v"), + + KX_PYATTRIBUTE_DUMMY("u2"), + KX_PYATTRIBUTE_DUMMY("v2"), + + KX_PYATTRIBUTE_DUMMY("XYZ"), + KX_PYATTRIBUTE_DUMMY("UV"), + + KX_PYATTRIBUTE_DUMMY("color"), + KX_PYATTRIBUTE_DUMMY("colour"), + + KX_PYATTRIBUTE_DUMMY("normal"), + { NULL } //Sentinel }; diff --git a/source/gameengine/PyDoc/bge_api_validate_py.txt b/source/gameengine/PyDoc/bge_api_validate_py.txt new file mode 100644 index 00000000000..e003f29831b --- /dev/null +++ b/source/gameengine/PyDoc/bge_api_validate_py.txt @@ -0,0 +1,66 @@ +#~ This program is free software; you can redistribute it and/or modify +#~ it under the terms of the GNU General Public License as published by +#~ the Free Software Foundation; version 2 of the License. + +#~ This program is distributed in the hope that it will be useful, +#~ but WITHOUT ANY WARRANTY; without even the implied warranty of +#~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#~ GNU General Public License for more details. + +# This script must run from a logic brick so it has access to the game engine api +# it assumes the root blender source directory is the current working directory +# +# Currently it only prints missing modules and methods (not attributes) + + +BGE_API_DOC_PATH = 'source/gameengine/PyDoc' + +type_members = {} + +for type_name in dir(GameTypes): + if type_name.startswith('__'): + continue + + type_object = getattr(GameTypes, type_name) + + members = [] + type_members[type_object.__name__] = members + + for member in type_object.__dict__.keys(): + if member.startswith('__'): + continue + + # print type_object.__name__ + '.' + k + members.append(member) + +import sys, os + +doc_dir= os.path.join(os.getcwd(), BGE_API_DOC_PATH) + +if doc_dir not in sys.path: + sys.path.append(doc_dir) + +for type_name in sorted(type_members.keys()): + members = type_members[type_name] + + try: + mod = __import__(type_name) + print "type: %s" % type_name + except: + print "missing: %s - %s" % (type_name, str(members)) + continue + + reload(mod) # incase were editing it + + try: + type_class = getattr(mod, type_name) + except: + print "missing class: %s.%s - %s" % (type_name, type_name, str(members)) + continue + + for member in sorted(members): + try: + getattr(type_class, member) + print "\tfound: %s.%s" % (type_name, member) + except: + print "\tmissing: %s.%s" % (type_name, member) From 445ca000bcdc732de3c1af8d98f726bd71b96423 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 6 Apr 2009 18:08:15 +0000 Subject: [PATCH 093/201] bugfix #18398 When using 'angle' display for camera, the 'lens' ipo didn't update this button. Implementation still lacks a bit... having both variables in the camera struct is asking for troubles. Put on the re-think list for 2.5! --- source/blender/src/buttons_editing.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 80495b9ff80..8b249815b6f 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -3727,6 +3727,9 @@ static void editing_panel_camera_type(Object *ob, Camera *cam) 10, 160, 150, 20, &cam->ortho_scale, 0.01, 1000.0, 50, 0, "Specify the ortho scaling of the used camera"); } else { if(cam->flag & CAM_ANGLETOGGLE) { + /* ensure animated lens value is always copied */ + do_lenstoangleconversion_cb(&cam->lens, &cam->angle); + but= uiDefButF(block, NUM,REDRAWVIEW3D, "Lens:", 10, 160, 130, 20, &cam->angle, 7.323871, 172.847331, 100, 0, "Specify the lens of the camera in degrees"); uiButSetFunc(but,do_angletolensconversion_cb, &cam->lens, &cam->angle); From 30ce01f23ffb2c926e5bbaaabf07c63611f7ea89 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 6 Apr 2009 19:32:23 +0000 Subject: [PATCH 094/201] Fix for: [#18354] Controlling with a texture the particles DENSITY parameter doesn't work. If the density texture was taken into account with hair parent particles there were cases when there weren't any parents left to interpolate children from. Now a density texture is only taken into account for hair child particles. --- source/blender/blenkernel/intern/particle_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 8720edf6c24..0ffdd11c37a 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1616,7 +1616,7 @@ void initialize_particle(ParticleData *pa, int p, Object *ob, ParticleSystem *ps NormalQuat(pa->r_rot); - if(part->distr!=PART_DISTR_GRID && part->from != PART_FROM_VERT){ + if(part->type!=PART_HAIR && part->distr!=PART_DISTR_GRID && part->from != PART_FROM_VERT){ /* any unique random number will do (r_ave[0]) */ if(ptex.exist < 0.5*(1.0+pa->r_ave[0])) pa->flag |= PARS_UNEXIST; From b8270db75c8aa6898794c482bff933f50f21381a Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Mon, 6 Apr 2009 23:23:36 +0000 Subject: [PATCH 095/201] Harmonic effector force wasn't working properly at all. A silly vector normalization where it shouldn't have been. --- source/blender/blenkernel/intern/effect.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 0338ec92414..a6514ae7b87 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -442,14 +442,11 @@ void do_physical_effector(Object *ob, float *opco, short type, float force_val, else VecCopyf(mag_vec,vec_to_part); - Normalize(mag_vec); - VecMulf(mag_vec,force_val*falloff); VecSubf(field,field,mag_vec); VecCopyf(mag_vec,velocity); - /* 1.9 is an experimental value to get critical damping at damp=1.0 */ - VecMulf(mag_vec,damp*1.9f*(float)sqrt(force_val)); + VecMulf(mag_vec,damp*2.0f*(float)sqrt(force_val)); VecSubf(field,field,mag_vec); break; case PFIELD_CHARGE: From 7e23b7dc54f8c59eb3ccbf13839552a3b24a9c5b Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 7 Apr 2009 00:15:58 +0000 Subject: [PATCH 096/201] Texture effector nabla didn't have a correct initial value and it's button explanation needed some work. --- source/blender/src/buttons_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 6f871527ab7..5c41390b150 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -3360,6 +3360,7 @@ static void object_panel_fields(Object *ob) ob->pd->pdef_sbdamp = 0.1f; ob->pd->pdef_sbift = 0.2f; ob->pd->pdef_sboft = 0.02f; + ob->pd->tex_nabla = 0.025f; } if(ob->pd) { @@ -3467,7 +3468,7 @@ static void object_panel_fields(Object *ob) else if(pd->forcefield==PFIELD_TEXTURE){ uiDefButS(block, MENU, B_FIELD_CHANGE, "Texture mode%t|RGB%x0|Gradient%x1|Curl%x2", 10,50,140,20, &pd->tex_mode, 0.0, 0.0, 0, 0, "How the texture effect is calculated (RGB & Curl need a RGB texture else Gradient will be used instead)"); - uiDefButF(block, NUM, B_FIELD_CHANGE, "Nabla:", 10,30,140,20, &pd->tex_nabla, 0.0001f, 1.0, 1, 0, "Specify the dimension of the area for gradient and curl calculation"); + uiDefButF(block, NUM, B_FIELD_CHANGE, "Nabla:", 10,30,140,20, &pd->tex_nabla, 0.0001f, 1.0, 1, 0, "Defines size of derivative offset used for calculating gradient and curl"); } else if(particles==0 && ELEM(pd->forcefield,PFIELD_VORTEX,PFIELD_WIND)==0){ //uiDefButF(block, NUM, B_FIELD_CHANGE, "Distance: ", 10,20,140,20, &pd->f_dist, 0, 1000.0, 10, 0, "Falloff power (real gravitational fallof = 2)"); From a127f259da8f443b5f727528bca5e89d3ac7a48d Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Tue, 7 Apr 2009 03:00:32 +0000 Subject: [PATCH 097/201] Fix for: [#18027] Strange behaviour of Explode modifier in combination with SubSurf - Explode didn't use the dmcache index for getting the particles emitter position. - One "tri or quad"-comparison tested the wrong index. Leading to one quad converting into a tri. --- source/blender/blenkernel/intern/modifier.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index b3892a515af..d182e3124fc 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -7193,7 +7193,7 @@ static DerivedMesh * explodeModifier_explodeMesh(ExplodeModifierData *emd, pa= pars+i; /* get particle state */ - psys_particle_on_emitter(psmd,part->from,pa->num,-1,pa->fuv,pa->foffset,loc0,nor,0,0,0,0); + psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc0,nor,0,0,0,0); Mat4MulVecfl(ob->obmat,loc0); state.time=cfra; @@ -7249,7 +7249,7 @@ static DerivedMesh * explodeModifier_explodeMesh(ExplodeModifierData *emd, *mf = source; - test_index_face(mf, &explode->faceData, i, (mf->v4 ? 4 : 3)); + test_index_face(mf, &explode->faceData, i, (orig_v4 ? 4 : 3)); } MEM_printmemlist_stats(); From 816a9f3acb47f97d5bf92ae7ae8803e31f4a9f0a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 03:20:59 +0000 Subject: [PATCH 098/201] error in last commit --- source/gameengine/Ketsji/KX_PythonInitTypes.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 29a7a5f85f2..676033cb898 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -129,7 +129,7 @@ void initPyObjectPlusType(PyTypeObject **parents) -static int PyType_Ready_ADD(PyObject *dict, PyTypeObject * tp) +static void PyType_Ready_ADD(PyObject *dict, PyTypeObject * tp) { PyType_Ready(tp); PyDict_SetItemString(dict, tp->tp_name, (PyObject *)tp); From 885fa49aa4cd49a552bfe6210e3cb4701c4a5d04 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 06:23:45 +0000 Subject: [PATCH 099/201] BGE Joystick Sensor - Raised limit of 2 axis to 4 axis pairs (4==8 joysticks axis pairs) - Added a new Joystick Sensor type "Single Axis", so you can detect horizontal or vertical movement, rather then just Up/Down/Left/Right - added Python attribute "axisSingle" so you can get the value from the selected axis (rather then getting it out of the axis list) - renamed Py attribute "axisPosition" to "axisValues" (was never in a release) If we need to increase the axis limit again just change JOYAXIS_MAX and the button limits. --- source/blender/makesdna/DNA_sensor_types.h | 11 +- source/blender/src/buttons_logic.c | 56 +++++---- .../Converter/KX_ConvertSensors.cpp | 5 + .../GameLogic/Joystick/SCA_Joystick.cpp | 92 +++++---------- .../GameLogic/Joystick/SCA_Joystick.h | 41 +++---- .../GameLogic/Joystick/SCA_JoystickDefines.h | 6 + .../GameLogic/Joystick/SCA_JoystickEvents.cpp | 4 +- .../GameLogic/SCA_JoystickSensor.cpp | 109 ++++++++++-------- .../gameengine/GameLogic/SCA_JoystickSensor.h | 4 +- source/gameengine/PyDoc/SCA_JoystickSensor.py | 14 ++- 10 files changed, 172 insertions(+), 170 deletions(-) diff --git a/source/blender/makesdna/DNA_sensor_types.h b/source/blender/makesdna/DNA_sensor_types.h index 2cae2cc8ccb..7a358ad0694 100644 --- a/source/blender/makesdna/DNA_sensor_types.h +++ b/source/blender/makesdna/DNA_sensor_types.h @@ -166,7 +166,8 @@ typedef struct bJoystickSensor { char type; char joyindex; short flag; - int axis; + short axis; + short axis_single; int axisf; int button; int hat; @@ -255,20 +256,22 @@ typedef struct bJoystickSensor { #define SENS_JOY_ANY_EVENT 1 -#define SENS_JOY_BUTTON 0 +#define SENS_JOY_BUTTON 0 /* axis type */ #define SENS_JOY_BUTTON_PRESSED 0 #define SENS_JOY_BUTTON_RELEASED 1 -#define SENS_JOY_AXIS 1 +#define SENS_JOY_AXIS 1 /* axis type */ #define SENS_JOY_X_AXIS 0 #define SENS_JOY_Y_AXIS 1 #define SENS_JOY_NEG_X_AXIS 2 #define SENS_JOY_NEG_Y_AXIS 3 #define SENS_JOY_PRECISION 4 -#define SENS_JOY_HAT 2 +#define SENS_JOY_HAT 2 /* axis type */ #define SENS_JOY_HAT_DIR 0 +#define SENS_JOY_AXIS_SINGLE 3 /* axis type */ + #define SENS_DELAY_REPEAT 1 // should match JOYINDEX_MAX in SCA_JoystickDefines.h */ diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index cf6d29da0d3..94790ac0f40 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -1457,32 +1457,33 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short &joy->joyindex, 0, SENS_JOY_MAXINDEX-1, 100, 0, "Specify which joystick to use"); - str= "Type %t|Button %x0|Axis %x1|Hat%x2"; + str= "Type %t|Button %x0|Axis %x1|Single Axis %x3|Hat%x2"; uiDefButC(block, MENU, B_REDR, str, xco+87, yco-44, 0.26 * (width-20), 19, &joy->type, 0, 31, 0, 0, "The type of event this joystick sensor is triggered on."); - if (joy->flag & SENS_JOY_ANY_EVENT) { - switch (joy->type) { - case SENS_JOY_AXIS: - str = "All Axis Events"; - break; - case SENS_JOY_BUTTON: - str = "All Button Events"; - break; - default: - str = "All Hat Events"; - break; + if (joy->type != SENS_JOY_AXIS_SINGLE) { + if (joy->flag & SENS_JOY_ANY_EVENT) { + switch (joy->type) { + case SENS_JOY_AXIS: + str = "All Axis Events"; + break; + case SENS_JOY_BUTTON: + str = "All Button Events"; + break; + default: + str = "All Hat Events"; + break; + } + } else { + str = "All"; } - } else { - str = "All"; + + uiDefButBitS(block, TOG, SENS_JOY_ANY_EVENT, B_REDR, str, + xco+10 + 0.475 * (width-20), yco-68, ((joy->flag & SENS_JOY_ANY_EVENT) ? 0.525 : 0.12) * (width-20), 19, + &joy->flag, 0, 0, 0, 0, + "Triggered by all events on this joysticks current type (axis/button/hat)"); } - - uiDefButBitS(block, TOG, SENS_JOY_ANY_EVENT, B_REDR, str, - xco+10 + 0.475 * (width-20), yco-68, ((joy->flag & SENS_JOY_ANY_EVENT) ? 0.525 : 0.12) * (width-20), 19, - &joy->flag, 0, 0, 0, 0, - "Triggered by all events on this joysticks current type (axis/button/hat)"); - if(joy->type == SENS_JOY_BUTTON) { if ((joy->flag & SENS_JOY_ANY_EVENT)==0) { @@ -1493,8 +1494,8 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short } else if(joy->type == SENS_JOY_AXIS) { - uiDefButI(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, - &joy->axis, 1, 2.0, 100, 0, + uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, + &joy->axis, 1, 4.0, 100, 0, "Specify which axis pair to use, 1 is useually the main direction input."); uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20),yco-44, 0.4 * (width-20), 19, @@ -1508,7 +1509,7 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short "The direction of the axis, use 'All Events' to recieve events on any direction"); } } - else + else if (joy->type == SENS_JOY_HAT) { uiDefButI(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, &joy->hat, 1, 2.0, 100, 0, @@ -1520,6 +1521,15 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short "Specify hat direction"); } } + else { /* (joy->type == SENS_JOY_AXIS_SINGLE)*/ + uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, + &joy->axis_single, 1, 8.0, 100, 0, + "Specify a single axis (verticle/horizontal/other) to detect"); + + uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20),yco-44, 0.4 * (width-20), 19, + &joy->precision, 0, 32768.0, 100, 0, + "Specify the precision of the axis"); + } yco-= ysize; break; } diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp index c9b51807767..64cfc101751 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.cpp +++ b/source/gameengine/Converter/KX_ConvertSensors.cpp @@ -708,6 +708,11 @@ void BL_ConvertSensors(struct Object* blenderobject, hatf = bjoy->hatf; joysticktype = SCA_JoystickSensor::KX_JOYSENSORMODE_HAT; break; + case SENS_JOY_AXIS_SINGLE: + axis = bjoy->axis_single; + prec = bjoy->precision; + joysticktype = SCA_JoystickSensor::KX_JOYSENSORMODE_AXIS_SINGLE; + break; default: printf("Error: bad case statement\n"); break; diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp index c21e5db1410..eaffd483d70 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp +++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp @@ -36,21 +36,19 @@ SCA_Joystick::SCA_Joystick(short int index) : m_joyindex(index), - m_axis10(0), - m_axis11(0), - m_axis20(0), - m_axis21(0), m_prec(3200), m_buttonnum(-2), m_axismax(-1), - m_hatdir(-2), m_buttonmax(-1), m_hatmax(-1), + m_hatdir(-2), m_isinit(0), m_istrig_axis(0), m_istrig_button(0), m_istrig_hat(0) { + for(int i=0; i m_prec? result = true: result = false; - return result; + return (pAxisTest(axis) > m_prec) ? true:false; } -bool SCA_Joystick::aRightAxisIsPositive(int axis) +bool SCA_Joystick::aAxisPairDirectionIsPositive(int axis, int dir) { - bool result; - int res = pGetAxis(axis,1); - res > m_prec? result = true: result = false; - return result; + + int res; + + if (dir==JOYAXIS_UP || dir==JOYAXIS_DOWN) + res = pGetAxis(axis, 1); + else /* JOYAXIS_LEFT || JOYAXIS_RIGHT */ + res = pGetAxis(axis, 0); + + if (dir==JOYAXIS_DOWN || dir==JOYAXIS_RIGHT) + return (res > m_prec) ? true : false; + else /* JOYAXIS_UP || JOYAXIS_LEFT */ + return (res < -m_prec) ? true : false; } - -bool SCA_Joystick::aUpAxisIsPositive(int axis) +bool SCA_Joystick::aAxisIsPositive(int axis_single) { - bool result; - int res = pGetAxis(axis,0); - res < -m_prec? result = true : result = false; - return result; -} - - -bool SCA_Joystick::aLeftAxisIsPositive(int axis) -{ - bool result; - int res = pGetAxis(axis,1); - res < -m_prec ? result = true : result = false; - return result; -} - - -bool SCA_Joystick::aDownAxisIsPositive(int axis) -{ - bool result; - int res = pGetAxis(axis,0); - res > m_prec ? result = true:result = false; - return result; + return abs(m_axis_array[axis_single]) > m_prec ? true:false; } bool SCA_Joystick::aAnyButtonPressIsPositive(void) @@ -255,8 +236,12 @@ bool SCA_Joystick::CreateJoystickDevice(void) /* must run after being initialized */ m_axismax = SDL_JoystickNumAxes(m_private->m_joystick); + if (m_axismax > JOYAXIS_MAX) m_axismax= JOYAXIS_MAX; /* very unlikely */ + m_buttonmax = SDL_JoystickNumButtons(m_private->m_joystick); m_hatmax = SDL_JoystickNumHats(m_private->m_joystick); + + } return true; #endif @@ -288,17 +273,8 @@ int SCA_Joystick::Connected(void) void SCA_Joystick::pFillAxes() { #ifndef DISABLE_SDL - if(m_axismax == 1){ - m_axis10 = SDL_JoystickGetAxis(m_private->m_joystick, 0); - m_axis11 = SDL_JoystickGetAxis(m_private->m_joystick, 1); - }else if(m_axismax > 1){ - m_axis10 = SDL_JoystickGetAxis(m_private->m_joystick, 0); - m_axis11 = SDL_JoystickGetAxis(m_private->m_joystick, 1); - m_axis20 = SDL_JoystickGetAxis(m_private->m_joystick, 2); - m_axis21 = SDL_JoystickGetAxis(m_private->m_joystick, 3); - }else{ - m_axis10 = m_axis11 = m_axis20 = m_axis21 = 0; - } + for(int i=0; im_joystick, i); #endif } @@ -306,10 +282,7 @@ void SCA_Joystick::pFillAxes() int SCA_Joystick::pGetAxis(int axisnum, int udlr) { #ifndef DISABLE_SDL - if(axisnum == 1 && udlr == 1)return m_axis10; //u/d - if(axisnum == 1 && udlr == 0)return m_axis11; //l/r - if(axisnum == 2 && udlr == 0)return m_axis20; //... - if(axisnum == 2 && udlr == 1)return m_axis21; + return m_axis_array[(axisnum*2)+udlr]; #endif return 0; } @@ -317,13 +290,9 @@ int SCA_Joystick::pGetAxis(int axisnum, int udlr) int SCA_Joystick::pAxisTest(int axisnum) { #ifndef DISABLE_SDL - short i1,i2; - if(axisnum == 1) { - i1 = m_axis10; i2 = m_axis11; - } - else if(axisnum == 2) { - i1 = m_axis20; i2 = m_axis21; - } + short i1= m_axis_array[(axisnum*2)]; + short i2= m_axis_array[(axisnum*2)+1]; + /* long winded way to do * return MAX2(abs(i1), abs(i2)) * avoid abs from math.h */ @@ -335,4 +304,3 @@ int SCA_Joystick::pAxisTest(int axisnum) return 0; #endif } - diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h index 8335d5538ad..53cd65cd495 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h +++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h @@ -55,10 +55,8 @@ class SCA_Joystick /* *support for 2 axes */ - - int m_axis10,m_axis11; - int m_axis20,m_axis21; - + int m_axis_array[JOYAXIS_MAX]; + /* * Precision or range of the axes */ @@ -120,7 +118,10 @@ class SCA_Joystick void OnButtonUp(SDL_Event *sdl_event); void OnButtonDown(SDL_Event *sdl_event); void OnNothing(SDL_Event *sdl_event); +#if 0 /* not used yet */ void OnBallMotion(SDL_Event *sdl_event){} +#endif + #endif /* * Open the joystick @@ -139,12 +140,12 @@ class SCA_Joystick void pFillButtons(void); /* - * returns m_axis10,m_axis11... + * returns m_axis_array */ int pAxisTest(int axisnum); /* - * returns m_axis10,m_axis11... + * returns m_axis_array */ int pGetAxis(int axisnum, int udlr); @@ -166,11 +167,9 @@ public: /* */ - bool aAnyAxisIsPositive(int axis); - bool aUpAxisIsPositive(int axis); - bool aDownAxisIsPositive(int axis); - bool aLeftAxisIsPositive(int axis); - bool aRightAxisIsPositive(int axis); + bool aAxisPairIsPositive(int axis); + bool aAxisPairDirectionIsPositive(int axis, int dir); /* function assumes joysticks are in axis pairs */ + bool aAxisIsPositive(int axis_single); /* check a single axis only */ bool aAnyButtonPressIsPositive(void); bool aAnyButtonReleaseIsPositive(void); @@ -184,24 +183,10 @@ public: void cSetPrecision(int val); - int GetAxis10(void){ - - return m_axis10; - + int GetAxisPosition(int index){ + return m_axis_array[index]; } - - int GetAxis11(void){ - return m_axis11; - } - - int GetAxis20(void){ - return m_axis20; - } - - int GetAxis21(void){ - return m_axis21; - } - + int GetButton(void){ return m_buttonnum; } diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h index 73ffe1406d9..42fed51b19f 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h +++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h @@ -39,5 +39,11 @@ #endif #define JOYINDEX_MAX 8 +#define JOYAXIS_MAX 8 + +#define JOYAXIS_RIGHT 0 +#define JOYAXIS_UP 1 +#define JOYAXIS_DOWN 3 +#define JOYAXIS_LEFT 2 #endif diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp index 73ca288861d..8e190060e95 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp +++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp @@ -68,7 +68,7 @@ void SCA_Joystick::OnButtonUp(SDL_Event* sdl_event) void SCA_Joystick::OnButtonDown(SDL_Event* sdl_event) { - if(sdl_event->jbutton.button >= 0 || sdl_event->jbutton.button <= m_buttonmax) + if(sdl_event->jbutton.button <= m_buttonmax) /* unsigned int so always above 0 */ { m_istrig_button = 1; m_buttonnum = sdl_event->jbutton.button; @@ -111,9 +111,11 @@ void SCA_Joystick::HandleEvents(void) case SDL_JOYBUTTONDOWN: SCA_Joystick::m_instance[sdl_event.jbutton.which]->OnButtonDown(&sdl_event); break; +#if 0 /* Not used yet */ case SDL_JOYBALLMOTION: SCA_Joystick::m_instance[sdl_event.jball.which]->OnBallMotion(&sdl_event); break; +#endif default: printf("SCA_Joystick::HandleEvents, Unknown SDL event, this should not happen\n"); break; diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 2744d7f6609..1290b7c96ed 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -117,11 +117,15 @@ bool SCA_JoystickSensor::Evaluate(CValue* event) case KX_JOYSENSORMODE_AXIS: { /* what is what! - m_axisf == 0 == right + m_axisf == JOYAXIS_RIGHT, JOYAXIS_UP, JOYAXIS_DOWN, JOYAXIS_LEFT m_axisf == 1 == up m_axisf == 2 == left m_axisf == 3 == down - numberof== m_axis -- max 2 + + numberof== m_axis (1-4), range is half of JOYAXIS_MAX since + it assumes the axis joysticks are axis parirs (0,1), (2,3), etc + also note that this starts at 1 where functions its used + with expect a zero index. */ if (!js->IsTrigAxis() && !reset) /* No events from SDL? - dont bother */ @@ -129,7 +133,7 @@ bool SCA_JoystickSensor::Evaluate(CValue* event) js->cSetPrecision(m_precision); if (m_bAllEvents) { - if(js->aAnyAxisIsPositive(m_axis)){ + if(js->aAxisPairIsPositive(m_axis-1)){ /* use zero based axis index internally */ m_istrig = 1; result = true; }else{ @@ -139,41 +143,8 @@ bool SCA_JoystickSensor::Evaluate(CValue* event) } } } - else if(m_axisf == 1){ - if(js->aUpAxisIsPositive(m_axis)){ - m_istrig = 1; - result = true; - }else{ - if(m_istrig){ - m_istrig = 0; - result = true; - } - } - } - else if(m_axisf == 3){ - if(js->aDownAxisIsPositive(m_axis)){ - m_istrig = 1; - result = true; - }else{ - if(m_istrig){ - m_istrig = 0; - result = true; - } - } - } - else if(m_axisf == 2){ - if(js->aLeftAxisIsPositive(m_axis)){ - m_istrig = 1; - result = true; - }else{ - if(m_istrig){ - m_istrig = 0; - result = true; - } - } - } - else if(m_axisf == 0){ - if(js->aRightAxisIsPositive(m_axis)){ + else { + if(js->aAxisPairDirectionIsPositive(m_axis-1, m_axisf)){ /* use zero based axis index internally */ m_istrig = 1; result = true; }else{ @@ -185,6 +156,26 @@ bool SCA_JoystickSensor::Evaluate(CValue* event) } break; } + case KX_JOYSENSORMODE_AXIS_SINGLE: + { + /* Like KX_JOYSENSORMODE_AXIS but dont pair up axis */ + if (!js->IsTrigAxis() && !reset) /* No events from SDL? - dont bother */ + return false; + + /* No need for 'm_bAllEvents' check here since were only checking 1 axis */ + js->cSetPrecision(m_precision); + if(js->aAxisIsPositive(m_axis-1)){ /* use zero based axis index internally */ + m_istrig = 1; + result = true; + }else{ + if(m_istrig){ + m_istrig = 0; + result = true; + } + } + break; + } + case KX_JOYSENSORMODE_BUTTON: { /* what is what! @@ -333,13 +324,13 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = { KX_PYATTRIBUTE_INT_RW("button",0,100,false,SCA_JoystickSensor,m_button), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("axis",0,3,true,SCA_JoystickSensor,m_axis,2,CheckAxis), KX_PYATTRIBUTE_INT_LIST_RW_CHECK("hat",0,12,true,SCA_JoystickSensor,m_hat,2,CheckHat), - KX_PYATTRIBUTE_RO_FUNCTION("axisPosition", SCA_JoystickSensor, pyattr_get_axis_position), + KX_PYATTRIBUTE_RO_FUNCTION("axisValues", SCA_JoystickSensor, pyattr_get_axis_values), + KX_PYATTRIBUTE_RO_FUNCTION("axisSingle", SCA_JoystickSensor, pyattr_get_axis_single), KX_PYATTRIBUTE_RO_FUNCTION("numAxis", SCA_JoystickSensor, pyattr_get_num_axis), KX_PYATTRIBUTE_RO_FUNCTION("numButtons", SCA_JoystickSensor, pyattr_get_num_buttons), KX_PYATTRIBUTE_RO_FUNCTION("numHats", SCA_JoystickSensor, pyattr_get_num_hats), KX_PYATTRIBUTE_RO_FUNCTION("connected", SCA_JoystickSensor, pyattr_get_connected), - { NULL } //Sentinel }; @@ -420,10 +411,15 @@ const char SCA_JoystickSensor::GetAxisValue_doc[] = PyObject* SCA_JoystickSensor::PyGetAxisValue( PyObject* self) { ShowDeprecationWarning("getAxisValue()", "the axisPosition property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); - if(joy) - return Py_BuildValue("[iiii]", joy->GetAxis10(), joy->GetAxis11(), joy->GetAxis20(), joy->GetAxis21()); - else - return Py_BuildValue("[iiii]", 0, 0, 0, 0); + + int axis_index= joy->GetNumberOfAxes(); + PyObject *list= PyList_New(axis_index); + + while(axis_index--) { + PyList_SET_ITEM(list, axis_index, PyInt_FromLong(joy->GetAxisPosition(axis_index))); + } + + return list; } @@ -590,13 +586,32 @@ PyObject* SCA_JoystickSensor::PyConnected( PyObject* self ) { } -PyObject* SCA_JoystickSensor::pyattr_get_axis_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +PyObject* SCA_JoystickSensor::pyattr_get_axis_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { SCA_JoystickSensor* self= static_cast(self_v); SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); - if(joy) return Py_BuildValue("[iiii]", joy->GetAxis10(), joy->GetAxis11(), joy->GetAxis20(), joy->GetAxis21()); - else return Py_BuildValue("[iiii]", 0, 0, 0, 0); + int axis_index= joy->GetNumberOfAxes(); + PyObject *list= PyList_New(axis_index); + + while(axis_index--) { + PyList_SET_ITEM(list, axis_index, PyInt_FromLong(joy->GetAxisPosition(axis_index))); + } + + return list; +} + +PyObject* SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_JoystickSensor* self= static_cast(self_v); + SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); + + if(self->m_joymode != KX_JOYSENSORMODE_AXIS_SINGLE) { + PyErr_SetString(PyExc_TypeError, "joystick sensor is not an 'Single Axis' type"); + return NULL; + } + + return PyInt_FromLong(joy->GetAxisPosition(self->m_axis)); } PyObject* SCA_JoystickSensor::pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h index f8a3eb8756a..cf3e7e74414 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.h +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h @@ -93,6 +93,7 @@ class SCA_JoystickSensor :public SCA_ISensor KX_JOYSENSORMODE_AXIS, KX_JOYSENSORMODE_BUTTON, KX_JOYSENSORMODE_HAT, + KX_JOYSENSORMODE_AXIS_SINGLE, KX_JOYSENSORMODE_MAX }; bool isValid(KX_JOYSENSORMODE); @@ -148,7 +149,8 @@ public: KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfHats); KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,Connected); - static PyObject* pyattr_get_axis_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_axis_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_axis_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_num_buttons(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_num_hats(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/PyDoc/SCA_JoystickSensor.py b/source/gameengine/PyDoc/SCA_JoystickSensor.py index e38e023143d..13b006e8dd6 100644 --- a/source/gameengine/PyDoc/SCA_JoystickSensor.py +++ b/source/gameengine/PyDoc/SCA_JoystickSensor.py @@ -8,10 +8,16 @@ class SCA_JoystickSensor(SCA_ISensor): Properties: - @ivar axisPosition: (read-only) The state of the joysticks axis as a list of 4 values, each spesifying the value of an axis between -32767 and 32767 depending on how far the axis is pushed, 0 for nothing. - The first 2 values are used by most joysticks and gamepads for directional control. 3rd and 4th values are only on some joysticks and can be used for arbitary controls. - left:[-32767, 0, ...], right:[32767, 0, ...], up:[0, -32767, ...], down:[0, 32767, ...] - @type axisPosition: [integer, integer, integer, integer] + @ivar axisValues: (read-only) The state of the joysticks axis as a list of values L{numAxis} long. + each spesifying the value of an axis between -32767 and 32767 depending on how far the axis is pushed, 0 for nothing. + The first 2 values are used by most joysticks and gamepads for directional control. 3rd and 4th values are only on some joysticks and can be used for arbitary controls. + left:[-32767, 0, ...], right:[32767, 0, ...], up:[0, -32767, ...], down:[0, 32767, ...] + @type axisValues: list of ints + + @ivar axisSingle: (read-only) like L{axisValues} but returns a single axis value that is set by the sensor. + Only use this for "Single Axis" type sensors otherwise it will raise an error. + @type axisSingle: int + @ivar numAxis: (read-only) The number of axes for the joystick at this index. @type numAxis: integer @ivar numButtons: (read-only) The number of buttons for the joystick at this index. From 6b1ccddc0d921d096d42f5fa866ad444606da1c5 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 7 Apr 2009 07:46:58 +0000 Subject: [PATCH 100/201] bugfix #18196 Halos for objects (not particles) can get texture color, but they skipped the alpha mapt-to channel when that was set. Actually bug from ehh 1995! --- source/blender/render/intern/source/renderdatabase.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index d44b49cc706..621831fb341 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -1032,9 +1032,11 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma, float *vec, f har->g= (yn*tg+ zn*ma->g); har->b= (yn*tb+ zn*ma->b); } - if(mtex->texco & 16) { + if(mtex->texco & TEXCO_UV) { har->alfa= tin; } + if(mtex->mapto & MAP_ALPHA) + har->alfa= tin; } } From c054ea02039e9209095108c1b1f42250a7e85d8f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 10:16:26 +0000 Subject: [PATCH 101/201] [#18407] Trouble w/ Bevel_Center.py add python encoding info --- release/scripts/bevel_center.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/scripts/bevel_center.py b/release/scripts/bevel_center.py index 063c6380483..982d24aec74 100644 --- a/release/scripts/bevel_center.py +++ b/release/scripts/bevel_center.py @@ -34,6 +34,8 @@ Notes:
Blender. """ +# -*- coding: UTF-8 -*- + ###################################################################### # Bevel Center v2.0 for Blender From 5d64dd019e7e8150db40505097d1b4048f4e0153 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 11:06:35 +0000 Subject: [PATCH 102/201] BGE Python API Use each types dictionary to store attributes PyAttributeDef's so it uses pythons hash lookup (which it was already doing for methods) rather then doing a string lookup on the array each time. This also means attributes can be found in the type without having to do a dir() on the instance. --- .../Converter/BL_ActionActuator.cpp | 9 +- .../Converter/BL_ShapeActionActuator.cpp | 8 +- .../gameengine/Expressions/PyObjectPlus.cpp | 1069 +++++++++-------- source/gameengine/Expressions/PyObjectPlus.h | 48 +- .../GameLogic/SCA_ActuatorSensor.cpp | 16 +- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 8 +- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 8 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 8 +- .../GameLogic/SCA_JoystickSensor.cpp | 8 +- .../GameLogic/SCA_KeyboardSensor.cpp | 8 +- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 8 +- .../GameLogic/SCA_PropertyActuator.cpp | 8 +- .../GameLogic/SCA_PropertySensor.cpp | 10 +- .../GameLogic/SCA_PythonController.cpp | 10 +- .../GameLogic/SCA_RandomActuator.cpp | 8 +- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 8 +- .../KXNetwork/KX_NetworkMessageActuator.cpp | 8 +- .../KXNetwork/KX_NetworkMessageSensor.cpp | 6 - source/gameengine/Ketsji/KX_CDActuator.cpp | 8 +- source/gameengine/Ketsji/KX_Camera.cpp | 10 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 9 +- source/gameengine/Ketsji/KX_GameActuator.cpp | 8 +- source/gameengine/Ketsji/KX_GameObject.cpp | 10 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 10 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 4 - source/gameengine/Ketsji/KX_NearSensor.cpp | 10 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 10 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 12 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 139 ++- source/gameengine/Ketsji/KX_RadarSensor.cpp | 10 +- source/gameengine/Ketsji/KX_RaySensor.cpp | 10 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 8 +- .../Ketsji/KX_SCA_DynamicActuator.cpp | 8 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 8 +- source/gameengine/Ketsji/KX_Scene.cpp | 6 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 8 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 11 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 8 +- .../Ketsji/KX_VisibilityActuator.cpp | 8 +- 39 files changed, 699 insertions(+), 872 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 9102c453a16..8d7624db5d4 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1037,21 +1037,14 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { }; PyObject* BL_ActionActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int BL_ActionActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } - PyObject* BL_ActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { BL_ActionActuator* self= static_cast(self_v); diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index d52cc8cfccc..32fd566983a 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -486,17 +486,11 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = { PyObject* BL_ShapeActionActuator::py_getattro(PyObject* attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int BL_ShapeActionActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* setStart */ diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 03afa62a6da..3148dfc2b89 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -98,6 +98,10 @@ PyMethodDef PyObjectPlus::Methods[] = { {NULL, NULL} /* Sentinel */ }; +PyAttributeDef PyObjectPlus::Attributes[] = { + {NULL} //Sentinel +}; + /*------------------------------ * PyObjectPlus Parents -- Every class, even the abstract one should have parents ------------------------------*/ @@ -136,128 +140,555 @@ int PyObjectPlus::py_setattro(PyObject *attr, PyObject* value) return 1; } +PyObject *PyObjectPlus::py_get_attrdef(void *self, const PyAttributeDef *attrdef) +{ + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) + { + // fake attribute, ignore + return NULL; + } + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) + { + // the attribute has no field correspondance, handover processing to function. + if (attrdef->m_getFunction == NULL) + return NULL; + return (*attrdef->m_getFunction)(self, attrdef); + } + char *ptr = reinterpret_cast(self)+attrdef->m_offset; + if (attrdef->m_length > 1) + { + PyObject* resultlist = PyList_New(attrdef->m_length); + for (unsigned int i=0; im_length; i++) + { + switch (attrdef->m_type) { + case KX_PYATTRIBUTE_TYPE_BOOL: + { + bool *val = reinterpret_cast(ptr); + ptr += sizeof(bool); + PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); + break; + } + case KX_PYATTRIBUTE_TYPE_SHORT: + { + short int *val = reinterpret_cast(ptr); + ptr += sizeof(short int); + PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); + break; + } + case KX_PYATTRIBUTE_TYPE_ENUM: + // enum are like int, just make sure the field size is the same + if (sizeof(int) != attrdef->m_size) + { + Py_DECREF(resultlist); + return NULL; + } + // walkthrough + case KX_PYATTRIBUTE_TYPE_INT: + { + int *val = reinterpret_cast(ptr); + ptr += sizeof(int); + PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); + break; + } + case KX_PYATTRIBUTE_TYPE_FLOAT: + { + float *val = reinterpret_cast(ptr); + ptr += sizeof(float); + PyList_SetItem(resultlist,i,PyFloat_FromDouble(*val)); + break; + } + default: + // no support for array of complex data + Py_DECREF(resultlist); + return NULL; + } + } + return resultlist; + } + else + { + switch (attrdef->m_type) { + case KX_PYATTRIBUTE_TYPE_BOOL: + { + bool *val = reinterpret_cast(ptr); + return PyInt_FromLong(*val); + } + case KX_PYATTRIBUTE_TYPE_SHORT: + { + short int *val = reinterpret_cast(ptr); + return PyInt_FromLong(*val); + } + case KX_PYATTRIBUTE_TYPE_ENUM: + // enum are like int, just make sure the field size is the same + if (sizeof(int) != attrdef->m_size) + { + return NULL; + } + // walkthrough + case KX_PYATTRIBUTE_TYPE_INT: + { + int *val = reinterpret_cast(ptr); + return PyInt_FromLong(*val); + } + case KX_PYATTRIBUTE_TYPE_FLOAT: + { + float *val = reinterpret_cast(ptr); + return PyFloat_FromDouble(*val); + } + case KX_PYATTRIBUTE_TYPE_STRING: + { + STR_String *val = reinterpret_cast(ptr); + return PyString_FromString(*val); + } + default: + return NULL; + } + } +} + +#if 0 PyObject *PyObjectPlus::py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr) { char *attr_str= PyString_AsString(attr); - const PyAttributeDef *attrdef; + for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) - { if (!strcmp(attr_str, attrdef->m_name)) - { - if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) - { - // fake attribute, ignore - return NULL; - } - if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) - { - // the attribute has no field correspondance, handover processing to function. - if (attrdef->m_getFunction == NULL) - return NULL; - return (*attrdef->m_getFunction)(self, attrdef); - } - char *ptr = reinterpret_cast(self)+attrdef->m_offset; - if (attrdef->m_length > 1) - { - PyObject* resultlist = PyList_New(attrdef->m_length); - for (unsigned int i=0; im_length; i++) - { - switch (attrdef->m_type) { - case KX_PYATTRIBUTE_TYPE_BOOL: - { - bool *val = reinterpret_cast(ptr); - ptr += sizeof(bool); - PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); - break; - } - case KX_PYATTRIBUTE_TYPE_SHORT: - { - short int *val = reinterpret_cast(ptr); - ptr += sizeof(short int); - PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); - break; - } - case KX_PYATTRIBUTE_TYPE_ENUM: - // enum are like int, just make sure the field size is the same - if (sizeof(int) != attrdef->m_size) - { - Py_DECREF(resultlist); - return NULL; - } - // walkthrough - case KX_PYATTRIBUTE_TYPE_INT: - { - int *val = reinterpret_cast(ptr); - ptr += sizeof(int); - PyList_SetItem(resultlist,i,PyInt_FromLong(*val)); - break; - } - case KX_PYATTRIBUTE_TYPE_FLOAT: - { - float *val = reinterpret_cast(ptr); - ptr += sizeof(float); - PyList_SetItem(resultlist,i,PyFloat_FromDouble(*val)); - break; - } - default: - // no support for array of complex data - Py_DECREF(resultlist); - return NULL; - } - } - return resultlist; - } - else - { - switch (attrdef->m_type) { - case KX_PYATTRIBUTE_TYPE_BOOL: - { - bool *val = reinterpret_cast(ptr); - return PyInt_FromLong(*val); - } - case KX_PYATTRIBUTE_TYPE_SHORT: - { - short int *val = reinterpret_cast(ptr); - return PyInt_FromLong(*val); - } - case KX_PYATTRIBUTE_TYPE_ENUM: - // enum are like int, just make sure the field size is the same - if (sizeof(int) != attrdef->m_size) - { - return NULL; - } - // walkthrough - case KX_PYATTRIBUTE_TYPE_INT: - { - int *val = reinterpret_cast(ptr); - return PyInt_FromLong(*val); - } - case KX_PYATTRIBUTE_TYPE_FLOAT: - { - float *val = reinterpret_cast(ptr); - return PyFloat_FromDouble(*val); - } - case KX_PYATTRIBUTE_TYPE_STRING: - { - STR_String *val = reinterpret_cast(ptr); - return PyString_FromString(*val); - } - default: - return NULL; - } - } - } - } + return py_get_attrdef(self, attrdef); + return NULL; } +#endif -int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value) +int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyObject *value) { - const PyAttributeDef *attrdef; void *undoBuffer = NULL; void *sourceBuffer = NULL; size_t bufferSize = 0; + + char *ptr = reinterpret_cast(self)+attrdef->m_offset; + if (attrdef->m_length > 1) + { + if (!PySequence_Check(value)) + { + PyErr_SetString(PyExc_TypeError, "expected a sequence"); + return 1; + } + if (PySequence_Size(value) != attrdef->m_length) + { + PyErr_SetString(PyExc_TypeError, "incorrect number of elements in sequence"); + return 1; + } + switch (attrdef->m_type) + { + case KX_PYATTRIBUTE_TYPE_FUNCTION: + if (attrdef->m_setFunction == NULL) + { + PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + return 1; + } + return (*attrdef->m_setFunction)(self, attrdef, value); + case KX_PYATTRIBUTE_TYPE_BOOL: + bufferSize = sizeof(bool); + break; + case KX_PYATTRIBUTE_TYPE_SHORT: + bufferSize = sizeof(short int); + break; + case KX_PYATTRIBUTE_TYPE_ENUM: + case KX_PYATTRIBUTE_TYPE_INT: + bufferSize = sizeof(int); + break; + case KX_PYATTRIBUTE_TYPE_FLOAT: + bufferSize = sizeof(float); + break; + default: + // should not happen + PyErr_SetString(PyExc_AttributeError, "Unsupported attribute type, report to blender.org"); + return 1; + } + // let's implement a smart undo method + bufferSize *= attrdef->m_length; + undoBuffer = malloc(bufferSize); + sourceBuffer = ptr; + if (undoBuffer) + { + memcpy(undoBuffer, sourceBuffer, bufferSize); + } + for (int i=0; im_length; i++) + { + PyObject *item = PySequence_GetItem(value, i); /* new ref */ + // we can decrement the reference immediately, the reference count + // is at least 1 because the item is part of an array + Py_DECREF(item); + switch (attrdef->m_type) + { + case KX_PYATTRIBUTE_TYPE_BOOL: + { + bool *var = reinterpret_cast(ptr); + ptr += sizeof(bool); + if (PyInt_Check(item)) + { + *var = (PyInt_AsLong(item) != 0); + } + else if (PyBool_Check(item)) + { + *var = (item == Py_True); + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); + goto UNDO_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_SHORT: + { + short int *var = reinterpret_cast(ptr); + ptr += sizeof(short int); + if (PyInt_Check(item)) + { + long val = PyInt_AsLong(item); + if (attrdef->m_clamp) + { + if (val < attrdef->m_imin) + val = attrdef->m_imin; + else if (val > attrdef->m_imax) + val = attrdef->m_imax; + } + else if (val < attrdef->m_imin || val > attrdef->m_imax) + { + PyErr_SetString(PyExc_ValueError, "item value out of range"); + goto UNDO_AND_ERROR; + } + *var = (short int)val; + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + goto UNDO_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_ENUM: + // enum are equivalent to int, just make sure that the field size matches: + if (sizeof(int) != attrdef->m_size) + { + PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); + goto UNDO_AND_ERROR; + } + // walkthrough + case KX_PYATTRIBUTE_TYPE_INT: + { + int *var = reinterpret_cast(ptr); + ptr += sizeof(int); + if (PyInt_Check(item)) + { + long val = PyInt_AsLong(item); + if (attrdef->m_clamp) + { + if (val < attrdef->m_imin) + val = attrdef->m_imin; + else if (val > attrdef->m_imax) + val = attrdef->m_imax; + } + else if (val < attrdef->m_imin || val > attrdef->m_imax) + { + PyErr_SetString(PyExc_ValueError, "item value out of range"); + goto UNDO_AND_ERROR; + } + *var = (int)val; + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + goto UNDO_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_FLOAT: + { + float *var = reinterpret_cast(ptr); + ptr += sizeof(float); + double val = PyFloat_AsDouble(item); + if (val == -1.0 && PyErr_Occurred()) + { + PyErr_SetString(PyExc_TypeError, "expected a float"); + goto UNDO_AND_ERROR; + } + else if (attrdef->m_clamp) + { + if (val < attrdef->m_fmin) + val = attrdef->m_fmin; + else if (val > attrdef->m_fmax) + val = attrdef->m_fmax; + } + else if (val < attrdef->m_fmin || val > attrdef->m_fmax) + { + PyErr_SetString(PyExc_ValueError, "item value out of range"); + goto UNDO_AND_ERROR; + } + *var = (float)val; + break; + } + default: + // should not happen + PyErr_SetString(PyExc_AttributeError, "attribute type check error, report to blender.org"); + goto UNDO_AND_ERROR; + } + } + // no error, call check function if any + if (attrdef->m_checkFunction != NULL) + { + if ((*attrdef->m_checkFunction)(self, attrdef) != 0) + { + // post check returned an error, restore values + UNDO_AND_ERROR: + if (undoBuffer) + { + memcpy(sourceBuffer, undoBuffer, bufferSize); + free(undoBuffer); + } + return 1; + } + } + if (undoBuffer) + free(undoBuffer); + return 0; + } + else // simple attribute value + { + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) + { + if (attrdef->m_setFunction == NULL) + { + PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + return 1; + } + return (*attrdef->m_setFunction)(self, attrdef, value); + } + if (attrdef->m_checkFunction != NULL) + { + // post check function is provided, prepare undo buffer + sourceBuffer = ptr; + switch (attrdef->m_type) + { + case KX_PYATTRIBUTE_TYPE_BOOL: + bufferSize = sizeof(bool); + break; + case KX_PYATTRIBUTE_TYPE_SHORT: + bufferSize = sizeof(short); + break; + case KX_PYATTRIBUTE_TYPE_ENUM: + case KX_PYATTRIBUTE_TYPE_INT: + bufferSize = sizeof(int); + break; + case KX_PYATTRIBUTE_TYPE_FLOAT: + bufferSize = sizeof(float); + break; + case KX_PYATTRIBUTE_TYPE_STRING: + sourceBuffer = reinterpret_cast(ptr)->Ptr(); + if (sourceBuffer) + bufferSize = strlen(reinterpret_cast(sourceBuffer))+1; + break; + default: + PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); + return 1; + } + if (bufferSize) + { + undoBuffer = malloc(bufferSize); + if (undoBuffer) + { + memcpy(undoBuffer, sourceBuffer, bufferSize); + } + } + } + + switch (attrdef->m_type) + { + case KX_PYATTRIBUTE_TYPE_BOOL: + { + bool *var = reinterpret_cast(ptr); + if (PyInt_Check(value)) + { + *var = (PyInt_AsLong(value) != 0); + } + else if (PyBool_Check(value)) + { + *var = (value == Py_True); + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); + goto FREE_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_SHORT: + { + short int *var = reinterpret_cast(ptr); + if (PyInt_Check(value)) + { + long val = PyInt_AsLong(value); + if (attrdef->m_clamp) + { + if (val < attrdef->m_imin) + val = attrdef->m_imin; + else if (val > attrdef->m_imax) + val = attrdef->m_imax; + } + else if (val < attrdef->m_imin || val > attrdef->m_imax) + { + PyErr_SetString(PyExc_ValueError, "value out of range"); + goto FREE_AND_ERROR; + } + *var = (short int)val; + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + goto FREE_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_ENUM: + // enum are equivalent to int, just make sure that the field size matches: + if (sizeof(int) != attrdef->m_size) + { + PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); + goto FREE_AND_ERROR; + } + // walkthrough + case KX_PYATTRIBUTE_TYPE_INT: + { + int *var = reinterpret_cast(ptr); + if (PyInt_Check(value)) + { + long val = PyInt_AsLong(value); + if (attrdef->m_clamp) + { + if (val < attrdef->m_imin) + val = attrdef->m_imin; + else if (val > attrdef->m_imax) + val = attrdef->m_imax; + } + else if (val < attrdef->m_imin || val > attrdef->m_imax) + { + PyErr_SetString(PyExc_ValueError, "value out of range"); + goto FREE_AND_ERROR; + } + *var = (int)val; + } + else + { + PyErr_SetString(PyExc_TypeError, "expected an integer"); + goto FREE_AND_ERROR; + } + break; + } + case KX_PYATTRIBUTE_TYPE_FLOAT: + { + float *var = reinterpret_cast(ptr); + double val = PyFloat_AsDouble(value); + if (val == -1.0 && PyErr_Occurred()) + { + PyErr_SetString(PyExc_TypeError, "expected a float"); + goto FREE_AND_ERROR; + } + else if (attrdef->m_clamp) + { + if (val < attrdef->m_fmin) + val = attrdef->m_fmin; + else if (val > attrdef->m_fmax) + val = attrdef->m_fmax; + } + else if (val < attrdef->m_fmin || val > attrdef->m_fmax) + { + PyErr_SetString(PyExc_ValueError, "value out of range"); + goto FREE_AND_ERROR; + } + *var = (float)val; + break; + } + case KX_PYATTRIBUTE_TYPE_STRING: + { + STR_String *var = reinterpret_cast(ptr); + if (PyString_Check(value)) + { + char *val = PyString_AsString(value); + if (attrdef->m_clamp) + { + if (strlen(val) < attrdef->m_imin) + { + // can't increase the length of the string + PyErr_SetString(PyExc_ValueError, "string length too short"); + goto FREE_AND_ERROR; + } + else if (strlen(val) > attrdef->m_imax) + { + // trim the string + char c = val[attrdef->m_imax]; + val[attrdef->m_imax] = 0; + *var = val; + val[attrdef->m_imax] = c; + break; + } + } else if (strlen(val) < attrdef->m_imin || strlen(val) > attrdef->m_imax) + { + PyErr_SetString(PyExc_ValueError, "string length out of range"); + goto FREE_AND_ERROR; + } + *var = val; + } + else + { + PyErr_SetString(PyExc_TypeError, "expected a string"); + goto FREE_AND_ERROR; + } + break; + } + default: + // should not happen + PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); + goto FREE_AND_ERROR; + } + } + // check if post processing is needed + if (attrdef->m_checkFunction != NULL) + { + if ((*attrdef->m_checkFunction)(self, attrdef) != 0) + { + // restore value + RESTORE_AND_ERROR: + if (undoBuffer) + { + if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_STRING) + { + // special case for STR_String: restore the string + STR_String *var = reinterpret_cast(ptr); + *var = reinterpret_cast(undoBuffer); + } + else + { + // other field type have direct values + memcpy(ptr, undoBuffer, bufferSize); + } + } + FREE_AND_ERROR: + if (undoBuffer) + free(undoBuffer); + return 1; + } + } + if (undoBuffer) + free(undoBuffer); + return 0; +} + +#if 0 +int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value) +{ + const PyAttributeDef *attrdef; char *attr_str= PyString_AsString(attr); for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) @@ -270,427 +701,13 @@ int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, PyErr_SetString(PyExc_AttributeError, "property is read-only"); return 1; } - char *ptr = reinterpret_cast(self)+attrdef->m_offset; - if (attrdef->m_length > 1) - { - if (!PySequence_Check(value)) - { - PyErr_SetString(PyExc_TypeError, "expected a sequence"); - return 1; - } - if (PySequence_Size(value) != attrdef->m_length) - { - PyErr_SetString(PyExc_TypeError, "incorrect number of elements in sequence"); - return 1; - } - switch (attrdef->m_type) - { - case KX_PYATTRIBUTE_TYPE_FUNCTION: - if (attrdef->m_setFunction == NULL) - { - PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); - return 1; - } - return (*attrdef->m_setFunction)(self, attrdef, value); - case KX_PYATTRIBUTE_TYPE_BOOL: - bufferSize = sizeof(bool); - break; - case KX_PYATTRIBUTE_TYPE_SHORT: - bufferSize = sizeof(short int); - break; - case KX_PYATTRIBUTE_TYPE_ENUM: - case KX_PYATTRIBUTE_TYPE_INT: - bufferSize = sizeof(int); - break; - case KX_PYATTRIBUTE_TYPE_FLOAT: - bufferSize = sizeof(float); - break; - default: - // should not happen - PyErr_SetString(PyExc_AttributeError, "Unsupported attribute type, report to blender.org"); - return 1; - } - // let's implement a smart undo method - bufferSize *= attrdef->m_length; - undoBuffer = malloc(bufferSize); - sourceBuffer = ptr; - if (undoBuffer) - { - memcpy(undoBuffer, sourceBuffer, bufferSize); - } - for (int i=0; im_length; i++) - { - PyObject *item = PySequence_GetItem(value, i); /* new ref */ - // we can decrement the reference immediately, the reference count - // is at least 1 because the item is part of an array - Py_DECREF(item); - switch (attrdef->m_type) - { - case KX_PYATTRIBUTE_TYPE_BOOL: - { - bool *var = reinterpret_cast(ptr); - ptr += sizeof(bool); - if (PyInt_Check(item)) - { - *var = (PyInt_AsLong(item) != 0); - } - else if (PyBool_Check(item)) - { - *var = (item == Py_True); - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); - goto UNDO_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_SHORT: - { - short int *var = reinterpret_cast(ptr); - ptr += sizeof(short int); - if (PyInt_Check(item)) - { - long val = PyInt_AsLong(item); - if (attrdef->m_clamp) - { - if (val < attrdef->m_imin) - val = attrdef->m_imin; - else if (val > attrdef->m_imax) - val = attrdef->m_imax; - } - else if (val < attrdef->m_imin || val > attrdef->m_imax) - { - PyErr_SetString(PyExc_ValueError, "item value out of range"); - goto UNDO_AND_ERROR; - } - *var = (short int)val; - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - goto UNDO_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_ENUM: - // enum are equivalent to int, just make sure that the field size matches: - if (sizeof(int) != attrdef->m_size) - { - PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); - goto UNDO_AND_ERROR; - } - // walkthrough - case KX_PYATTRIBUTE_TYPE_INT: - { - int *var = reinterpret_cast(ptr); - ptr += sizeof(int); - if (PyInt_Check(item)) - { - long val = PyInt_AsLong(item); - if (attrdef->m_clamp) - { - if (val < attrdef->m_imin) - val = attrdef->m_imin; - else if (val > attrdef->m_imax) - val = attrdef->m_imax; - } - else if (val < attrdef->m_imin || val > attrdef->m_imax) - { - PyErr_SetString(PyExc_ValueError, "item value out of range"); - goto UNDO_AND_ERROR; - } - *var = (int)val; - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - goto UNDO_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_FLOAT: - { - float *var = reinterpret_cast(ptr); - ptr += sizeof(float); - double val = PyFloat_AsDouble(item); - if (val == -1.0 && PyErr_Occurred()) - { - PyErr_SetString(PyExc_TypeError, "expected a float"); - goto UNDO_AND_ERROR; - } - else if (attrdef->m_clamp) - { - if (val < attrdef->m_fmin) - val = attrdef->m_fmin; - else if (val > attrdef->m_fmax) - val = attrdef->m_fmax; - } - else if (val < attrdef->m_fmin || val > attrdef->m_fmax) - { - PyErr_SetString(PyExc_ValueError, "item value out of range"); - goto UNDO_AND_ERROR; - } - *var = (float)val; - break; - } - default: - // should not happen - PyErr_SetString(PyExc_AttributeError, "attribute type check error, report to blender.org"); - goto UNDO_AND_ERROR; - } - } - // no error, call check function if any - if (attrdef->m_checkFunction != NULL) - { - if ((*attrdef->m_checkFunction)(self, attrdef) != 0) - { - // post check returned an error, restore values - UNDO_AND_ERROR: - if (undoBuffer) - { - memcpy(sourceBuffer, undoBuffer, bufferSize); - free(undoBuffer); - } - return 1; - } - } - if (undoBuffer) - free(undoBuffer); - return 0; - } - else // simple attribute value - { - if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_FUNCTION) - { - if (attrdef->m_setFunction == NULL) - { - PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); - return 1; - } - return (*attrdef->m_setFunction)(self, attrdef, value); - } - if (attrdef->m_checkFunction != NULL) - { - // post check function is provided, prepare undo buffer - sourceBuffer = ptr; - switch (attrdef->m_type) - { - case KX_PYATTRIBUTE_TYPE_BOOL: - bufferSize = sizeof(bool); - break; - case KX_PYATTRIBUTE_TYPE_SHORT: - bufferSize = sizeof(short); - break; - case KX_PYATTRIBUTE_TYPE_ENUM: - case KX_PYATTRIBUTE_TYPE_INT: - bufferSize = sizeof(int); - break; - case KX_PYATTRIBUTE_TYPE_FLOAT: - bufferSize = sizeof(float); - break; - case KX_PYATTRIBUTE_TYPE_STRING: - sourceBuffer = reinterpret_cast(ptr)->Ptr(); - if (sourceBuffer) - bufferSize = strlen(reinterpret_cast(sourceBuffer))+1; - break; - default: - PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); - return 1; - } - if (bufferSize) - { - undoBuffer = malloc(bufferSize); - if (undoBuffer) - { - memcpy(undoBuffer, sourceBuffer, bufferSize); - } - } - } - - switch (attrdef->m_type) - { - case KX_PYATTRIBUTE_TYPE_BOOL: - { - bool *var = reinterpret_cast(ptr); - if (PyInt_Check(value)) - { - *var = (PyInt_AsLong(value) != 0); - } - else if (PyBool_Check(value)) - { - *var = (value == Py_True); - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); - goto FREE_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_SHORT: - { - short int *var = reinterpret_cast(ptr); - if (PyInt_Check(value)) - { - long val = PyInt_AsLong(value); - if (attrdef->m_clamp) - { - if (val < attrdef->m_imin) - val = attrdef->m_imin; - else if (val > attrdef->m_imax) - val = attrdef->m_imax; - } - else if (val < attrdef->m_imin || val > attrdef->m_imax) - { - PyErr_SetString(PyExc_ValueError, "value out of range"); - goto FREE_AND_ERROR; - } - *var = (short int)val; - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - goto FREE_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_ENUM: - // enum are equivalent to int, just make sure that the field size matches: - if (sizeof(int) != attrdef->m_size) - { - PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); - goto FREE_AND_ERROR; - } - // walkthrough - case KX_PYATTRIBUTE_TYPE_INT: - { - int *var = reinterpret_cast(ptr); - if (PyInt_Check(value)) - { - long val = PyInt_AsLong(value); - if (attrdef->m_clamp) - { - if (val < attrdef->m_imin) - val = attrdef->m_imin; - else if (val > attrdef->m_imax) - val = attrdef->m_imax; - } - else if (val < attrdef->m_imin || val > attrdef->m_imax) - { - PyErr_SetString(PyExc_ValueError, "value out of range"); - goto FREE_AND_ERROR; - } - *var = (int)val; - } - else - { - PyErr_SetString(PyExc_TypeError, "expected an integer"); - goto FREE_AND_ERROR; - } - break; - } - case KX_PYATTRIBUTE_TYPE_FLOAT: - { - float *var = reinterpret_cast(ptr); - double val = PyFloat_AsDouble(value); - if (val == -1.0 && PyErr_Occurred()) - { - PyErr_SetString(PyExc_TypeError, "expected a float"); - goto FREE_AND_ERROR; - } - else if (attrdef->m_clamp) - { - if (val < attrdef->m_fmin) - val = attrdef->m_fmin; - else if (val > attrdef->m_fmax) - val = attrdef->m_fmax; - } - else if (val < attrdef->m_fmin || val > attrdef->m_fmax) - { - PyErr_SetString(PyExc_ValueError, "value out of range"); - goto FREE_AND_ERROR; - } - *var = (float)val; - break; - } - case KX_PYATTRIBUTE_TYPE_STRING: - { - STR_String *var = reinterpret_cast(ptr); - if (PyString_Check(value)) - { - char *val = PyString_AsString(value); - if (attrdef->m_clamp) - { - if (strlen(val) < attrdef->m_imin) - { - // can't increase the length of the string - PyErr_SetString(PyExc_ValueError, "string length too short"); - goto FREE_AND_ERROR; - } - else if (strlen(val) > attrdef->m_imax) - { - // trim the string - char c = val[attrdef->m_imax]; - val[attrdef->m_imax] = 0; - *var = val; - val[attrdef->m_imax] = c; - break; - } - } else if (strlen(val) < attrdef->m_imin || strlen(val) > attrdef->m_imax) - { - PyErr_SetString(PyExc_ValueError, "string length out of range"); - goto FREE_AND_ERROR; - } - *var = val; - } - else - { - PyErr_SetString(PyExc_TypeError, "expected a string"); - goto FREE_AND_ERROR; - } - break; - } - default: - // should not happen - PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); - goto FREE_AND_ERROR; - } - } - // check if post processing is needed - if (attrdef->m_checkFunction != NULL) - { - if ((*attrdef->m_checkFunction)(self, attrdef) != 0) - { - // restore value - RESTORE_AND_ERROR: - if (undoBuffer) - { - if (attrdef->m_type == KX_PYATTRIBUTE_TYPE_STRING) - { - // special case for STR_String: restore the string - STR_String *var = reinterpret_cast(ptr); - *var = reinterpret_cast(undoBuffer); - } - else - { - // other field type have direct values - memcpy(ptr, undoBuffer, bufferSize); - } - } - FREE_AND_ERROR: - if (undoBuffer) - free(undoBuffer); - return 1; - } - } - if (undoBuffer) - free(undoBuffer); - return 0; + + return py_set_attrdef(self, attrdef, value); } } return -1; } +#endif /*------------------------------ * PyObjectPlus repr -- representations diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index f178d03e131..41bf72964ce 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -99,20 +99,42 @@ static inline void Py_Fatal(const char *M) { // to be properly passed up the hierarchy. #define py_getattro_up(Parent) \ - PyObject *rvalue; \ + \ PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ \ - if (descr == NULL) { \ - PyErr_Clear(); \ - rvalue = Parent::py_getattro(attr); \ + if(descr) { \ + if (PyCObject_Check(descr)) { \ + return py_get_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr)); \ + } else { \ + return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + } \ } else { \ - rvalue= PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + PyErr_Clear(); \ + PyObject *rvalue= Parent::py_getattro(attr); \ + \ + if (strcmp(PyString_AsString(attr), "__dict__")==0) { \ + return py_getattr_dict(rvalue, Methods, Attributes); \ + } \ + \ + return rvalue; \ } \ - \ - if (strcmp(PyString_AsString(attr), "__dict__")==0) {\ - rvalue = py_getattr_dict(rvalue, Methods, Attributes); \ - } \ - return rvalue; \ + return NULL; + + +#define py_setattro_up(Parent) \ + PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ + \ + if(descr) { \ + if (PyCObject_Check(descr)) { \ + return py_set_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr), value); \ + } else { \ + PyErr_Format(PyExc_AttributeError, "\"%s\" cannot be set", PyString_AsString(attr)); \ + return -1; \ + } \ + } else { \ + PyErr_Clear(); \ + return Parent::py_setattro(attr, value); \ + } /** @@ -376,8 +398,14 @@ public: { return ((PyObjectPlus*) PyObj)->py_getattro(attr); } + + static PyObject* py_get_attrdef(void *self, const PyAttributeDef *attrdef); + static int py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyObject *value); + +#if 0 static PyObject *py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr); static int py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value); +#endif virtual int py_delattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index ed7aa66d04b..945d473f937 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -162,10 +162,11 @@ PyAttributeDef SCA_ActuatorSensor::Attributes[] = { }; PyObject* SCA_ActuatorSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_ISensor); /* implicit return! */ + py_getattro_up(SCA_ISensor); +} + +int SCA_ActuatorSensor::py_setattro(PyObject *attr, PyObject *value) { + py_setattro_up(SCA_ISensor); } int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) @@ -180,13 +181,6 @@ int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) return 1; } -int SCA_ActuatorSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); -} - /* 3. getActuator */ const char SCA_ActuatorSensor::GetActuator_doc[] = "getActuator()\n" diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index 5082caacfd5..25161d21e72 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -179,17 +179,11 @@ PyAttributeDef SCA_DelaySensor::Attributes[] = { }; PyObject* SCA_DelaySensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int SCA_DelaySensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 45ebd874ea5..4b1f8b52bf5 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -280,18 +280,12 @@ int SCA_ILogicBrick::CheckProperty(void *self, const PyAttributeDef *attrdef) PyObject* SCA_ILogicBrick::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(CValue); } int SCA_ILogicBrick::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return CValue::py_setattro(attr, value); + py_setattro_up(CValue); } diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index a4f493d82c8..80d42d8344d 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -462,18 +462,12 @@ PyAttributeDef SCA_ISensor::Attributes[] = { PyObject* SCA_ISensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ILogicBrick); } int SCA_ISensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ILogicBrick::py_setattro(attr, value); + py_setattro_up(SCA_ILogicBrick); } PyObject* SCA_ISensor::pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 1290b7c96ed..3df9b454b1d 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -336,18 +336,12 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = { PyObject* SCA_JoystickSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int SCA_JoystickSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index fc1b5be3540..3749bf2eda0 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -833,16 +833,10 @@ PyAttributeDef SCA_KeyboardSensor::Attributes[] = { PyObject* SCA_KeyboardSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int SCA_KeyboardSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 3cd32391ce2..86e64491f6a 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -343,18 +343,12 @@ PyAttributeDef SCA_MouseSensor::Attributes[] = { PyObject* SCA_MouseSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int SCA_MouseSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index e1f303430ec..fa8763a3932 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -261,17 +261,11 @@ PyAttributeDef SCA_PropertyActuator::Attributes[] = { }; PyObject* SCA_PropertyActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int SCA_PropertyActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* 1. setProperty */ diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index 659823f6fba..164e94b6597 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -353,17 +353,11 @@ PyAttributeDef SCA_PropertySensor::Attributes[] = { PyObject* SCA_PropertySensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_ISensor); /* implicit return! */ + py_getattro_up(SCA_ISensor); } int SCA_PropertySensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } /* 1. getType */ diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 4b9248a908f..3c2a1d09f82 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -376,20 +376,12 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) PyObject* SCA_PythonController::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_IController); } int SCA_PythonController::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return SCA_IController::py_setattro(attr, value); + py_setattro_up(SCA_IController); } PyObject* SCA_PythonController::PyActivate(PyObject* self, PyObject *value) diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index 7af116fad99..b1c0c7fec99 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -392,18 +392,12 @@ int SCA_RandomActuator::pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_ } PyObject* SCA_RandomActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int SCA_RandomActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* 1. setSeed */ diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index bdee64430fa..fe4d88e2797 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -167,18 +167,12 @@ PyAttributeDef SCA_RandomSensor::Attributes[] = { }; PyObject* SCA_RandomSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int SCA_RandomSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } /* 1. setSeed */ diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index a5fd8ebab6b..72edde6ef24 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -154,17 +154,11 @@ PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { }; PyObject* KX_NetworkMessageActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_NetworkMessageActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } // Deprecated -----> diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 7922c341659..65600856377 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -224,16 +224,10 @@ PyAttributeDef KX_NetworkMessageSensor::Attributes[] = { }; PyObject* KX_NetworkMessageSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int KX_NetworkMessageSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; return SCA_ISensor::py_setattro(attr, value); } diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index 57c9d30e92e..8e889fb4129 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -217,18 +217,12 @@ int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *a PyObject* KX_CDActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_CDActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index 1540db5c44f..339abb73531 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -534,20 +534,12 @@ PyParentObject KX_Camera::Parents[] = { PyObject* KX_Camera::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(KX_GameObject); } int KX_Camera::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return KX_GameObject::py_setattro(attr, value); + py_setattro_up(KX_GameObject); } KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, sphereInsideFrustum, diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 526c2dc404b..4db24a6e365 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -422,18 +422,11 @@ PyAttributeDef KX_CameraActuator::Attributes[] = { }; PyObject* KX_CameraActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_CameraActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret; - ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* get obj ---------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index a2a3d486420..c9060486d44 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -256,18 +256,12 @@ PyAttributeDef KX_GameActuator::Attributes[] = { PyObject* KX_GameActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_GameActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index a788b12b121..af905114ee4 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1511,20 +1511,12 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ PyObject* KX_GameObject::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_IObject); } int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro method { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return SCA_IObject::py_setattro(attr, value); + py_setattro_up(SCA_IObject); } PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index adb9c284828..1dc5471e77a 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -474,20 +474,12 @@ PyAttributeDef KX_IpoActuator::Attributes[] = { }; PyObject* KX_IpoActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_IActuator); } int KX_IpoActuator::py_setattro(PyObject *attr, PyObject *value) // py_setattro method { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* set --------------------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index d9b1cc6df23..7b58c8b288a 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -99,10 +99,6 @@ void KX_MeshProxy::SetMeshModified(bool v) PyObject* KX_MeshProxy::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(SCA_IObject); } diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index 2debfd793c1..cd753210184 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -332,18 +332,10 @@ PyAttributeDef KX_NearSensor::Attributes[] = { PyObject* KX_NearSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(KX_TouchSensor); } int KX_NearSensor::py_setattro(PyObject*attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return KX_TouchSensor::py_setattro(attr, value); + py_setattro_up(KX_TouchSensor); } diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 1baf581f8a0..32c279b2be1 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -208,19 +208,11 @@ int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE PyObject* KX_ParentActuator::py_getattro(PyObject *attr) { - - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_ParentActuator::py_setattro(PyObject *attr, PyObject* value) { - - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* Deprecated -----> */ diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index 3975189a9c2..e66d9d60db8 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -232,21 +232,13 @@ PyParentObject KX_PolygonMaterial::Parents[] = { }; PyObject* KX_PolygonMaterial::py_getattro(PyObject *attr) -{ - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - +{ py_getattro_up(PyObjectPlus); } int KX_PolygonMaterial::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return PyObjectPlus::py_setattro(attr, value); + py_setattro_up(PyObjectPlus); } KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setCustomMaterial, "setCustomMaterial(material)") diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 676033cb898..636814b9009 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -129,13 +129,26 @@ void initPyObjectPlusType(PyTypeObject **parents) -static void PyType_Ready_ADD(PyObject *dict, PyTypeObject * tp) +static void PyType_Ready_ADD(PyObject *dict, PyTypeObject *tp, PyAttributeDef *attributes) { + PyAttributeDef *attr; + PyObject *item; + PyType_Ready(tp); PyDict_SetItemString(dict, tp->tp_name, (PyObject *)tp); + + /* store attr defs in the tp_dict for to avoid string lookups */ + for(attr= attributes; attr->m_name; attr++) { + item= PyCObject_FromVoidPtr(attr, NULL); + PyDict_SetItemString(tp->tp_dict, attr->m_name, item); + Py_DECREF(item); + } + } +#define PyType_Ready_Attr(d, n) PyType_Ready_ADD(d, &n::Type, n::Attributes) + void initPyTypes(void) { @@ -150,68 +163,68 @@ void initPyTypes(void) PyDict_SetItemString(PySys_GetObject("modules"), "GameTypes", mod); Py_DECREF(mod); - PyType_Ready_ADD(dict, &BL_ActionActuator::Type); - PyType_Ready_ADD(dict, &BL_Shader::Type); - PyType_Ready_ADD(dict, &BL_ShapeActionActuator::Type); - PyType_Ready_ADD(dict, &CListValue::Type); - PyType_Ready_ADD(dict, &CValue::Type); - PyType_Ready_ADD(dict, &KX_BlenderMaterial::Type); - PyType_Ready_ADD(dict, &KX_CDActuator::Type); - PyType_Ready_ADD(dict, &KX_Camera::Type); - PyType_Ready_ADD(dict, &KX_CameraActuator::Type); - PyType_Ready_ADD(dict, &KX_ConstraintActuator::Type); - PyType_Ready_ADD(dict, &KX_ConstraintWrapper::Type); - PyType_Ready_ADD(dict, &KX_GameActuator::Type); - PyType_Ready_ADD(dict, &KX_GameObject::Type); - PyType_Ready_ADD(dict, &KX_IpoActuator::Type); - PyType_Ready_ADD(dict, &KX_LightObject::Type); - PyType_Ready_ADD(dict, &KX_MeshProxy::Type); - PyType_Ready_ADD(dict, &KX_MouseFocusSensor::Type); - PyType_Ready_ADD(dict, &KX_NearSensor::Type); - PyType_Ready_ADD(dict, &KX_NetworkMessageActuator::Type); - PyType_Ready_ADD(dict, &KX_NetworkMessageSensor::Type); - PyType_Ready_ADD(dict, &KX_ObjectActuator::Type); - PyType_Ready_ADD(dict, &KX_ParentActuator::Type); - PyType_Ready_ADD(dict, &KX_PhysicsObjectWrapper::Type); - PyType_Ready_ADD(dict, &KX_PolyProxy::Type); - PyType_Ready_ADD(dict, &KX_PolygonMaterial::Type); - PyType_Ready_ADD(dict, &KX_RadarSensor::Type); - PyType_Ready_ADD(dict, &KX_RaySensor::Type); - PyType_Ready_ADD(dict, &KX_SCA_AddObjectActuator::Type); - PyType_Ready_ADD(dict, &KX_SCA_DynamicActuator::Type); - PyType_Ready_ADD(dict, &KX_SCA_EndObjectActuator::Type); - PyType_Ready_ADD(dict, &KX_SCA_ReplaceMeshActuator::Type); - PyType_Ready_ADD(dict, &KX_Scene::Type); - PyType_Ready_ADD(dict, &KX_SceneActuator::Type); - PyType_Ready_ADD(dict, &KX_SoundActuator::Type); - PyType_Ready_ADD(dict, &KX_StateActuator::Type); - PyType_Ready_ADD(dict, &KX_TouchSensor::Type); - PyType_Ready_ADD(dict, &KX_TrackToActuator::Type); - PyType_Ready_ADD(dict, &KX_VehicleWrapper::Type); - PyType_Ready_ADD(dict, &KX_VertexProxy::Type); - PyType_Ready_ADD(dict, &KX_VisibilityActuator::Type); - PyType_Ready_ADD(dict, &PyObjectPlus::Type); - PyType_Ready_ADD(dict, &SCA_2DFilterActuator::Type); - PyType_Ready_ADD(dict, &SCA_ANDController::Type); - PyType_Ready_ADD(dict, &SCA_ActuatorSensor::Type); - PyType_Ready_ADD(dict, &SCA_AlwaysSensor::Type); - PyType_Ready_ADD(dict, &SCA_DelaySensor::Type); - PyType_Ready_ADD(dict, &SCA_ILogicBrick::Type); - PyType_Ready_ADD(dict, &SCA_IObject::Type); - PyType_Ready_ADD(dict, &SCA_ISensor::Type); - PyType_Ready_ADD(dict, &SCA_JoystickSensor::Type); - PyType_Ready_ADD(dict, &SCA_KeyboardSensor::Type); - PyType_Ready_ADD(dict, &SCA_MouseSensor::Type); - PyType_Ready_ADD(dict, &SCA_NANDController::Type); - PyType_Ready_ADD(dict, &SCA_NORController::Type); - PyType_Ready_ADD(dict, &SCA_ORController::Type); - PyType_Ready_ADD(dict, &SCA_PropertyActuator::Type); - PyType_Ready_ADD(dict, &SCA_PropertySensor::Type); - PyType_Ready_ADD(dict, &SCA_PythonController::Type); - PyType_Ready_ADD(dict, &SCA_RandomActuator::Type); - PyType_Ready_ADD(dict, &SCA_RandomSensor::Type); - PyType_Ready_ADD(dict, &SCA_XNORController::Type); - PyType_Ready_ADD(dict, &SCA_XORController::Type); + PyType_Ready_Attr(dict, BL_ActionActuator); + PyType_Ready_Attr(dict, BL_Shader); + PyType_Ready_Attr(dict, BL_ShapeActionActuator); + PyType_Ready_Attr(dict, CListValue); + PyType_Ready_Attr(dict, CValue); + PyType_Ready_Attr(dict, KX_BlenderMaterial); + PyType_Ready_Attr(dict, KX_CDActuator); + PyType_Ready_Attr(dict, KX_Camera); + PyType_Ready_Attr(dict, KX_CameraActuator); + PyType_Ready_Attr(dict, KX_ConstraintActuator); + PyType_Ready_Attr(dict, KX_ConstraintWrapper); + PyType_Ready_Attr(dict, KX_GameActuator); + PyType_Ready_Attr(dict, KX_GameObject); + PyType_Ready_Attr(dict, KX_IpoActuator); + PyType_Ready_Attr(dict, KX_LightObject); + PyType_Ready_Attr(dict, KX_MeshProxy); + PyType_Ready_Attr(dict, KX_MouseFocusSensor); + PyType_Ready_Attr(dict, KX_NearSensor); + PyType_Ready_Attr(dict, KX_NetworkMessageActuator); + PyType_Ready_Attr(dict, KX_NetworkMessageSensor); + PyType_Ready_Attr(dict, KX_ObjectActuator); + PyType_Ready_Attr(dict, KX_ParentActuator); + PyType_Ready_Attr(dict, KX_PhysicsObjectWrapper); + PyType_Ready_Attr(dict, KX_PolyProxy); + PyType_Ready_Attr(dict, KX_PolygonMaterial); + PyType_Ready_Attr(dict, KX_RadarSensor); + PyType_Ready_Attr(dict, KX_RaySensor); + PyType_Ready_Attr(dict, KX_SCA_AddObjectActuator); + PyType_Ready_Attr(dict, KX_SCA_DynamicActuator); + PyType_Ready_Attr(dict, KX_SCA_EndObjectActuator); + PyType_Ready_Attr(dict, KX_SCA_ReplaceMeshActuator); + PyType_Ready_Attr(dict, KX_Scene); + PyType_Ready_Attr(dict, KX_SceneActuator); + PyType_Ready_Attr(dict, KX_SoundActuator); + PyType_Ready_Attr(dict, KX_StateActuator); + PyType_Ready_Attr(dict, KX_TouchSensor); + PyType_Ready_Attr(dict, KX_TrackToActuator); + PyType_Ready_Attr(dict, KX_VehicleWrapper); + PyType_Ready_Attr(dict, KX_VertexProxy); + PyType_Ready_Attr(dict, KX_VisibilityActuator); + PyType_Ready_Attr(dict, PyObjectPlus); + PyType_Ready_Attr(dict, SCA_2DFilterActuator); + PyType_Ready_Attr(dict, SCA_ANDController); + PyType_Ready_Attr(dict, SCA_ActuatorSensor); + PyType_Ready_Attr(dict, SCA_AlwaysSensor); + PyType_Ready_Attr(dict, SCA_DelaySensor); + PyType_Ready_Attr(dict, SCA_ILogicBrick); + PyType_Ready_Attr(dict, SCA_IObject); + PyType_Ready_Attr(dict, SCA_ISensor); + PyType_Ready_Attr(dict, SCA_JoystickSensor); + PyType_Ready_Attr(dict, SCA_KeyboardSensor); + PyType_Ready_Attr(dict, SCA_MouseSensor); + PyType_Ready_Attr(dict, SCA_NANDController); + PyType_Ready_Attr(dict, SCA_NORController); + PyType_Ready_Attr(dict, SCA_ORController); + PyType_Ready_Attr(dict, SCA_PropertyActuator); + PyType_Ready_Attr(dict, SCA_PropertySensor); + PyType_Ready_Attr(dict, SCA_PythonController); + PyType_Ready_Attr(dict, SCA_RandomActuator); + PyType_Ready_Attr(dict, SCA_RandomSensor); + PyType_Ready_Attr(dict, SCA_XNORController); + PyType_Ready_Attr(dict, SCA_XORController); diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index 77cde79b54d..355ac89a926 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -300,18 +300,10 @@ PyAttributeDef KX_RadarSensor::Attributes[] = { PyObject* KX_RadarSensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - py_getattro_up(KX_NearSensor); } int KX_RadarSensor::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return KX_NearSensor::py_setattro(attr, value); + py_setattro_up(KX_NearSensor); } diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index cdcb5d74f30..42e2fdc3e14 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -446,17 +446,11 @@ PyObject* KX_RaySensor::PyGetHitNormal(PyObject* self) PyObject* KX_RaySensor::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_ISensor); } int KX_RaySensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } -// <----- Deprecated \ No newline at end of file +// <----- Deprecated diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 1dd642e0966..a59d8417f26 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -257,18 +257,12 @@ PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, con PyObject* KX_SCA_AddObjectActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_SCA_AddObjectActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* 1. setObject */ diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index ae21209fc4e..aaa87e407ba 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -94,18 +94,12 @@ PyAttributeDef KX_SCA_DynamicActuator::Attributes[] = { PyObject* KX_SCA_DynamicActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_SCA_DynamicActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 0cac07b4585..9097ca6c85e 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -96,18 +96,12 @@ PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = { PyObject* KX_SCA_ReplaceMeshActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_SCA_ReplaceMeshActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 72f2fd9827f..493df31d982 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1594,11 +1594,7 @@ PyAttributeDef KX_Scene::Attributes[] = { PyObject* KX_Scene::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; - - object = PyDict_GetItem(m_attrlist, attr); + PyObject *object = PyDict_GetItem(m_attrlist, attr); if (object) { Py_INCREF(object); diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index e1cd3d45503..1753c6570e9 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -278,18 +278,12 @@ PyAttributeDef KX_SceneActuator::Attributes[] = { PyObject* KX_SceneActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_SceneActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } PyObject* KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index c22885f3664..70fa6326c19 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -292,20 +292,13 @@ PyAttributeDef KX_TouchSensor::Attributes[] = { }; PyObject* KX_TouchSensor::py_getattro(PyObject *attr) -{ - PyObject* object= py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; +{ py_getattro_up(SCA_ISensor); } int KX_TouchSensor::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - - return SCA_ISensor::py_setattro(attr, value); + py_setattro_up(SCA_ISensor); } /* Python API */ diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 58e17785b81..f8e2938bbe6 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -506,18 +506,12 @@ int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUT PyObject* KX_TrackToActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_TrackToActuator::py_setattro(PyObject *attr, PyObject* value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } /* 1. setObject */ diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 35edd84f994..18277245d17 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -136,18 +136,12 @@ PyAttributeDef KX_VisibilityActuator::Attributes[] = { PyObject* KX_VisibilityActuator::py_getattro(PyObject *attr) { - PyObject* object = py_getattro_self(Attributes, this, attr); - if (object != NULL) - return object; py_getattro_up(SCA_IActuator); } int KX_VisibilityActuator::py_setattro(PyObject *attr, PyObject *value) { - int ret = py_setattro_self(Attributes, this, attr, value); - if (ret >= 0) - return ret; - return SCA_IActuator::py_setattro(attr, value); + py_setattro_up(SCA_IActuator); } From 1534eca60f181dc4e4299f6bdf73a66bbdf87970 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 11:45:48 +0000 Subject: [PATCH 103/201] Updated bge_api_validate_py.txt to check for undocumented attributes All types methods and attributes are now documented (except for some types have no epydoc .py files for at all) --- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 2 +- source/gameengine/PyDoc/KX_MeshProxy.py | 3 +- source/gameengine/PyDoc/KX_VertexProxy.py | 5 ++ source/gameengine/PyDoc/SCA_RandomSensor.py | 7 +++ .../gameengine/PyDoc/bge_api_validate_py.txt | 50 +++++++++++++++++-- 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index f8e2938bbe6..c90ce06b916 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -469,7 +469,7 @@ PyMethodDef KX_TrackToActuator::Methods[] = { PyAttributeDef KX_TrackToActuator::Attributes[] = { KX_PYATTRIBUTE_INT_RW("time",0,1000,true,KX_TrackToActuator,m_time), - KX_PYATTRIBUTE_BOOL_RW("user3D",KX_TrackToActuator,m_allow3D), + KX_PYATTRIBUTE_BOOL_RW("use3D",KX_TrackToActuator,m_allow3D), KX_PYATTRIBUTE_RW_FUNCTION("object", KX_TrackToActuator, pyattr_get_object, pyattr_set_object), { NULL } //Sentinel diff --git a/source/gameengine/PyDoc/KX_MeshProxy.py b/source/gameengine/PyDoc/KX_MeshProxy.py index 03bc36b6ac1..c6855d3b0a5 100644 --- a/source/gameengine/PyDoc/KX_MeshProxy.py +++ b/source/gameengine/PyDoc/KX_MeshProxy.py @@ -45,7 +45,8 @@ class KX_MeshProxy: m_i += 1 mesh = obj.getMesh(m_i) - + @ivar materials: + @type materials: list of L{KX_BlenderMaterial} or L{KX_PolygonMaterial} types """ def getNumMaterials(): diff --git a/source/gameengine/PyDoc/KX_VertexProxy.py b/source/gameengine/PyDoc/KX_VertexProxy.py index 5baaf76c3d9..7ee5087b316 100644 --- a/source/gameengine/PyDoc/KX_VertexProxy.py +++ b/source/gameengine/PyDoc/KX_VertexProxy.py @@ -34,6 +34,11 @@ class KX_VertexProxy: @ivar v: The v texture coordinate of the vertex. @type v: float + @ivar u2: The second u texture coordinate of the vertex. + @type u2: float + @ivar v2: The second v texture coordinate of the vertex. + @type v2: float + @group Colour: r, g, b, a @ivar r: The red component of the vertex colour. 0.0 <= r <= 1.0 @type r: float diff --git a/source/gameengine/PyDoc/SCA_RandomSensor.py b/source/gameengine/PyDoc/SCA_RandomSensor.py index 940b8f879ff..6dc0a3c23c0 100644 --- a/source/gameengine/PyDoc/SCA_RandomSensor.py +++ b/source/gameengine/PyDoc/SCA_RandomSensor.py @@ -5,6 +5,11 @@ from SCA_ISensor import * class SCA_RandomSensor(SCA_ISensor): """ This sensor activates randomly. + + @ivar lastDraw: The seed of the random number generator. + @type lastDraw: int + @ivar seed: The seed of the random number generator. + @type seed: int """ def setSeed(seed): @@ -25,4 +30,6 @@ class SCA_RandomSensor(SCA_ISensor): def getLastDraw(): """ Returns the last random number generated. + + @rtype: integer """ diff --git a/source/gameengine/PyDoc/bge_api_validate_py.txt b/source/gameengine/PyDoc/bge_api_validate_py.txt index e003f29831b..58dfbadba15 100644 --- a/source/gameengine/PyDoc/bge_api_validate_py.txt +++ b/source/gameengine/PyDoc/bge_api_validate_py.txt @@ -15,6 +15,7 @@ BGE_API_DOC_PATH = 'source/gameengine/PyDoc' +import GameTypes type_members = {} for type_name in dir(GameTypes): @@ -40,12 +41,49 @@ doc_dir= os.path.join(os.getcwd(), BGE_API_DOC_PATH) if doc_dir not in sys.path: sys.path.append(doc_dir) + +def check_attribute(type_mame, member): + filename = os.path.join(doc_dir, type_mame + '.py') + # print filename + + file = open(filename, 'rU') + + for l in file: + l = l.strip() + + ''' + @ivar foo: blah blah + to + foo + + ''' + + if l.startswith('@ivar'): + var = l.split()[1].split(':')[0] + + if var == member: + file.close() + return True + + file.close() + return False + + + + + + +print '\n\n\nChecking Docs' + +PRINT_OK = False + for type_name in sorted(type_members.keys()): members = type_members[type_name] try: mod = __import__(type_name) - print "type: %s" % type_name + if PRINT_OK: + print "type: %s" % type_name except: print "missing: %s - %s" % (type_name, str(members)) continue @@ -61,6 +99,12 @@ for type_name in sorted(type_members.keys()): for member in sorted(members): try: getattr(type_class, member) - print "\tfound: %s.%s" % (type_name, member) + if PRINT_OK: + print "\tfound: %s.%s" % (type_name, member) except: - print "\tmissing: %s.%s" % (type_name, member) + if check_attribute(type_name, member): + if PRINT_OK: + print "\tfound attr: %s.%s" % (type_name, member) + else: + print "\tmissing: %s.%s" % (type_name, member) + From 18511c56d3cbfd0b368be61002960cc161cee526 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 16:00:32 +0000 Subject: [PATCH 104/201] BGE Python API (small changes) - Make BGE's ListValue types convert to python lists for printing since the CValue GetText() function didnt work well- printing lists as [,,,,,] for scene objects and mesh materials for eg. - Check attributes are descriptor types before casting. - py_getattr_dict use the Type dict rather then Method and Attribute array. --- source/gameengine/Expressions/ListValue.h | 6 ++++++ source/gameengine/Expressions/PyObjectPlus.cpp | 17 +++-------------- source/gameengine/Expressions/PyObjectPlus.h | 9 ++++++--- source/gameengine/Ketsji/KX_GameObject.cpp | 2 +- source/gameengine/Ketsji/KX_Scene.cpp | 2 +- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h index f936298a8c4..1c01c2d221d 100644 --- a/source/gameengine/Expressions/ListValue.h +++ b/source/gameengine/Expressions/ListValue.h @@ -60,6 +60,12 @@ public: bool CheckEqual(CValue* first,CValue* second); virtual PyObject* py_getattro(PyObject* attr); + virtual PyObject* py_repr(void) { + PyObject *py_list= PySequence_List((PyObject *)this); + PyObject *py_string= PyObject_Repr(py_list); + Py_DECREF(py_list); + return py_string; + } KX_PYMETHOD_O(CListValue,append); KX_PYMETHOD_NOARGS(CListValue,reverse); diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 3148dfc2b89..4526f8f649b 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -115,7 +115,7 @@ PyObject *PyObjectPlus::py_getattro(PyObject* attr) PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ if (descr == NULL) { if (strcmp(PyString_AsString(attr), "__dict__")==0) { - return py_getattr_dict(NULL, Methods, NULL); /* no Attributes yet */ + return py_getattr_dict(NULL, Type.tp_dict); /* no Attributes yet */ } PyErr_SetString(PyExc_AttributeError, "attribute not found"); return NULL; @@ -767,25 +767,14 @@ PyObject *PyObjectPlus::Py_isA(PyObject *value) // Python wrapper for isA * Other then making dir() useful the value returned from __dict__() is not useful * since every value is a Py_None * */ -PyObject *py_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef) +PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict) { if(pydict==NULL) { /* incase calling __dict__ on the parent of this object raised an error */ PyErr_Clear(); pydict = PyDict_New(); } - if(meth) { - for (; meth->ml_name != NULL; meth++) { - PyDict_SetItemString(pydict, meth->ml_name, Py_None); - } - } - - if(attrdef) { - for (; attrdef->m_name != NULL; attrdef++) { - PyDict_SetItemString(pydict, attrdef->m_name, Py_None); - } - } - + PyDict_Update(pydict, tp_dict); return pydict; } diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 41bf72964ce..d549be6ef60 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -105,15 +105,18 @@ static inline void Py_Fatal(const char *M) { if(descr) { \ if (PyCObject_Check(descr)) { \ return py_get_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr)); \ - } else { \ + } else if (descr->ob_type->tp_descr_get) { \ return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + } else { \ + fprintf(stderr, "unknown attribute type"); \ + return descr; \ } \ } else { \ PyErr_Clear(); \ PyObject *rvalue= Parent::py_getattro(attr); \ \ if (strcmp(PyString_AsString(attr), "__dict__")==0) { \ - return py_getattr_dict(rvalue, Methods, Attributes); \ + return py_getattr_dict(rvalue, Type.tp_dict); \ } \ \ return rvalue; \ @@ -434,7 +437,7 @@ public: } }; -PyObject *py_getattr_dict(PyObject *pydict, PyMethodDef *meth, PyAttributeDef *attrdef); +PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict); #endif // _adr_py_lib_h_ diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index af905114ee4..7f99a565769 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1486,7 +1486,7 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ { KX_GameObject* self= static_cast(self_v); PyObject *dict_str = PyString_FromString("__dict__"); - PyObject *dict= py_getattr_dict(self->SCA_IObject::py_getattro(dict_str), KX_GameObject::Methods, KX_GameObject::Attributes); + PyObject *dict= py_getattr_dict(self->SCA_IObject::py_getattro(dict_str), Type.tp_dict); Py_DECREF(dict_str); if(dict==NULL) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 493df31d982..04d6bd75f92 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1574,7 +1574,7 @@ PyObject* KX_Scene::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF * KX_Scene* self= static_cast(self_v); /* Useually done by py_getattro_up but in this case we want to include m_attrlist dict */ PyObject *dict_str= PyString_FromString("__dict__"); - PyObject *dict= py_getattr_dict(self->PyObjectPlus::py_getattro(dict_str), KX_Scene::Methods, KX_Scene::Attributes); + PyObject *dict= py_getattr_dict(self->PyObjectPlus::py_getattro(dict_str), Type.tp_dict); Py_DECREF(dict_str); PyDict_Update(dict, self->m_attrlist); From afb26702460814e702e7d29d7331ad58284a74f2 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Tue, 7 Apr 2009 17:17:47 +0000 Subject: [PATCH 105/201] Emacs has some rules about where and how to look for settings. --- release/scripts/bevel_center.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/release/scripts/bevel_center.py b/release/scripts/bevel_center.py index 982d24aec74..637ed08127f 100644 --- a/release/scripts/bevel_center.py +++ b/release/scripts/bevel_center.py @@ -1,5 +1,5 @@ #!BPY -# coding: utf-8 +# -*- coding: utf-8 -*- """ Registration info for Blender menus Name: 'Bevel Center' Blender: 243 @@ -34,8 +34,6 @@ Notes:
Blender. """ -# -*- coding: UTF-8 -*- - ###################################################################### # Bevel Center v2.0 for Blender From bdfa61fbbe582bd37690ee79cfface325654b61c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 17:54:56 +0000 Subject: [PATCH 106/201] BGE api added place holder docs and CListValue docs. --- source/gameengine/PyDoc/BL_Shader.py | 228 ++++++++++++++++++ source/gameengine/PyDoc/CListValue.py | 39 +++ source/gameengine/PyDoc/KX_BlenderMaterial.py | 38 +++ .../gameengine/PyDoc/KX_ConstraintWrapper.py | 28 +++ source/gameengine/PyDoc/KX_GameObject.py | 4 +- .../PyDoc/KX_PhysicsObjectWrapper.py | 47 ++++ source/gameengine/PyDoc/KX_Scene.py | 10 +- source/gameengine/PyDoc/KX_TouchSensor.py | 4 +- source/gameengine/PyDoc/KX_VehicleWrapper.py | 158 ++++++++++++ .../gameengine/PyDoc/bge_api_validate_py.txt | 4 +- 10 files changed, 549 insertions(+), 11 deletions(-) create mode 100644 source/gameengine/PyDoc/BL_Shader.py create mode 100644 source/gameengine/PyDoc/CListValue.py create mode 100644 source/gameengine/PyDoc/KX_BlenderMaterial.py create mode 100644 source/gameengine/PyDoc/KX_ConstraintWrapper.py create mode 100644 source/gameengine/PyDoc/KX_PhysicsObjectWrapper.py create mode 100644 source/gameengine/PyDoc/KX_VehicleWrapper.py diff --git a/source/gameengine/PyDoc/BL_Shader.py b/source/gameengine/PyDoc/BL_Shader.py new file mode 100644 index 00000000000..182b73d437b --- /dev/null +++ b/source/gameengine/PyDoc/BL_Shader.py @@ -0,0 +1,228 @@ +class BL_Shader: # (PyObjectPlus) + """ + BL_Shader GLSL shaders. + + All placeholders have a __ prefix + """ + + def __setUniformfv(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + + def __delSource(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getFragmentProg(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getVertexProg(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __isValid(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setAttrib(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setNumberOfPasses(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSampler(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSource(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform1f(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform1i(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform2f(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform2i(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform3f(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform3i(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform4f(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniform4i(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniformDef(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniformMatrix3(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniformMatrix4(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setUniformiv(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __validate(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ diff --git a/source/gameengine/PyDoc/CListValue.py b/source/gameengine/PyDoc/CListValue.py new file mode 100644 index 00000000000..33e77395c86 --- /dev/null +++ b/source/gameengine/PyDoc/CListValue.py @@ -0,0 +1,39 @@ +class CListValue: # (PyObjectPlus) + """ + CListValue + + This is a list like object used in the game engine internally that behaves similar to a python list in most ways. + + As well as the normal index lookup. + C{val= clist[i]} + + CListValue supports string lookups. + C{val= scene.objects["OBCube"]} + + Other operations such as C{len(clist), list(clist), clist[0:10]} are also supported. + """ + def append(val): + """ + Add an item to the list (like pythons append) + + Warning: Appending values to the list can cause crashes when the list is used internally by the game engine. + """ + + def count(val): + """ + Count the number of instances of a value in the list. + + @rtype: integer + @return: number of instances + """ + def index(val): + """ + Return the index of a value in the list. + + @rtype: integer + @return: The index of the value in the list. + """ + def reverse(val): + """ + Reverse the order of the list. + """ \ No newline at end of file diff --git a/source/gameengine/PyDoc/KX_BlenderMaterial.py b/source/gameengine/PyDoc/KX_BlenderMaterial.py new file mode 100644 index 00000000000..21417db1802 --- /dev/null +++ b/source/gameengine/PyDoc/KX_BlenderMaterial.py @@ -0,0 +1,38 @@ +class KX_BlenderMaterial: # (PyObjectPlus) + """ + KX_BlenderMaterial + + All placeholders have a __ prefix + """ + + def __getShader(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + + def __setBlending(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getMaterialIndex(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ diff --git a/source/gameengine/PyDoc/KX_ConstraintWrapper.py b/source/gameengine/PyDoc/KX_ConstraintWrapper.py new file mode 100644 index 00000000000..5b34e1609e8 --- /dev/null +++ b/source/gameengine/PyDoc/KX_ConstraintWrapper.py @@ -0,0 +1,28 @@ +class KX_ConstraintWrapper: # (PyObjectPlus) + """ + KX_ConstraintWrapper + + All placeholders have a __ prefix + """ + def __getConstraintId(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + + def __testMethod(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 972a15b7765..97f6dab52bf 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -328,13 +328,13 @@ class KX_GameObject: # (SCA_IObject) def getChildren(): """ Return a list of immediate children of this object. - @rtype: list + @rtype: L{CListValue} of L{KX_GameObject} @return: a list of all this objects children. """ def getChildrenRecursive(): """ Return a list of children of this object, including all their childrens children. - @rtype: list + @rtype: L{CListValue} of L{KX_GameObject} @return: a list of all this objects children recursivly. """ def getMesh(mesh): diff --git a/source/gameengine/PyDoc/KX_PhysicsObjectWrapper.py b/source/gameengine/PyDoc/KX_PhysicsObjectWrapper.py new file mode 100644 index 00000000000..2171cf4c7b6 --- /dev/null +++ b/source/gameengine/PyDoc/KX_PhysicsObjectWrapper.py @@ -0,0 +1,47 @@ +class KX_PhysicsObjectWrapper: # (PyObjectPlus) + """ + KX_PhysicsObjectWrapper + + All placeholders have a __ prefix + """ + def __setActive(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + + def __setAngularVelocity(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setLinearVelocity(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setPosition(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ diff --git a/source/gameengine/PyDoc/KX_Scene.py b/source/gameengine/PyDoc/KX_Scene.py index a9fd44ffc9a..5dcd560ee96 100644 --- a/source/gameengine/PyDoc/KX_Scene.py +++ b/source/gameengine/PyDoc/KX_Scene.py @@ -16,14 +16,14 @@ class KX_Scene: scene = GameLogic.getCurrentScene() # print all the objects in the scene - for obj in scene.getObjectList(): - print obj.getName() + for obj in scene.objects: + print obj.name # get an object named 'Cube' - obj = scene.getObjectList()["OBCube"] + obj = scene.objects["OBCube"] # get the first object in the scene. - obj = scene.getObjectList()[0] + obj = scene.objects[0] Example:: # Get the depth of an object in the camera view. @@ -40,7 +40,7 @@ class KX_Scene: @ivar name: The scene's name @type name: string @ivar objects: A list of objects in the scene. - @type objects: list [L{KX_GameObject}] + @type objects: L{CListValue} of L{KX_GameObject} @ivar active_camera: The current active camera @type active_camera: L{KX_Camera} @ivar suspended: True if the scene is suspended. diff --git a/source/gameengine/PyDoc/KX_TouchSensor.py b/source/gameengine/PyDoc/KX_TouchSensor.py index d7277be4c2a..f4fcbeefc62 100644 --- a/source/gameengine/PyDoc/KX_TouchSensor.py +++ b/source/gameengine/PyDoc/KX_TouchSensor.py @@ -17,7 +17,7 @@ class KX_TouchSensor(SCA_ISensor): @ivar objectHit: The last collided object. (Read Only) @type objectHit: L{KX_GameObject} or None @ivar objectHitList: A list of colliding objects. (Read Only) - @type objectHitList: list + @type objectHitList: L{CListValue} of L{KX_GameObject} """ #--The following methods are deprecated, please use properties instead. @@ -53,7 +53,7 @@ class KX_TouchSensor(SCA_ISensor): Only objects that have the requisite material/property are listed. - @rtype: list [L{KX_GameObject}] + @rtype: L{CListValue} of L{KX_GameObject} """ def getTouchMaterial(): """ diff --git a/source/gameengine/PyDoc/KX_VehicleWrapper.py b/source/gameengine/PyDoc/KX_VehicleWrapper.py new file mode 100644 index 00000000000..68240e15622 --- /dev/null +++ b/source/gameengine/PyDoc/KX_VehicleWrapper.py @@ -0,0 +1,158 @@ +class KX_VehicleWrapper: # (PyObjectPlus) + """ + KX_VehicleWrapper + + All placeholders have a __ prefix + """ + + def __addWheel(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + + def __applyBraking(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __applyEngineForce(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getConstraintId(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getConstraintType(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getNumWheels(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getWheelOrientationQuaternion(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getWheelPosition(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __getWheelRotation(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setRollInfluence(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSteeringValue(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSuspensionCompression(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSuspensionDamping(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setSuspensionStiffness(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ + def __setTyreFriction(val): + """ + TODO - Description + + @param val: the starting frame of the animation + @type val: float + + @rtype: integer + @return: TODO Description + """ diff --git a/source/gameengine/PyDoc/bge_api_validate_py.txt b/source/gameengine/PyDoc/bge_api_validate_py.txt index 58dfbadba15..0920e5d3c7d 100644 --- a/source/gameengine/PyDoc/bge_api_validate_py.txt +++ b/source/gameengine/PyDoc/bge_api_validate_py.txt @@ -85,7 +85,7 @@ for type_name in sorted(type_members.keys()): if PRINT_OK: print "type: %s" % type_name except: - print "missing: %s - %s" % (type_name, str(members)) + print "missing: %s - %s" % (type_name, str(sorted(members))) continue reload(mod) # incase were editing it @@ -93,7 +93,7 @@ for type_name in sorted(type_members.keys()): try: type_class = getattr(mod, type_name) except: - print "missing class: %s.%s - %s" % (type_name, type_name, str(members)) + print "missing class: %s.%s - %s" % (type_name, type_name, str(sorted(members))) continue for member in sorted(members): From ca1c3be3029a7a7aada686372ca1dd6ab39f0547 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 18:55:35 +0000 Subject: [PATCH 107/201] BGE Py API - Added OpenGL access to the game engine as a module so you can import BGL directly. --- source/blender/python/api2_2x/BGL.c | 23 ++++++++----------- source/blender/python/api2_2x/BGL.h | 1 + source/blender/python/api2_2x/Blender.c | 2 +- source/blender/python/api2_2x/modules.h | 2 +- .../BlenderRoutines/BL_KetsjiEmbedStart.cpp | 2 ++ .../GamePlayer/ghost/GPG_Application.cpp | 1 + source/gameengine/Ketsji/CMakeLists.txt | 1 + source/gameengine/Ketsji/KX_PythonInit.cpp | 10 +++++++- source/gameengine/Ketsji/KX_PythonInit.h | 1 + source/gameengine/Ketsji/SConscript | 5 ++++ 10 files changed, 32 insertions(+), 16 deletions(-) diff --git a/source/blender/python/api2_2x/BGL.c b/source/blender/python/api2_2x/BGL.c index 2503a66250b..e5868a82c2c 100644 --- a/source/blender/python/api2_2x/BGL.c +++ b/source/blender/python/api2_2x/BGL.c @@ -35,7 +35,6 @@ #include "BGL.h" /*This must come first */ #include "MEM_guardedalloc.h" -#include "gen_utils.h" static int type_size( int type ); static Buffer *make_buffer( int type, int ndimensions, int *dimensions ); @@ -121,8 +120,6 @@ static PyObject *Method_##funcname (PyObject *self, PyObject *args) {\ /* #endif */ -PyObject *BGL_Init( void ); - /********/ static int type_size(int type) { @@ -185,12 +182,12 @@ static PyObject *Method_Buffer (PyObject *self, PyObject *args) int i, type; int *dimensions = 0, ndimensions = 0; - if (!PyArg_ParseTuple(args, "iO|O", &type, &length_ob, &template)) - return EXPP_ReturnPyObjError(PyExc_AttributeError, - "expected an int and one or two PyObjects"); - + if (!PyArg_ParseTuple(args, "iO|O", &type, &length_ob, &template)) { + PyErr_SetString(PyExc_AttributeError, "expected an int and one or two PyObjects"); + return NULL; + } if (type!=GL_BYTE && type!=GL_SHORT && type!=GL_INT && type!=GL_FLOAT && type!=GL_DOUBLE) { - PyErr_SetString(PyExc_AttributeError, "type"); + PyErr_SetString(PyExc_AttributeError, "invalid first argument type, should be one of GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT or GL_DOUBLE"); return NULL; } @@ -1088,19 +1085,19 @@ static struct PyMethodDef BGL_methods[] = { {NULL, NULL, 0, NULL} }; -PyObject *BGL_Init(void) +PyObject *BGL_Init(const char *from) { - PyObject *mod= Py_InitModule("Blender.BGL", BGL_methods); + PyObject *mod= Py_InitModule(from, BGL_methods); PyObject *dict= PyModule_GetDict(mod); - + PyObject *item; if( PyType_Ready( &buffer_Type) < 0) Py_RETURN_NONE; -#define EXPP_ADDCONST(x) EXPP_dict_set_item_str(dict, #x, PyInt_FromLong((int)x)) +#define EXPP_ADDCONST(x) PyDict_SetItemString(dict, #x, item=PyInt_FromLong((int)x)); Py_DECREF(item) /* So, for example: * EXPP_ADDCONST(GL_CURRENT_BIT) becomes - * EXPP_dict_set_item_str(dict, "GL_CURRENT_BIT", PyInt_FromLong(GL_CURRENT_BIT)) */ + * PyDict_SetItemString(dict, "GL_CURRENT_BIT", item=PyInt_FromLong(GL_CURRENT_BIT)); Py_DECREF(item) */ EXPP_ADDCONST(GL_CURRENT_BIT); EXPP_ADDCONST(GL_POINT_BIT); diff --git a/source/blender/python/api2_2x/BGL.h b/source/blender/python/api2_2x/BGL.h index 461f5bc9372..89e56811b29 100644 --- a/source/blender/python/api2_2x/BGL.h +++ b/source/blender/python/api2_2x/BGL.h @@ -43,6 +43,7 @@ #include #include "BIF_gl.h" +PyObject *BGL_Init( const char *from ); /*@ Buffer Object */ /*@ For Python access to OpenGL functions requiring a pointer. */ diff --git a/source/blender/python/api2_2x/Blender.c b/source/blender/python/api2_2x/Blender.c index d09506f731b..2e44f0635e5 100644 --- a/source/blender/python/api2_2x/Blender.c +++ b/source/blender/python/api2_2x/Blender.c @@ -1074,7 +1074,7 @@ void M_Blender_Init(void) PyDict_SetItemString(dict, "Armature", Armature_Init()); PyDict_SetItemString(dict, "BezTriple", BezTriple_Init()); - PyDict_SetItemString(dict, "BGL", BGL_Init()); + PyDict_SetItemString(dict, "BGL", BGL_Init("Blender.BGL")); PyDict_SetItemString(dict, "CurNurb", CurNurb_Init()); PyDict_SetItemString(dict, "Constraint", Constraint_Init()); PyDict_SetItemString(dict, "Curve", Curve_Init()); diff --git a/source/blender/python/api2_2x/modules.h b/source/blender/python/api2_2x/modules.h index 8700188b2e9..0273e357d98 100644 --- a/source/blender/python/api2_2x/modules.h +++ b/source/blender/python/api2_2x/modules.h @@ -52,7 +52,7 @@ BGL is a special case. It still has data declarations in the .h file and cannot be #included until it is cleaned up. ****************************************************************************/ -PyObject *BGL_Init( void ); +PyObject *BGL_Init( const char *from ); PyObject *Library_Init( void ); PyObject *Noise_Init( void ); diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index 9228798890a..1c91ad784ac 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -368,6 +368,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, initGameKeys(); initPythonConstraintBinding(); initMathutils(); + initBGL(); #ifdef WITH_FFMPEG initVideoTexture(); #endif @@ -666,6 +667,7 @@ extern "C" void StartKetsjiShellSimulation(struct ScrArea *area, initGameKeys(); initPythonConstraintBinding(); initMathutils(); + initBGL(); #ifdef WITH_FFMPEG initVideoTexture(); #endif diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 6d846610109..3432d498981 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -689,6 +689,7 @@ bool GPG_Application::startEngine(void) initGameKeys(); initPythonConstraintBinding(); initMathutils(); + initBGL(); #ifdef WITH_FFMPEG initVideoTexture(); #endif diff --git a/source/gameengine/Ketsji/CMakeLists.txt b/source/gameengine/Ketsji/CMakeLists.txt index 3bd05ca5137..d45d5345678 100644 --- a/source/gameengine/Ketsji/CMakeLists.txt +++ b/source/gameengine/Ketsji/CMakeLists.txt @@ -36,6 +36,7 @@ SET(SRC ../../../source/blender/python/api2_2x/quat.c ../../../source/blender/python/api2_2x/vector.c ../../../source/blender/python/api2_2x/bpy_internal_import.c + ../../../source/blender/python/api2_2x/BGL.c ) SET(INC diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 9a6565d7627..15397085b4a 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -78,6 +78,7 @@ extern "C" { #include "Mathutils.h" // Blender.Mathutils module copied here so the blenderlayer can use. #include "bpy_internal_import.h" /* from the blender python api, but we want to import text too! */ + #include "BGL.h" } #include "marshal.h" /* python header for loading/saving dicts */ @@ -1168,7 +1169,7 @@ PyObject *KXpy_import(PyObject *self, PyObject *args) /* quick hack for GamePython modules TODO: register builtin modules properly by ExtendInittab */ if (!strcmp(name, "GameLogic") || !strcmp(name, "GameKeys") || !strcmp(name, "PhysicsConstraints") || - !strcmp(name, "Rasterizer") || !strcmp(name, "Mathutils")) { + !strcmp(name, "Rasterizer") || !strcmp(name, "Mathutils") || !strcmp(name, "BGL")) { return PyImport_ImportModuleEx(name, globals, locals, fromlist); } @@ -1357,6 +1358,8 @@ static void clearGameModules() clearModule(modules, "Rasterizer"); clearModule(modules, "GameKeys"); clearModule(modules, "VideoTexture"); + clearModule(modules, "Mathutils"); + clearModule(modules, "BGL"); PyErr_Clear(); // incase some of these were alredy removed. } @@ -1596,6 +1599,11 @@ PyObject* initMathutils() return Mathutils_Init("Mathutils"); // Use as a top level module in BGE } +PyObject* initBGL() +{ + return BGL_Init("BGL"); // Use as a top level module in BGE +} + void KX_SetActiveScene(class KX_Scene* scene) { gp_KetsjiScene = scene; diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h index b709cee2f37..97d23fe391c 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.h +++ b/source/gameengine/Ketsji/KX_PythonInit.h @@ -45,6 +45,7 @@ PyObject* initGameKeys(); PyObject* initRasterizer(class RAS_IRasterizer* rasty,class RAS_ICanvas* canvas); PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie); PyObject* initMathutils(); +PyObject* initBGL(); PyObject* initVideoTexture(void); void exitGamePlayerPythonScripting(); PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie); diff --git a/source/gameengine/Ketsji/SConscript b/source/gameengine/Ketsji/SConscript index 68e5c62ab6c..61e722fb957 100644 --- a/source/gameengine/Ketsji/SConscript +++ b/source/gameengine/Ketsji/SConscript @@ -22,6 +22,11 @@ sources.extend([\ '#source/blender/python/api2_2x/bpy_internal_import.c' ]) + +sources.extend([\ + '#source/blender/python/api2_2x/BGL.c' +]) + incs = '. #source/blender/python/api2_2x' # Only for Mathutils! and bpy_internal_import.h, be very careful incs += ' #source/kernel/gen_system #intern/string #intern/guardedalloc' From d012a222a21d4a2fb7f8879484755b89f80ecbb2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 19:21:48 +0000 Subject: [PATCH 108/201] Some users have odd joysticks with more then 8 axises, increased to 16 (so 4 joysticks) Ideally there would be no limit but I dont think its worth the effort. Also had a bug in last commit for the pytyhon api's "axisSingle" attribute, UI index starts at 1 not zero. --- source/blender/src/buttons_logic.c | 4 ++-- source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h | 2 +- source/gameengine/GameLogic/SCA_JoystickSensor.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 94790ac0f40..56879f80198 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -1495,7 +1495,7 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short else if(joy->type == SENS_JOY_AXIS) { uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, - &joy->axis, 1, 4.0, 100, 0, + &joy->axis, 1, 8.0, 100, 0, "Specify which axis pair to use, 1 is useually the main direction input."); uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20),yco-44, 0.4 * (width-20), 19, @@ -1523,7 +1523,7 @@ static short draw_sensorbuttons(bSensor *sens, uiBlock *block, short xco, short } else { /* (joy->type == SENS_JOY_AXIS_SINGLE)*/ uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19, - &joy->axis_single, 1, 8.0, 100, 0, + &joy->axis_single, 1, 16.0, 100, 0, "Specify a single axis (verticle/horizontal/other) to detect"); uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20),yco-44, 0.4 * (width-20), 19, diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h index 42fed51b19f..636c4dd5a42 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h +++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h @@ -39,7 +39,7 @@ #endif #define JOYINDEX_MAX 8 -#define JOYAXIS_MAX 8 +#define JOYAXIS_MAX 16 #define JOYAXIS_RIGHT 0 #define JOYAXIS_UP 1 diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 3df9b454b1d..fa61e057b2c 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -605,7 +605,7 @@ PyObject* SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYAT return NULL; } - return PyInt_FromLong(joy->GetAxisPosition(self->m_axis)); + return PyInt_FromLong(joy->GetAxisPosition(self->m_axis-1)); } PyObject* SCA_JoystickSensor::pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) From 14e3b041ba4c1f97cc6f672143062d64c4699c17 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 7 Apr 2009 19:57:30 +0000 Subject: [PATCH 109/201] MSVC9 project file update --- projectfiles_vc9/blender/BPY_python/BPY_python.vcproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/projectfiles_vc9/blender/BPY_python/BPY_python.vcproj b/projectfiles_vc9/blender/BPY_python/BPY_python.vcproj index 2ffc9afa67c..ff5fe62806c 100644 --- a/projectfiles_vc9/blender/BPY_python/BPY_python.vcproj +++ b/projectfiles_vc9/blender/BPY_python/BPY_python.vcproj @@ -358,6 +358,10 @@ RelativePath="..\..\..\source\blender\python\api2_2x\bpy_data.c" >
+ + @@ -643,6 +647,10 @@ RelativePath="..\..\..\source\blender\python\api2_2x\bpy_data.h" > + + From 486985762aa71b75ec1d1d0e7bbf0f777065f3a3 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 7 Apr 2009 20:05:32 +0000 Subject: [PATCH 110/201] etch-a-ton Use head not tail normal for bone orientation. Simplify roll to normal a bit. --- source/blender/src/editarmature_generate.c | 6 +++--- source/blender/src/editarmature_sketch.c | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/source/blender/src/editarmature_generate.c b/source/blender/src/editarmature_generate.c index ad312f079bd..930ca263499 100644 --- a/source/blender/src/editarmature_generate.c +++ b/source/blender/src/editarmature_generate.c @@ -51,14 +51,14 @@ void setBoneRollFromNormal(EditBone *bone, float *no, float invmat[][4], float t { if (no != NULL && !VecIsNull(no)) { - float tangent[3], cotangent[3], normal[3]; + float tangent[3], vec[3], normal[3]; VECCOPY(normal, no); Mat3MulVecfl(tmat, normal); VecSubf(tangent, bone->tail, bone->head); - Crossf(cotangent, tangent, normal); - Crossf(normal, cotangent, tangent); + Projf(vec, tangent, normal); + VecSubf(normal, normal, vec); Normalize(normal); diff --git a/source/blender/src/editarmature_sketch.c b/source/blender/src/editarmature_sketch.c index 38e44319b47..91aadd07392 100644 --- a/source/blender/src/editarmature_sketch.c +++ b/source/blender/src/editarmature_sketch.c @@ -1011,7 +1011,22 @@ void sk_drawStroke(SK_Stroke *stk, int id, float color[3], int start, int end) } glEnd(); - + +#if 0 + glColor3f(0, 0, 1); + glBegin(GL_LINES); + + for (i = 0; i < stk->nb_points; i++) + { + float *p = stk->points[i].p; + float *no = stk->points[i].no; + glVertex3fv(p); + glVertex3f(p[0] + no[0], p[1] + no[1], p[2] + no[2]); + } + + glEnd(); +#endif + glColor3f(0, 0, 0); glBegin(GL_POINTS); @@ -1961,7 +1976,7 @@ void sk_convertStroke(SK_Stroke *stk) Mat4MulVecfl(invmat, bone->head); Mat4MulVecfl(invmat, bone->tail); - setBoneRollFromNormal(bone, pt->no, invmat, tmat); + setBoneRollFromNormal(bone, head->no, invmat, tmat); } new_parent = bone; From 51b4145841293d4a695b7bbe88e90ebd98443fc8 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 7 Apr 2009 22:14:06 +0000 Subject: [PATCH 111/201] BGE Scenegraph and View frustrum culling improvement. This commit contains a number of performance improvements for the BGE in the Scenegraph (parent relation between objects in the scene) and view frustrum culling. The scenegraph improvement consists in avoiding position update if the object has not moved since last update and the removal of redundant updates and synchronization with the physics engine. The view frustrum culling improvement consists in using the DBVT broadphase facility of Bullet to build a tree of graphical objects in the scene. The elements of the tree are Aabb boxes (Aligned Axis Bounding Boxes) enclosing the objects. This provides good precision in closed and opened scenes. This new culling system is enabled by default but just in case, it can be disabled with a button in the World settings. There is no do_version in this commit but it will be added before the 2.49 release. For now you must manually enable the DBVT culling option in World settings when you open an old file. The above improvements speed up scenegraph and culling up to 5x. However, this performance improvement is only visible when you have hundreds or thousands of objects. The main interest of the DBVT tree is to allow easy occlusion culling and automatic LOD system. This will be the object of further improvements. --- .../Dynamics/btDiscreteDynamicsWorld.cpp | 7 +- .../gameplayer/ghost/GP_ghost.vcproj | 2 +- .../PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj | 8 ++ .../physics/PHY_Physics/PHY_Physics.vcproj | 17 +++ source/blender/blenkernel/intern/world.c | 1 + source/blender/makesdna/DNA_world_types.h | 3 + source/blender/src/buttons_shading.c | 4 +- .../Converter/BL_BlenderDataConversion.cpp | 67 +++++++++-- .../Converter/KX_BlenderSceneConverter.cpp | 7 +- .../Ketsji/KX_BulletPhysicsController.cpp | 3 +- source/gameengine/Ketsji/KX_Camera.h | 12 ++ source/gameengine/Ketsji/KX_GameObject.cpp | 60 +++++----- source/gameengine/Ketsji/KX_GameObject.h | 25 ++-- source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 48 ++++++-- source/gameengine/Ketsji/KX_Light.cpp | 2 +- source/gameengine/Ketsji/KX_MotionState.cpp | 20 +++- source/gameengine/Ketsji/KX_MotionState.h | 1 + source/gameengine/Ketsji/KX_NearSensor.cpp | 17 ++- source/gameengine/Ketsji/KX_RadarSensor.cpp | 5 +- .../KX_SG_BoneParentNodeRelationship.cpp | 7 +- .../Ketsji/KX_SG_BoneParentNodeRelationship.h | 3 +- .../Ketsji/KX_SG_NodeRelationships.cpp | 31 ++++- .../Ketsji/KX_SG_NodeRelationships.h | 9 +- source/gameengine/Ketsji/KX_Scene.cpp | 103 +++++++++++----- source/gameengine/Ketsji/KX_Scene.h | 17 +++ .../Physics/BlOde/OdePhysicsEnvironment.h | 1 + .../Physics/Bullet/CcdGraphicController.cpp | 112 ++++++++++++++++++ .../Physics/Bullet/CcdGraphicController.h | 74 ++++++++++++ .../Physics/Bullet/CcdPhysicsController.cpp | 16 +++ .../Physics/Bullet/CcdPhysicsController.h | 1 + .../Physics/Bullet/CcdPhysicsEnvironment.cpp | 107 +++++++++++++++-- .../Physics/Bullet/CcdPhysicsEnvironment.h | 15 ++- .../Physics/Dummy/DummyPhysicsEnvironment.h | 1 + .../Physics/Sumo/SumoPhysicsEnvironment.h | 1 + .../Physics/common/PHY_DynamicTypes.h | 35 +++++- .../Physics/common/PHY_IController.cpp | 39 ++++++ .../Physics/common/PHY_IController.h | 53 +++++++++ .../Physics/common/PHY_IGraphicController.cpp | 39 ++++++ .../Physics/common/PHY_IGraphicController.h | 56 +++++++++ .../Physics/common/PHY_IMotionState.h | 2 + .../Physics/common/PHY_IPhysicsController.h | 8 +- .../Physics/common/PHY_IPhysicsEnvironment.h | 2 + .../Rasterizer/RAS_BucketManager.cpp | 8 ++ .../Rasterizer/RAS_FramingManager.h | 7 ++ .../Rasterizer/RAS_MaterialBucket.h | 1 + source/gameengine/SceneGraph/SG_BBox.cpp | 7 ++ source/gameengine/SceneGraph/SG_BBox.h | 2 + source/gameengine/SceneGraph/SG_IObject.cpp | 2 + source/gameengine/SceneGraph/SG_IObject.h | 30 +++++ source/gameengine/SceneGraph/SG_Node.cpp | 7 +- source/gameengine/SceneGraph/SG_Node.h | 3 +- .../gameengine/SceneGraph/SG_ParentRelation.h | 3 +- source/gameengine/SceneGraph/SG_Spatial.cpp | 19 ++- source/gameengine/SceneGraph/SG_Spatial.h | 13 +- 54 files changed, 991 insertions(+), 152 deletions(-) create mode 100644 source/gameengine/Physics/Bullet/CcdGraphicController.cpp create mode 100644 source/gameengine/Physics/Bullet/CcdGraphicController.h create mode 100644 source/gameengine/Physics/common/PHY_IController.cpp create mode 100644 source/gameengine/Physics/common/PHY_IController.h create mode 100644 source/gameengine/Physics/common/PHY_IGraphicController.cpp create mode 100644 source/gameengine/Physics/common/PHY_IGraphicController.h diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index 457e26b1dc0..b6231a8fda6 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -350,12 +350,13 @@ int btDiscreteDynamicsWorld::stepSimulation( btScalar timeStep,int maxSubSteps, for (int i=0;i + + @@ -444,6 +448,10 @@ Filter="h;hpp;hxx;hm;inl;inc;xsd" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > + + diff --git a/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj b/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj index 582aed500ac..5441c5bd4f1 100644 --- a/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj +++ b/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj @@ -4,6 +4,7 @@ Version="9,00" Name="PHY_Physics" ProjectGUID="{E109F1A5-FDD3-4F56-A1C4-96867EEA4C5B}" + RootNamespace="PHY_Physics" TargetFrameworkVersion="131072" > @@ -469,6 +470,14 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > + + + + @@ -494,6 +503,14 @@ RelativePath="..\..\..\..\source\gameengine\Physics\common\PHY_DynamicTypes.h" > + + + + diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 2e89ce3f805..594d18f1ca7 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -106,6 +106,7 @@ World *add_world(char *name) wrld->ao_approx_error= 0.25f; wrld->physicsEngine= WOPHY_BULLET;//WOPHY_SUMO; Bullet by default + wrld->mode = WO_DBVT_CAMERA_CULLING; // DBVT culling by default wrld->preview = NULL; return wrld; diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index ab7e25190ad..a51e9704be2 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -84,6 +84,8 @@ typedef struct World { * bit 1: Do stars * bit 2: (reserved) depth of field * bit 3: (gameengine): Activity culling is enabled. + * bit 4: ambient occlusion + * bit 5: (gameengine) : enable Bullet DBVT tree for view frustrum culling */ short mode; int physicsEngine; /* here it's aligned */ @@ -133,6 +135,7 @@ typedef struct World { #define WO_DOF 4 #define WO_ACTIVITY_CULLING 8 #define WO_AMB_OCC 16 +#define WO_DBVT_CAMERA_CULLING 32 /* aomix */ #define WO_AOADD 0 diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c index fe4649f31f4..e68c86349ce 100644 --- a/source/blender/src/buttons_shading.c +++ b/source/blender/src/buttons_shading.c @@ -2181,7 +2181,7 @@ static void world_panel_mistaph(World *wrld) uiSetButLock(wrld->id.lib!=0, ERROR_LIBDATA_MESSAGE); #if GAMEBLENDER == 1 - uiDefButI(block, MENU, 1, + uiDefButI(block, MENU, B_REDR, #ifdef USE_ODE "Physics %t|None %x0|Sumo %x2|Ode %x4 |Bullet %x5", #else @@ -2198,6 +2198,8 @@ static void world_panel_mistaph(World *wrld) /* Gravitation for the game worlds */ uiDefButF(block, NUMSLI,0, "Grav ", 150,180,150,19, &(wrld->gravity), 0.0, 25.0, 0, 0, "Sets the gravitation constant of the game world"); + if (wrld->physicsEngine == WOPHY_BULLET) + uiDefButBitS(block, TOG, WO_DBVT_CAMERA_CULLING, 0, "DBVT culling", 10,160,140,19, &wrld->mode, 0, 0, 0, 0, "Toggles use of optimized Bullet DBVT tree for camera culling"); #endif uiBlockSetCol(block, TH_BUT_SETTING1); diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index d74243b0eb0..3c77f122758 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -164,7 +164,11 @@ extern "C" { // defines USE_ODE to choose physics engine #include "KX_ConvertPhysicsObject.h" - +#ifdef USE_BULLET +#include "CcdPhysicsEnvironment.h" +#include "CcdGraphicController.h" +#endif +#include "KX_MotionState.h" // This file defines relationships between parents and children // in the game engine. @@ -1265,8 +1269,37 @@ static void my_get_local_bounds(Object *ob, float *center, float *size) ////////////////////////////////////////////////////// - - +void BL_CreateGraphicObjectNew(KX_GameObject* gameobj, + const MT_Point3& localAabbMin, + const MT_Point3& localAabbMax, + KX_Scene* kxscene, + bool isActive, + e_PhysicsEngine physics_engine) +{ + if (gameobj->GetMeshCount() > 0) + { + switch (physics_engine) + { +#ifdef USE_BULLET + case UseBullet: + { + CcdPhysicsEnvironment* env = (CcdPhysicsEnvironment*)kxscene->GetPhysicsEnvironment(); + assert(env); + PHY_IMotionState* motionstate = new KX_MotionState(gameobj->GetSGNode()); + CcdGraphicController* ctrl = new CcdGraphicController(env, motionstate); + gameobj->SetGraphicController(ctrl); + ctrl->setNewClientInfo(gameobj->getClientInfo()); + ctrl->setLocalAabb(localAabbMin, localAabbMax); + if (isActive) + env->addCcdGraphicController(ctrl); + } + break; +#endif + default: + break; + } + } +} void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj, struct Object* blenderobject, @@ -1859,8 +1892,10 @@ void BL_ConvertBlenderObjects(struct Main* maggie, if (blenderscene->world) { kxscene->SetActivityCulling( (blenderscene->world->mode & WO_ACTIVITY_CULLING) != 0); kxscene->SetActivityCullingRadius(blenderscene->world->activityBoxRadius); + kxscene->SetDbvtCameraCulling((blenderscene->world->mode & WO_DBVT_CAMERA_CULLING) != 0); } else { kxscene->SetActivityCulling(false); + kxscene->SetDbvtCameraCulling(false); } int activeLayerBitInfo = blenderscene->lay; @@ -1954,7 +1989,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, gameobj->NodeSetLocalPosition(pos); gameobj->NodeSetLocalOrientation(MT_Matrix3x3(eulxyz)); gameobj->NodeSetLocalScale(scale); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); BL_ConvertIpos(blenderobject,gameobj,converter); BL_ConvertMaterialIpos(blenderobject, gameobj, converter); @@ -2037,7 +2072,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, objectlist->Add(gameobj->AddRef()); //tf.Add(gameobj->GetSGNode()); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); gameobj->AddMeshUser(); } @@ -2148,7 +2183,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, gameobj->NodeSetLocalPosition(pos); gameobj->NodeSetLocalOrientation(MT_Matrix3x3(eulxyz)); gameobj->NodeSetLocalScale(scale); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); BL_ConvertIpos(blenderobject,gameobj,converter); BL_ConvertMaterialIpos(blenderobject,gameobj, converter); @@ -2226,7 +2261,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, objectlist->Add(gameobj->AddRef()); //tf.Add(gameobj->GetSGNode()); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); gameobj->AddMeshUser(); } else @@ -2377,7 +2412,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, if (gameobj->GetSGNode()->GetSGParent() == 0) { parentlist->Add(gameobj->AddRef()); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); } } @@ -2414,6 +2449,22 @@ void BL_ConvertBlenderObjects(struct Main* maggie, BL_CreatePhysicsObjectNew(gameobj,blenderobject,meshobj,kxscene,layerMask,physics_engine,converter,processCompoundChildren); } + // create graphic controller for culling + if (kxscene->GetDbvtCameraCulling()) + { + for (i=0; iGetCount();i++) + { + KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i); + if (gameobj->GetMeshCount() > 0) + { + MT_Point3 box[2]; + gameobj->GetSGNode()->BBox().getmm(box, MT_Transform::Identity()); + // box[0] is the min, box[1] is the max + bool isactive = objectlist->SearchValue(gameobj); + BL_CreateGraphicObjectNew(gameobj,box[0],box[1],kxscene,isactive,physics_engine); + } + } + } //set ini linearVel and int angularVel //rcruiz if (converter->addInitFromFrame) diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 97a0819147c..b0c676a410d 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -267,9 +267,11 @@ void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename, Scene *blenderscene = GetBlenderSceneForName(scenename); e_PhysicsEngine physics_engine = UseBullet; + bool useDbvtCulling = false; // hook for registration function during conversion. m_currentScene = destinationscene; destinationscene->SetSceneConverter(this); + SG_SetActiveStage(SG_STAGE_CONVERTER); if (blenderscene) { @@ -281,6 +283,7 @@ void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename, case WOPHY_BULLET: { physics_engine = UseBullet; + useDbvtCulling = (blenderscene->world->mode & WO_DBVT_CAMERA_CULLING) != 0; break; } @@ -313,7 +316,7 @@ void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename, #ifdef USE_BULLET case UseBullet: { - CcdPhysicsEnvironment* ccdPhysEnv = new CcdPhysicsEnvironment(); + CcdPhysicsEnvironment* ccdPhysEnv = new CcdPhysicsEnvironment(useDbvtCulling); ccdPhysEnv->setDebugDrawer(new BlenderDebugDraw()); ccdPhysEnv->setDeactivationLinearTreshold(0.8f); // default, can be overridden by Python ccdPhysEnv->setDeactivationAngularTreshold(1.0f); // default, can be overridden by Python @@ -806,7 +809,7 @@ void KX_BlenderSceneConverter::resetNoneDynamicObjectToIpo(){ gameobj->NodeSetLocalPosition(pos); gameobj->NodeSetLocalOrientation(MT_Matrix3x3(eulxyz)); gameobj->NodeSetLocalScale(scale); - gameobj->NodeUpdateGS(0,true); + gameobj->NodeUpdateGS(0); } } } diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp index 062e9f7df50..435b2b5db19 100644 --- a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp +++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp @@ -417,13 +417,14 @@ void KX_BulletPhysicsController::SetSumoTransform(bool nondynaonly) { if (!nondynaonly) { + /* btTransform worldTrans; if (GetRigidBody()) { GetRigidBody()->getMotionState()->getWorldTransform(worldTrans); GetRigidBody()->setCenterOfMassTransform(worldTrans); } - + */ /* scaling? if (m_bDyna) diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h index 6ed21506372..4accd4bc2f1 100644 --- a/source/gameengine/Ketsji/KX_Camera.h +++ b/source/gameengine/Ketsji/KX_Camera.h @@ -45,6 +45,7 @@ class KX_Camera : public KX_GameObject { Py_Header; protected: + friend class KX_Scene; /** Camera parameters (clips distances, focal lenght). These * params are closely tied to Blender. In the gameengine, only the * projection and modelview matrices are relevant. There's a @@ -67,6 +68,7 @@ protected: * Storage for the projection matrix that is passed to the * rasterizer. */ MT_Matrix4x4 m_projection_matrix; + //MT_Matrix4x4 m_projection_matrix1; /** * Storage for the modelview matrix that is passed to the @@ -119,6 +121,16 @@ protected: * Extracts the bound sphere of the view frustum. */ void ExtractFrustumSphere(); + /** + * return the clip plane + */ + MT_Vector4 *GetNormalizedClipPlanes() + { + ExtractClipPlanes(); + NormalizeClipPlanes(); + return m_planes; + } + public: enum { INSIDE, INTERSECT, OUTSIDE } ; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 7f99a565769..339a955702a 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -55,6 +55,7 @@ typedef unsigned long uint_ptr; #include // printf #include "SG_Controller.h" #include "KX_IPhysicsController.h" +#include "PHY_IGraphicController.h" #include "SG_Node.h" #include "SG_Controller.h" #include "KX_ClientObjectInfo.h" @@ -91,6 +92,7 @@ KX_GameObject::KX_GameObject( m_bVisible(true), m_bCulled(true), m_pPhysicsController1(NULL), + m_pGraphicController(NULL), m_pPhysicsEnvironment(NULL), m_xray(false), m_pHitObject(NULL), @@ -132,6 +134,10 @@ KX_GameObject::~KX_GameObject() } m_pSGNode->SetSGClientObject(NULL); } + if (m_pGraphicController) + { + delete m_pGraphicController; + } } @@ -249,7 +255,7 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj) NodeSetLocalScale(scale1); NodeSetLocalPosition(MT_Point3(newpos[0],newpos[1],newpos[2])); NodeSetLocalOrientation(invori*NodeGetWorldOrientation()); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); // object will now be a child, it must be removed from the parent list CListValue* rootlist = scene->GetRootParentList(); if (rootlist->RemoveValue(this)) @@ -269,6 +275,7 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj) rootobj->m_pPhysicsController1->AddCompoundChild(m_pPhysicsController1); } } + // graphically, the object hasn't change place, no need to update m_pGraphicController } } @@ -286,7 +293,7 @@ void KX_GameObject::RemoveParent(KX_Scene *scene) // Remove us from our parent GetSGNode()->DisconnectFromParent(); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); // the object is now a root object, add it to the parentlist CListValue* rootlist = scene->GetRootParentList(); if (!rootlist->SearchValue(this)) @@ -303,12 +310,14 @@ void KX_GameObject::RemoveParent(KX_Scene *scene) } m_pPhysicsController1->RestoreDynamics(); } + // graphically, the object hasn't change place, no need to update m_pGraphicController } } void KX_GameObject::ProcessReplica(KX_GameObject* replica) { replica->m_pPhysicsController1 = NULL; + replica->m_pGraphicController = NULL; replica->m_pSGNode = NULL; replica->m_pClient_info = new KX_ClientObjectInfo(*m_pClient_info); replica->m_pClient_info->m_gameobject = replica; @@ -437,22 +446,18 @@ void KX_GameObject::RemoveMeshes() m_meshes.clear(); } - - -void KX_GameObject::UpdateNonDynas() -{ - if (m_pPhysicsController1) - { - m_pPhysicsController1->SetSumoTransform(true); - } -} - - - void KX_GameObject::UpdateTransform() { if (m_pPhysicsController1) - m_pPhysicsController1->SetSumoTransform(false); + // only update the transform of static object, dynamic object are handled differently + // note that for bullet, this does not even update the transform of static object + // but merely sets there collision flag to "kinematic" because the synchronization is + // done differently during physics simulation + m_pPhysicsController1->SetSumoTransform(true); + if (m_pGraphicController) + // update the culling tree + m_pGraphicController->SetGraphicTransform(); + } void KX_GameObject::UpdateTransformFunc(SG_IObject* node, void* gameobj, void* scene) @@ -832,6 +837,7 @@ void KX_GameObject::NodeSetLocalPosition(const MT_Point3& trans) } GetSGNode()->SetLocalPosition(trans); + } @@ -911,7 +917,7 @@ void KX_GameObject::NodeSetWorldPosition(const MT_Point3& trans) } -void KX_GameObject::NodeUpdateGS(double time,bool bInitiator) +void KX_GameObject::NodeUpdateGS(double time) { if (GetSGNode()) GetSGNode()->UpdateWorldData(time); @@ -1295,7 +1301,7 @@ int KX_GameObject::pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *a return 1; self->NodeSetLocalPosition(pos); - self->NodeUpdateGS(0.f,true); + self->NodeUpdateGS(0.f); return 0; } @@ -1319,10 +1325,10 @@ int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF if (PyMatTo(value, rot)) { self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f,true); + self->NodeUpdateGS(0.f); return 0; } - return 1; + PyErr_Clear(); if (PySequence_Size(value) == 4) { @@ -1331,7 +1337,7 @@ int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF { rot.setRotation(qrot); self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f,true); + self->NodeUpdateGS(0.f); return 0; } return 1; @@ -1344,7 +1350,7 @@ int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF { rot.setEuler(erot); self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f,true); + self->NodeUpdateGS(0.f); return 0; } return 1; @@ -1368,7 +1374,7 @@ int KX_GameObject::pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *at return 1; self->NodeSetLocalScale(scale); - self->NodeUpdateGS(0.f,true); + self->NodeUpdateGS(0.f); return 0; } @@ -1929,7 +1935,7 @@ PyObject* KX_GameObject::PySetOrientation(PyObject* self, PyObject* value) if (PyObject_IsMT_Matrix(value, 3) && PyMatTo(value, matrix)) { NodeSetLocalOrientation(matrix); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); Py_RETURN_NONE; } @@ -1938,7 +1944,7 @@ PyObject* KX_GameObject::PySetOrientation(PyObject* self, PyObject* value) { matrix.setRotation(quat); NodeSetLocalOrientation(matrix); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); Py_RETURN_NONE; } return NULL; @@ -1959,7 +1965,7 @@ PyObject* KX_GameObject::PyAlignAxisToVect(PyObject* self, PyObject* args) if (fac> 1.0) fac= 1.0; AlignAxisToVect(vect,axis,fac); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); Py_RETURN_NONE; } } @@ -1983,7 +1989,7 @@ PyObject* KX_GameObject::PySetPosition(PyObject* self, PyObject* value) if (PyVecTo(value, pos)) { NodeSetLocalPosition(pos); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); Py_RETURN_NONE; } @@ -1996,7 +2002,7 @@ PyObject* KX_GameObject::PySetWorldPosition(PyObject* self, PyObject* value) if (PyVecTo(value, pos)) { NodeSetWorldPosition(pos); - NodeUpdateGS(0.f,true); + NodeUpdateGS(0.f); Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index bc6b60102d6..9c7dda5e394 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -57,6 +57,7 @@ struct KX_ClientObjectInfo; class KX_RayCast; class RAS_MeshObject; class KX_IPhysicsController; +class PHY_IGraphicController; class PHY_IPhysicsEnvironment; struct Object; @@ -88,6 +89,7 @@ protected: bool m_bCulled; KX_IPhysicsController* m_pPhysicsController1; + PHY_IGraphicController* m_pGraphicController; // used for ray casting PHY_IPhysicsEnvironment* m_pPhysicsEnvironment; STR_String m_testPropName; @@ -350,6 +352,19 @@ public: } + /** + * @return a pointer to the graphic controller owner by this class + */ + PHY_IGraphicController* GetGraphicController() + { + return m_pGraphicController; + } + + void SetGraphicController(PHY_IGraphicController* graphiccontroller) + { + m_pGraphicController = graphiccontroller; + } + /** * @section Coordinate system manipulation functions */ @@ -367,8 +382,7 @@ public: void NodeUpdateGS( - double time, - bool bInitiator + double time ); const @@ -524,13 +538,6 @@ public: static void UpdateTransformFunc(SG_IObject* node, void* gameobj, void* scene); - /** - * Only update the transform if it's a non-dynamic object - */ - void - UpdateNonDynas( - ); - /** * Function to set IPO option at start of IPO */ diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index 97b4213b8bd..70ae0e4b937 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -412,7 +412,7 @@ else // Compute the number of logic frames to do each update (fixed tic bricks) - int frames =int(deltatime*m_ticrate); + int frames =int(deltatime*m_ticrate+1e-6); // if (frames>1) // printf("****************************************"); // printf("dt = %f, deltatime = %f, frames = %d\n",dt, deltatime,frames); @@ -465,12 +465,15 @@ else m_logger->StartLog(tc_network, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_NETWORK); scene->GetNetworkScene()->proceed(m_frameTime); - m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); - scene->UpdateParents(m_frameTime); + //m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + //SG_SetActiveStage(SG_STAGE_NETWORK_UPDATE); + //scene->UpdateParents(m_frameTime); m_logger->StartLog(tc_physics, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_PHYSICS1); // set Python hooks for each scene PHY_SetActiveEnvironment(scene->GetPhysicsEnvironment()); KX_SetActiveScene(scene); @@ -479,31 +482,37 @@ else // Update scenegraph after physics step. This maps physics calculations // into node positions. - m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); - scene->UpdateParents(m_frameTime); + //m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + //SG_SetActiveStage(SG_STAGE_PHYSICS1_UPDATE); + //scene->UpdateParents(m_frameTime); // Process sensors, and controllers m_logger->StartLog(tc_logic, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_CONTROLLER); scene->LogicBeginFrame(m_frameTime); // Scenegraph needs to be updated again, because Logic Controllers // can affect the local matrices. m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_CONTROLLER_UPDATE); scene->UpdateParents(m_frameTime); // Process actuators // Do some cleanup work for this logic frame m_logger->StartLog(tc_logic, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_ACTUATOR); scene->LogicUpdateFrame(m_frameTime, true); scene->LogicEndFrame(); // Actuators can affect the scenegraph m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_ACTUATOR_UPDATE); scene->UpdateParents(m_frameTime); m_logger->StartLog(tc_physics, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_PHYSICS2); scene->GetPhysicsEnvironment()->beginFrame(); // Perform physics calculations on the scene. This can involve @@ -511,6 +520,7 @@ else scene->GetPhysicsEnvironment()->proceedDeltaTime(m_frameTime,1.0/m_ticrate);//m_deltatimerealDeltaTime); m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_PHYSICS2_UPDATE); scene->UpdateParents(m_frameTime); @@ -574,6 +584,7 @@ else KX_SetActiveScene(scene); m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_PHYSICS1); scene->UpdateParents(m_clockTime); // Perform physics calculations on the scene. This can involve @@ -583,6 +594,7 @@ else // Update scenegraph after physics step. This maps physics calculations // into node positions. m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_PHYSICS2); scene->UpdateParents(m_clockTime); // Do some cleanup work for this logic frame @@ -591,6 +603,7 @@ else // Actuators can affect the scenegraph m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_ACTUATOR); scene->UpdateParents(m_clockTime); scene->setSuspendedTime(0.0); @@ -622,6 +635,7 @@ void KX_KetsjiEngine::Render() const RAS_FrameSettings &framesettings = firstscene->GetFramingType(); m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_RENDER); // hiding mouse cursor each frame // (came back when going out of focus and then back in again) @@ -1102,14 +1116,22 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam) cam->GetCameraLocation(), cam->GetCameraOrientation()); cam->SetModelviewMatrix(viewmat); - scene->UpdateMeshTransformations(); + //redundant, already done in + //scene->UpdateMeshTransformations(); // The following actually reschedules all vertices to be // redrawn. There is a cache between the actual rescheduling // and this call though. Visibility is imparted when this call // runs through the individual objects. + + m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_CULLING); + scene->CalculateVisibleMeshes(m_rasterizer,cam); + m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true); + SG_SetActiveStage(SG_STAGE_RENDER); + scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools); if (scene->GetPhysicsEnvironment()) @@ -1166,15 +1188,17 @@ void KX_KetsjiEngine::AddScene(KX_Scene* scene) void KX_KetsjiEngine::PostProcessScene(KX_Scene* scene) { bool override_camera = (m_overrideCam && (scene->GetName() == m_overrideSceneName)); - - // if there is no activecamera, or the camera is being - // overridden we need to construct a temporarily camera + + SG_SetActiveStage(SG_STAGE_SCENE); + + // if there is no activecamera, or the camera is being + // overridden we need to construct a temporarily camera if (!scene->GetActiveCamera() || override_camera) { KX_Camera* activecam = NULL; RAS_CameraData camdata = RAS_CameraData(); - activecam = new KX_Camera(scene,KX_Scene::m_callbacks,camdata, false); + activecam = new KX_Camera(scene,KX_Scene::m_callbacks,camdata); activecam->SetName("__default__cam__"); // set transformation @@ -1186,11 +1210,11 @@ void KX_KetsjiEngine::PostProcessScene(KX_Scene* scene) activecam->NodeSetLocalPosition(camtrans.getOrigin()); activecam->NodeSetLocalOrientation(camtrans.getBasis()); - activecam->NodeUpdateGS(0,true); + activecam->NodeUpdateGS(0); } else { activecam->NodeSetLocalPosition(MT_Point3(0.0, 0.0, 0.0)); activecam->NodeSetLocalOrientation(MT_Vector3(0.0, 0.0, 0.0)); - activecam->NodeUpdateGS(0,true); + activecam->NodeUpdateGS(0); } scene->AddCamera(activecam); diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 7b5b77ccacf..f996f86d751 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -159,7 +159,7 @@ void KX_LightObject::BindShadowBuffer(RAS_IRasterizer *ras, KX_Camera *cam, MT_T cam->NodeSetLocalPosition(camtrans.getOrigin()); cam->NodeSetLocalOrientation(camtrans.getBasis()); - cam->NodeUpdateGS(0,true); + cam->NodeUpdateGS(0); /* setup rasterizer transformations */ ras->SetProjectionMatrix(projectionmat); diff --git a/source/gameengine/Ketsji/KX_MotionState.cpp b/source/gameengine/Ketsji/KX_MotionState.cpp index 15f100af915..00d9a32eb38 100644 --- a/source/gameengine/Ketsji/KX_MotionState.cpp +++ b/source/gameengine/Ketsji/KX_MotionState.cpp @@ -44,7 +44,7 @@ KX_MotionState::~KX_MotionState() void KX_MotionState::getWorldPosition(float& posX,float& posY,float& posZ) { - MT_Point3 pos = m_node->GetWorldPosition(); + const MT_Point3& pos = m_node->GetWorldPosition(); posX = pos[0]; posY = pos[1]; posZ = pos[2]; @@ -52,7 +52,7 @@ void KX_MotionState::getWorldPosition(float& posX,float& posY,float& posZ) void KX_MotionState::getWorldScaling(float& scaleX,float& scaleY,float& scaleZ) { - MT_Vector3 scale = m_node->GetWorldScaling(); + const MT_Vector3& scale = m_node->GetWorldScaling(); scaleX = scale[0]; scaleY = scale[1]; scaleZ = scale[2]; @@ -60,17 +60,23 @@ void KX_MotionState::getWorldScaling(float& scaleX,float& scaleY,float& scaleZ) void KX_MotionState::getWorldOrientation(float& quatIma0,float& quatIma1,float& quatIma2,float& quatReal) { - MT_Quaternion orn = m_node->GetWorldOrientation().getRotation(); + MT_Quaternion& orn = m_node->GetWorldOrientation().getRotation(); quatIma0 = orn[0]; quatIma1 = orn[1]; quatIma2 = orn[2]; quatReal = orn[3]; } +void KX_MotionState::getWorldOrientation(float* ori) +{ + const MT_Matrix3x3& mat = m_node->GetWorldOrientation(); + mat.getValue(ori); +} + void KX_MotionState::setWorldPosition(float posX,float posY,float posZ) { m_node->SetLocalPosition(MT_Point3(posX,posY,posZ)); - m_node->SetWorldPosition(MT_Point3(posX,posY,posZ)); + //m_node->SetWorldPosition(MT_Point3(posX,posY,posZ)); } void KX_MotionState::setWorldOrientation(float quatIma0,float quatIma1,float quatIma2,float quatReal) @@ -82,13 +88,15 @@ void KX_MotionState::setWorldOrientation(float quatIma0,float quatIma1,float qua orn[3] = quatReal; m_node->SetLocalOrientation(orn); - m_node->SetWorldOrientation(orn); + //m_node->SetWorldOrientation(orn); } void KX_MotionState::calculateWorldTransformations() { - m_node->ComputeWorldTransforms(NULL); + //Not needed, will be done in KX_Scene::UpdateParents() after the physics simulation + //bool parentUpdated = false; + //m_node->ComputeWorldTransforms(NULL, parentUpdated); } diff --git a/source/gameengine/Ketsji/KX_MotionState.h b/source/gameengine/Ketsji/KX_MotionState.h index c83af664817..7ba3ca2f85c 100644 --- a/source/gameengine/Ketsji/KX_MotionState.h +++ b/source/gameengine/Ketsji/KX_MotionState.h @@ -44,6 +44,7 @@ public: virtual void getWorldOrientation(float& quatIma0,float& quatIma1,float& quatIma2,float& quatReal); virtual void setWorldPosition(float posX,float posY,float posZ); virtual void setWorldOrientation(float quatIma0,float quatIma1,float quatIma2,float quatReal); + virtual void getWorldOrientation(float* ori); virtual void calculateWorldTransformations(); }; diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index cd753210184..b9d1939e5db 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -127,13 +127,10 @@ CValue* KX_NearSensor::GetReplica() } } - //static_cast(m_eventmgr)->RegisterSensor(this); - //todo: make sure replication works fine - //>m_sumoObj = new SM_Object(DT_NewSphere(0.0),NULL,NULL,NULL); - //replica->m_sumoObj->setMargin(m_Margin); - //replica->m_sumoObj->setClientObject(replica->m_client_info); - - ((KX_GameObject*)replica->GetParent())->GetSGNode()->ComputeWorldTransforms(NULL); + //Wrong: the parent object could be a child, this code works only if it is a root parent. + //Anyway, at this stage, the parent object is already synchronized, nothing to do. + //bool parentUpdated = false; + //((KX_GameObject*)replica->GetParent())->GetSGNode()->ComputeWorldTransforms(NULL, parentUpdated); replica->SynchronizeTransform(); return replica; @@ -154,8 +151,10 @@ void KX_NearSensor::ReParent(SCA_IObject* parent) client_info->m_sensors.push_back(this); SCA_ISensor::ReParent(parent); */ - ((KX_GameObject*)GetParent())->GetSGNode()->ComputeWorldTransforms(NULL); - SynchronizeTransform(); + //Not needed, was done in GetReplica() already + //bool parentUpdated = false; + //((KX_GameObject*)GetParent())->GetSGNode()->ComputeWorldTransforms(NULL,parentUpdated); + //SynchronizeTransform(); SCA_ISensor::ReParent(parent); } diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index 355ac89a926..b9abe69633e 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -100,8 +100,9 @@ CValue* KX_RadarSensor::GetReplica() //>m_sumoObj = new SM_Object(DT_NewCone(m_coneradius, m_coneheight),NULL,NULL,NULL); //replica->m_sumoObj->setMargin(m_Margin); //replica->m_sumoObj->setClientObject(replica->m_client_info); - - ((KX_GameObject*)replica->GetParent())->GetSGNode()->ComputeWorldTransforms(NULL); + //Wrong: see KX_TouchSensor + //bool parentUpdated = false; + //((KX_GameObject*)replica->GetParent())->GetSGNode()->ComputeWorldTransforms(NULL,parentUpdated); replica->SynchronizeTransform(); return replica; diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp index 151270cbd68..0e7571031e8 100644 --- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp +++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp @@ -57,7 +57,8 @@ New(Bone* bone KX_BoneParentRelation:: UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ){ MT_assert(child != NULL); @@ -67,6 +68,8 @@ UpdateChildCoordinates( const MT_Vector3 & child_scale = child->GetLocalScale(); const MT_Point3 & child_pos = child->GetLocalPosition(); const MT_Matrix3x3 & child_rotation = child->GetLocalOrientation(); + // we don't know if the armature has been updated or not, assume yes + parentUpdated = true; // the childs world locations which we will update. @@ -122,7 +125,7 @@ UpdateChildCoordinates( else { child->SetWorldFromLocalTransform(); } - + child->SetModified(false); return valid_parent_transform; } diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h index 2a19d8a1784..c9baf228855 100644 --- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h +++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h @@ -82,7 +82,8 @@ public : bool UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ); /** diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp index 0729ec8a902..87ff3b53911 100644 --- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp +++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp @@ -51,13 +51,20 @@ New( KX_NormalParentRelation:: UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ){ MT_assert(child != NULL); + if (!parentUpdated && !child->IsModified()) + return false; + + parentUpdated = true; + if (parent==NULL) { /* Simple case */ child->SetWorldFromLocalTransform(); - return false; + child->SetModified(false); + return true; //false; } else { // the childs world locations which we will update. @@ -68,6 +75,7 @@ UpdateChildCoordinates( child->SetWorldScale(p_world_scale * child->GetLocalScale()); child->SetWorldOrientation(p_world_rotation * child->GetLocalOrientation()); child->SetWorldPosition(p_world_pos + p_world_scale * (p_world_rotation * child->GetLocalPosition())); + child->SetModified(false); return true; } } @@ -112,10 +120,15 @@ New( KX_VertexParentRelation:: UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ){ MT_assert(child != NULL); + + if (!parentUpdated && !child->IsModified()) + return false; + child->SetWorldScale(child->GetLocalScale()); if (parent) @@ -124,7 +137,8 @@ UpdateChildCoordinates( child->SetWorldPosition(child->GetLocalPosition()); child->SetWorldOrientation(child->GetLocalOrientation()); - return parent != NULL; + child->SetModified(false); + return true; //parent != NULL; } /** @@ -172,10 +186,14 @@ New( KX_SlowParentRelation:: UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ){ MT_assert(child != NULL); + // the child will move even if the parent is not + parentUpdated = true; + const MT_Vector3 & child_scale = child->GetLocalScale(); const MT_Point3 & child_pos = child->GetLocalPosition(); const MT_Matrix3x3 & child_rotation = child->GetLocalOrientation(); @@ -252,8 +270,9 @@ UpdateChildCoordinates( child->SetWorldScale(child_w_scale); child->SetWorldPosition(child_w_pos); child->SetWorldOrientation(child_w_rotation); + child->SetModified(false); - return parent != NULL; + return true; //parent != NULL; } /** diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h index faa650106c8..d8fb9211f21 100644 --- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h +++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h @@ -71,7 +71,8 @@ public : bool UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ); /** @@ -115,7 +116,8 @@ public : bool UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ); /** @@ -166,7 +168,8 @@ public : bool UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ); /** diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 04d6bd75f92..7eed1cc387b 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -76,7 +76,9 @@ #include "NG_NetworkScene.h" #include "PHY_IPhysicsEnvironment.h" #include "KX_IPhysicsController.h" +#include "PHY_IGraphicController.h" #include "KX_BlenderSceneConverter.h" +#include "KX_MotionState.h" #include "BL_ShapeDeformer.h" #include "BL_DeformableGameObject.h" @@ -133,6 +135,7 @@ KX_Scene::KX_Scene(class SCA_IInputDevice* keyboarddevice, m_suspendedtime = 0.0; m_suspendeddelta = 0.0; + m_dbvt_culling = false; m_activity_culling = false; m_suspend = false; m_isclearingZbuffer = true; @@ -407,6 +410,13 @@ void KX_Scene::RemoveNodeDestructObject(class SG_IObject* node,class CValue* gam // will in any case be deleted. This ensures that the object will not try to use the node // when it is finally deleted (see KX_GameObject destructor) orgobj->SetSGNode(NULL); + PHY_IGraphicController* ctrl = orgobj->GetGraphicController(); + if (ctrl) + { + // a graphic controller is set, we must delete it as the node will be deleted + delete ctrl; + orgobj->SetGraphicController(NULL); + } } if (node) delete node; @@ -485,7 +495,14 @@ KX_GameObject* KX_Scene::AddNodeReplicaObject(class SG_IObject* node, class CVal replicanode->AddSGController(replicacontroller); } } - + // replicate graphic controller + if (orgobj->GetGraphicController()) + { + PHY_IMotionState* motionstate = new KX_MotionState(newobj->GetSGNode()); + PHY_IGraphicController* newctrl = orgobj->GetGraphicController()->GetReplica(motionstate); + newctrl->setNewClientInfo(newobj->getClientInfo()); + newobj->SetGraphicController(newctrl); + } return newobj; } @@ -792,6 +809,24 @@ SCA_IObject* KX_Scene::AddReplicaObject(class CValue* originalobject, replica->GetSGNode()->AddChild(childreplicanode); } + // At this stage all the objects in the hierarchy have been duplicated, + // we can update the scenegraph, we need it for the duplication of logic + MT_Point3 newpos = ((KX_GameObject*) parentobject)->NodeGetWorldPosition(); + replica->NodeSetLocalPosition(newpos); + + MT_Matrix3x3 newori = ((KX_GameObject*) parentobject)->NodeGetWorldOrientation(); + replica->NodeSetLocalOrientation(newori); + + // get the rootnode's scale + MT_Vector3 newscale = parentobj->GetSGNode()->GetRootSGParent()->GetLocalScale(); + + // set the replica's relative scale with the rootnode's scale + replica->NodeSetRelativeScale(newscale); + + replica->GetSGNode()->UpdateWorldData(0); + replica->GetSGNode()->SetBBox(originalobj->GetSGNode()->BBox()); + replica->GetSGNode()->SetRadius(originalobj->GetSGNode()->Radius()); + // now replicate logic vector::iterator git; for (git = m_logicHierarchicalGameObjects.begin();!(git==m_logicHierarchicalGameObjects.end());++git) @@ -814,21 +849,6 @@ SCA_IObject* KX_Scene::AddReplicaObject(class CValue* originalobject, ReplicateLogic((*git)); } - MT_Point3 newpos = ((KX_GameObject*) parentobject)->NodeGetWorldPosition(); - replica->NodeSetLocalPosition(newpos); - - MT_Matrix3x3 newori = ((KX_GameObject*) parentobject)->NodeGetWorldOrientation(); - replica->NodeSetLocalOrientation(newori); - - // get the rootnode's scale - MT_Vector3 newscale = parentobj->GetSGNode()->GetRootSGParent()->GetLocalScale(); - - // set the replica's relative scale with the rootnode's scale - replica->NodeSetRelativeScale(newscale); - - replica->GetSGNode()->UpdateWorldData(0); - replica->GetSGNode()->SetBBox(originalobj->GetSGNode()->BBox()); - replica->GetSGNode()->SetRadius(originalobj->GetSGNode()->Radius()); // check if there are objects with dupligroup in the hierarchy vector duplilist; for (git = m_logicHierarchicalGameObjects.begin();!(git==m_logicHierarchicalGameObjects.end());++git) @@ -1163,7 +1183,6 @@ void KX_Scene::UpdateMeshTransformations() { KX_GameObject* gameobj = (KX_GameObject*)m_objectlist->GetValue(i); gameobj->GetOpenGLMatrix(); -// gameobj->UpdateNonDynas(); } } @@ -1298,21 +1317,46 @@ void KX_Scene::MarkVisible(RAS_IRasterizer* rasty, KX_GameObject* gameobj,KX_Cam } } +void KX_Scene::PhysicsCullingCallback(KX_ClientObjectInfo* objectInfo, void* cullingInfo) +{ + KX_GameObject* gameobj = objectInfo->m_gameobject; + if (!gameobj->GetVisible()) + // ideally, invisible objects should be removed from the culling tree temporarily + return; + if(((CullingInfo*)cullingInfo)->m_layer && !(gameobj->GetLayer() & ((CullingInfo*)cullingInfo)->m_layer)) + // used for shadow: object is not in shadow layer + return; + + // make object visible + gameobj->SetCulled(false); + gameobj->UpdateBuckets(false); +} + void KX_Scene::CalculateVisibleMeshes(RAS_IRasterizer* rasty,KX_Camera* cam, int layer) { -// FIXME: When tree is operational -#if 1 - // do this incrementally in the future - for (int i = 0; i < m_objectlist->GetCount(); i++) + bool dbvt_culling = false; + if (m_dbvt_culling) { - MarkVisible(rasty, static_cast(m_objectlist->GetValue(i)), cam, layer); + // test culling through Bullet + PHY__Vector4 planes[5]; + // get the clip planes + MT_Vector4* cplanes = cam->GetNormalizedClipPlanes(); + // and convert + planes[0].setValue(cplanes[0].getValue()); + planes[1].setValue(cplanes[1].getValue()); + planes[2].setValue(cplanes[2].getValue()); + planes[3].setValue(cplanes[3].getValue()); + planes[4].setValue(cplanes[5].getValue()); + CullingInfo info(layer); + dbvt_culling = m_physicsEnvironment->cullingTest(PhysicsCullingCallback,&info,planes,5); + } + if (!dbvt_culling) { + // the physics engine couldn't help us, do it the hard way + for (int i = 0; i < m_objectlist->GetCount(); i++) + { + MarkVisible(rasty, static_cast(m_objectlist->GetValue(i)), cam, layer); + } } -#else - if (cam->GetFrustumCulling()) - MarkVisible(m_objecttree, rasty, cam, layer); - else - MarkSubTreeVisible(m_objecttree, rasty, true, cam, layer); -#endif } // logic stuff @@ -1393,7 +1437,7 @@ void KX_Scene::UpdateParents(double curtime) for (int i=0; iGetCount(); i++) { KX_GameObject* parentobj = (KX_GameObject*)GetRootParentList()->GetValue(i); - parentobj->NodeUpdateGS(curtime,true); + parentobj->NodeUpdateGS(curtime); } } @@ -1588,6 +1632,7 @@ PyAttributeDef KX_Scene::Attributes[] = { KX_PYATTRIBUTE_BOOL_RO("suspended", KX_Scene, m_suspend), KX_PYATTRIBUTE_BOOL_RO("activity_culling", KX_Scene, m_activity_culling), KX_PYATTRIBUTE_FLOAT_RW("activity_culling_radius", 0.5f, FLT_MAX, KX_Scene, m_activity_box_radius), + KX_PYATTRIBUTE_BOOL_RO("dbvt_culling", KX_Scene, m_dbvt_culling), KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_Scene, pyattr_get_dir_dict), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index df51fcec8f7..9f05ddf70c2 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -85,6 +85,8 @@ class RAS_IRenderTools; class SCA_JoystickManager; class btCollisionShape; class KX_BlenderSceneConverter; +struct KX_ClientObjectInfo; + /** * The KX_Scene holds all data for an independent scene. It relates * KX_Objects to the specific objects in the modules. @@ -92,6 +94,12 @@ class KX_BlenderSceneConverter; class KX_Scene : public PyObjectPlus, public SCA_IScene { Py_Header; + + struct CullingInfo { + int m_layer; + CullingInfo(int layer) : m_layer(layer) {} + }; + protected: RAS_BucketManager* m_bucketmanager; CListValue* m_tempObjectList; @@ -251,6 +259,11 @@ protected: */ bool m_activity_culling; + /** + * Toggle to enable or disable culling via DBVT broadphase of Bullet. + */ + bool m_dbvt_culling; + /** * The framing settings used by this scene */ @@ -269,6 +282,7 @@ protected: void MarkVisible(SG_Tree *node, RAS_IRasterizer* rasty, KX_Camera*cam,int layer=0); void MarkSubTreeVisible(SG_Tree *node, RAS_IRasterizer* rasty, bool visible, KX_Camera*cam,int layer=0); void MarkVisible(RAS_IRasterizer* rasty, KX_GameObject* gameobj, KX_Camera*cam, int layer=0); + static void PhysicsCullingCallback(KX_ClientObjectInfo* objectInfo, void* cullingInfo); double m_suspendedtime; double m_suspendeddelta; @@ -530,6 +544,9 @@ public: bool IsSuspended(); bool IsClearingZBuffer(); void EnableZBufferClearing(bool isclearingZbuffer); + // use of DBVT tree for camera culling + void SetDbvtCameraCulling(bool b) { m_dbvt_culling = b; }; + bool GetDbvtCameraCulling() { return m_dbvt_culling; }; void SetSceneConverter(class KX_BlenderSceneConverter* sceneConverter); diff --git a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h index dcc87d614c0..e4aaef1803d 100644 --- a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h +++ b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h @@ -55,6 +55,7 @@ public: virtual void removeConstraint(void * constraintid); virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback,float fromX,float fromY,float fromZ, float toX,float toY,float toZ); + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/Bullet/CcdGraphicController.cpp b/source/gameengine/Physics/Bullet/CcdGraphicController.cpp new file mode 100644 index 00000000000..caf18fd28ba --- /dev/null +++ b/source/gameengine/Physics/Bullet/CcdGraphicController.cpp @@ -0,0 +1,112 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#include "CcdPhysicsEnvironment.h" +#include "CcdGraphicController.h" +#include "btBulletDynamicsCommon.h" +#include "MT_Point3.h" + + +CcdGraphicController::CcdGraphicController (CcdPhysicsEnvironment* phyEnv, PHY_IMotionState* motionState) : + m_localAabbMin(0.f, 0.f, 0.f), + m_localAabbMax(0.f, 0.f, 0.f), + m_motionState(motionState), + m_phyEnv(phyEnv), + m_handle(NULL), + m_newClientInfo(NULL) +{ +} + +CcdGraphicController::~CcdGraphicController() +{ + if (m_phyEnv) + m_phyEnv->removeCcdGraphicController(this); + + if (m_motionState) + delete m_motionState; +} + +void CcdGraphicController::setLocalAabb(const btVector3& aabbMin,const btVector3& aabbMax) +{ + m_localAabbMin = aabbMin; + m_localAabbMax = aabbMax; + SetGraphicTransform(); +} + +void CcdGraphicController::setLocalAabb(const MT_Point3& aabbMin,const MT_Point3& aabbMax) +{ + m_localAabbMin = btVector3(aabbMin[0],aabbMin[1],aabbMin[2]); + m_localAabbMax = btVector3(aabbMax[0],aabbMax[1],aabbMax[2]); + SetGraphicTransform(); +} + + +void CcdGraphicController::getAabb(btVector3& aabbMin, btVector3& aabbMax) +{ + btVector3 pos; + btVector3 scale; + float ori[12]; + m_motionState->getWorldPosition(pos.m_floats[0],pos.m_floats[1],pos.m_floats[2]); + m_motionState->getWorldScaling(scale.m_floats[0],scale.m_floats[1],scale.m_floats[2]); + m_motionState->getWorldOrientation(ori); + btMatrix3x3 rot(ori[0], ori[4], ori[8], + ori[1], ori[5], ori[9], + ori[2], ori[6], ori[10]); + + btVector3 localAabbMin = m_localAabbMin; + btVector3 localAabbMax = m_localAabbMax; + btVector3 tmpAabbMin = m_localAabbMin * scale; + btVector3 tmpAabbMax = m_localAabbMax * scale; + + localAabbMin[0] = (scale.getX() >= 0.) ? tmpAabbMin[0] : tmpAabbMax[0]; + localAabbMin[1] = (scale.getY() >= 0.) ? tmpAabbMin[1] : tmpAabbMax[1]; + localAabbMin[2] = (scale.getZ() >= 0.) ? tmpAabbMin[2] : tmpAabbMax[2]; + localAabbMax[0] = (scale.getX() <= 0.) ? tmpAabbMin[0] : tmpAabbMax[0]; + localAabbMax[1] = (scale.getY() <= 0.) ? tmpAabbMin[1] : tmpAabbMax[1]; + localAabbMax[2] = (scale.getZ() <= 0.) ? tmpAabbMin[2] : tmpAabbMax[2]; + + btVector3 localHalfExtents = btScalar(0.5)*(localAabbMax-localAabbMin); + btVector3 localCenter = btScalar(0.5)*(localAabbMax+localAabbMin); + + btMatrix3x3 abs_b = rot.absolute(); + btVector3 center = rot*localCenter + pos; + btVector3 extent = abs_b*localHalfExtents; + aabbMin = center - extent; + aabbMax = center + extent; +} + +bool CcdGraphicController::SetGraphicTransform() +{ + if (!m_handle) + return false; + btVector3 aabbMin; + btVector3 aabbMax; + getAabb(aabbMin, aabbMax); + // update Aabb in broadphase + m_phyEnv->getCullingTree()->setAabb(m_handle,aabbMin,aabbMax,NULL); + return true; +} + +PHY_IGraphicController* CcdGraphicController::GetReplica(class PHY_IMotionState* motionState) +{ + CcdGraphicController* replica = new CcdGraphicController(*this); + replica->m_motionState = motionState; + replica->m_newClientInfo = NULL; + replica->m_handle = NULL; + m_phyEnv->addCcdGraphicController(replica); + return replica; +} + + diff --git a/source/gameengine/Physics/Bullet/CcdGraphicController.h b/source/gameengine/Physics/Bullet/CcdGraphicController.h new file mode 100644 index 00000000000..8faa0944313 --- /dev/null +++ b/source/gameengine/Physics/Bullet/CcdGraphicController.h @@ -0,0 +1,74 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + + +#ifndef BULLET2_GRAPHICCONTROLLER_H +#define BULLET2_GRAPHICCONTROLLER_H + +#include "PHY_IGraphicController.h" + +#include "btBulletDynamicsCommon.h" +#include "LinearMath/btTransform.h" + +#include "PHY_IMotionState.h" +#include "MT_Point3.h" + +class CcdPhysicsEnvironment; +class btCollisionObject; + +///CcdGraphicController is a graphic object that supports view frustrum culling and occlusion +class CcdGraphicController : public PHY_IGraphicController +{ +public: + CcdGraphicController(CcdPhysicsEnvironment* phyEnv, PHY_IMotionState* motionState); + + virtual ~CcdGraphicController(); + + void setLocalAabb(const btVector3& aabbMin,const btVector3& aabbMax); + void setLocalAabb(const MT_Point3& aabbMin,const MT_Point3& aabbMax); + + PHY_IMotionState* GetMotionState() { return m_motionState; } + void getAabb(btVector3& aabbMin, btVector3& aabbMax); + + virtual void setBroadphaseHandle(btBroadphaseProxy* handle) { m_handle = handle; } + virtual btBroadphaseProxy* getBroadphaseHandle() { return m_handle; } + + //////////////////////////////////// + // PHY_IGraphicController interface + //////////////////////////////////// + + /** + * Updates the Aabb based on the motion state + */ + virtual bool SetGraphicTransform(); + + // client info for culling + virtual void* getNewClientInfo() { return m_newClientInfo; } + virtual void setNewClientInfo(void* clientinfo) { m_newClientInfo = clientinfo; } + virtual PHY_IGraphicController* GetReplica(class PHY_IMotionState* motionstate); + +private: + // unscaled aabb corner + btVector3 m_localAabbMin; + btVector3 m_localAabbMax; + + PHY_IMotionState* m_motionState; + CcdPhysicsEnvironment* m_phyEnv; + btBroadphaseProxy* m_handle; + void* m_newClientInfo; + +}; + +#endif //BULLET2_PHYSICSCONTROLLER_H diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index bb2f53a1988..2283968801f 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -1245,6 +1245,22 @@ void DefaultMotionState::getWorldOrientation(float& quatIma0,float& quatIma1,flo quatReal = m_worldTransform.getRotation()[3]; } +void DefaultMotionState::getWorldOrientation(float* ori) +{ + *ori++ = m_worldTransform.getBasis()[0].x(); + *ori++ = m_worldTransform.getBasis()[1].x(); + *ori++ = m_worldTransform.getBasis()[1].x(); + *ori++ = 0.f; + *ori++ = m_worldTransform.getBasis()[0].y(); + *ori++ = m_worldTransform.getBasis()[1].y(); + *ori++ = m_worldTransform.getBasis()[1].y(); + *ori++ = 0.f; + *ori++ = m_worldTransform.getBasis()[0].z(); + *ori++ = m_worldTransform.getBasis()[1].z(); + *ori++ = m_worldTransform.getBasis()[1].z(); + *ori++ = 0.f; +} + void DefaultMotionState::setWorldPosition(float posX,float posY,float posZ) { btVector3 pos(posX,posY,posZ); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index 510454a7b63..245cde2baaa 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -544,6 +544,7 @@ class DefaultMotionState : public PHY_IMotionState virtual void setWorldPosition(float posX,float posY,float posZ); virtual void setWorldOrientation(float quatIma0,float quatIma1,float quatIma2,float quatReal); + virtual void getWorldOrientation(float* ori); virtual void calculateWorldTransformations(); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index dd21e58bd68..cef2f2477b7 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -18,6 +18,7 @@ subject to the following restrictions: #include "CcdPhysicsEnvironment.h" #include "CcdPhysicsController.h" +#include "CcdGraphicController.h" #include #include "btBulletDynamicsCommon.h" @@ -316,8 +317,10 @@ static void DrawAabb(btIDebugDraw* debugDrawer,const btVector3& from,const btVec -CcdPhysicsEnvironment::CcdPhysicsEnvironment(btDispatcher* dispatcher,btOverlappingPairCache* pairCache) -:m_numIterations(10), +CcdPhysicsEnvironment::CcdPhysicsEnvironment(bool useDbvtCulling,btDispatcher* dispatcher,btOverlappingPairCache* pairCache) +:m_cullingCache(NULL), +m_cullingTree(NULL), +m_numIterations(10), m_scalingPropagated(false), m_numTimeSubSteps(1), m_ccdMode(0), @@ -350,6 +353,11 @@ m_ownDispatcher(NULL) //m_broadphase = new btAxisSweep3(btVector3(-1000,-1000,-1000),btVector3(1000,1000,1000)); //m_broadphase = new btSimpleBroadphase(); m_broadphase = new btDbvtBroadphase(); + // avoid any collision in the culling tree + if (useDbvtCulling) { + m_cullingCache = new btNullPairCache(); + m_cullingTree = new btDbvtBroadphase(m_cullingCache); + } m_filterCallback = new CcdOverlapFilterCallBack(this); m_broadphase->getOverlappingPairCache()->setOverlapFilterCallback(m_filterCallback); @@ -364,7 +372,6 @@ m_ownDispatcher(NULL) m_gravity = btVector3(0.f,-10.f,0.f); m_dynamicsWorld->setGravity(m_gravity); - } void CcdPhysicsEnvironment::addCcdPhysicsController(CcdPhysicsController* ctrl) @@ -558,6 +565,41 @@ void CcdPhysicsEnvironment::refreshCcdPhysicsController(CcdPhysicsController* ct } } +void CcdPhysicsEnvironment::addCcdGraphicController(CcdGraphicController* ctrl) +{ + if (m_cullingTree) + { + btVector3 minAabb; + btVector3 maxAabb; + ctrl->getAabb(minAabb, maxAabb); + + ctrl->setBroadphaseHandle(m_cullingTree->createProxy( + minAabb, + maxAabb, + INVALID_SHAPE_PROXYTYPE, // this parameter is not used + ctrl, + 0, // this object does not collision with anything + 0, + NULL, // dispatcher => this parameter is not used + 0)); + + assert(ctrl->getBroadphaseHandle()); + } +} + +void CcdPhysicsEnvironment::removeCcdGraphicController(CcdGraphicController* ctrl) +{ + if (m_cullingTree) + { + btBroadphaseProxy* bp = ctrl->getBroadphaseHandle(); + if (bp) + { + m_cullingTree->destroyProxy(bp,NULL); + ctrl->setBroadphaseHandle(0); + } + } +} + void CcdPhysicsEnvironment::beginFrame() { @@ -593,10 +635,10 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep) (*it)->SynchronizeMotionStates(timeStep); } - for (it=m_controllers.begin(); it!=m_controllers.end(); it++) - { - (*it)->SynchronizeMotionStates(timeStep); - } + //for (it=m_controllers.begin(); it!=m_controllers.end(); it++) + //{ + // (*it)->SynchronizeMotionStates(timeStep); + //} for (i=0;idata; + // the client object is a graphic controller + CcdGraphicController* ctrl = static_cast(proxy->m_clientObject); + KX_ClientObjectInfo* info = (KX_ClientObjectInfo*)ctrl->getNewClientInfo(); + if (info) + (*m_clientCallback)(info, m_userData); + } +}; + +bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes) +{ + if (!m_cullingTree) + return false; + DbvtCullingCallback dispatcher(callback, userData); + btVector3 planes_n[5]; + btScalar planes_o[5]; + if (nplanes > 5) + nplanes = 5; + for (int i=0; im_sets[1].m_root,planes_n,planes_o,nplanes,dispatcher); + btDbvt::collideKDOP(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,nplanes,dispatcher); + return true; +} int CcdPhysicsEnvironment::getNumContactPoints() @@ -1211,6 +1297,13 @@ CcdPhysicsEnvironment::~CcdPhysicsEnvironment() if (NULL != m_broadphase) delete m_broadphase; + + if (NULL != m_cullingTree) + delete m_cullingTree; + + if (NULL != m_cullingCache) + delete m_cullingCache; + } diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h index 2f1f0bb254b..ddbcbe6b4d6 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h @@ -20,6 +20,7 @@ subject to the following restrictions: #include #include class CcdPhysicsController; +class CcdGraphicController; #include "LinearMath/btVector3.h" #include "LinearMath/btTransform.h" @@ -40,6 +41,7 @@ class btDispatcher; class WrapperVehicle; class btPersistentManifold; class btBroadphaseInterface; +struct btDbvtBroadphase; class btOverlappingPairCache; class btIDebugDraw; class PHY_IVehicle; @@ -58,7 +60,10 @@ protected: btIDebugDraw* m_debugDrawer; class btDefaultCollisionConfiguration* m_collisionConfiguration; - class btBroadphaseInterface* m_broadphase; + class btBroadphaseInterface* m_broadphase; // broadphase for dynamic world + // for culling only + btOverlappingPairCache* m_cullingCache; + struct btDbvtBroadphase* m_cullingTree; // broadphase for culling //solver iterations int m_numIterations; @@ -77,7 +82,7 @@ protected: void processFhSprings(double curTime,float timeStep); public: - CcdPhysicsEnvironment(btDispatcher* dispatcher=0, btOverlappingPairCache* pairCache=0); + CcdPhysicsEnvironment(bool useDbvtCulling, btDispatcher* dispatcher=0, btOverlappingPairCache* pairCache=0); virtual ~CcdPhysicsEnvironment(); @@ -167,6 +172,7 @@ protected: btTypedConstraint* getConstraintById(int constraintId); virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ); + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes); //Methods for gamelogic collision/physics callbacks @@ -200,7 +206,12 @@ protected: void refreshCcdPhysicsController(CcdPhysicsController* ctrl); + void addCcdGraphicController(CcdGraphicController* ctrl); + + void removeCcdGraphicController(CcdGraphicController* ctrl); + btBroadphaseInterface* getBroadphase(); + btDbvtBroadphase* getCullingTree() { return m_cullingTree; } btDispatcher* getDispatcher(); diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h index a92b1e7f4a6..fae1844d505 100644 --- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h +++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h @@ -70,6 +70,7 @@ public: } virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ); + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h index 65b07a7a0be..9942a367451 100644 --- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h +++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h @@ -76,6 +76,7 @@ public: } virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback,float fromX,float fromY,float fromZ, float toX,float toY,float toZ); + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/common/PHY_DynamicTypes.h b/source/gameengine/Physics/common/PHY_DynamicTypes.h index c5cf92b553a..7ce40001af7 100644 --- a/source/gameengine/Physics/common/PHY_DynamicTypes.h +++ b/source/gameengine/Physics/common/PHY_DynamicTypes.h @@ -19,12 +19,13 @@ subject to the following restrictions: - +struct KX_ClientObjectInfo; class PHY_Shape; struct PHY__Vector3 { float m_vec[4]; + operator const float* () const { return &m_vec[0]; @@ -34,6 +35,36 @@ struct PHY__Vector3 return &m_vec[0]; } }; + +struct PHY__Vector4 +{ + float m_vec[4]; + PHY__Vector4() {} + void setValue(const float *value) + { + m_vec[0] = *value++; + m_vec[1] = *value++; + m_vec[2] = *value++; + m_vec[3] = *value++; + } + void setValue(const double *value) + { + m_vec[0] = (float)(*value++); + m_vec[1] = (float)(*value++); + m_vec[2] = (float)(*value++); + m_vec[3] = (float)(*value++); + } + + operator const float* () const + { + return &m_vec[0]; + } + operator float* () + { + return &m_vec[0]; + } +}; + //typedef float PHY__Vector3[4]; enum @@ -59,7 +90,7 @@ enum void *client_object1, void *client_object2, const PHY_CollData *coll_data); - + typedef void (*PHY_CullingCallback)(KX_ClientObjectInfo* info, void* param); /// PHY_PhysicsType enumerates all possible Physics Entities. diff --git a/source/gameengine/Physics/common/PHY_IController.cpp b/source/gameengine/Physics/common/PHY_IController.cpp new file mode 100644 index 00000000000..47fe9a9eea8 --- /dev/null +++ b/source/gameengine/Physics/common/PHY_IController.cpp @@ -0,0 +1,39 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#include "PHY_IController.h" + +#ifdef HAVE_CONFIG_H +#include +#endif + +PHY_IController::~PHY_IController() +{ + +} + diff --git a/source/gameengine/Physics/common/PHY_IController.h b/source/gameengine/Physics/common/PHY_IController.h new file mode 100644 index 00000000000..45e93f9d24e --- /dev/null +++ b/source/gameengine/Physics/common/PHY_IController.h @@ -0,0 +1,53 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#ifndef PHY_ICONTROLLER_H +#define PHY_ICONTROLLER_H + +#include "PHY_DynamicTypes.h" + + + +/** + PHY_IController is the abstract simplified Interface to objects + controlled by the physics engine. This includes the physics objects + and the graphics object for view frustrum and occlusion culling. +*/ +class PHY_IController +{ + public: + + virtual ~PHY_IController(); + // clientinfo for raycasts for example + virtual void* getNewClientInfo()=0; + virtual void setNewClientInfo(void* clientinfo)=0; + +}; + +#endif //PHY_ICONTROLLER_H + diff --git a/source/gameengine/Physics/common/PHY_IGraphicController.cpp b/source/gameengine/Physics/common/PHY_IGraphicController.cpp new file mode 100644 index 00000000000..4dccecd3d29 --- /dev/null +++ b/source/gameengine/Physics/common/PHY_IGraphicController.cpp @@ -0,0 +1,39 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#include "PHY_IGraphicController.h" + +#ifdef HAVE_CONFIG_H +#include +#endif + +PHY_IGraphicController::~PHY_IGraphicController() +{ + +} + diff --git a/source/gameengine/Physics/common/PHY_IGraphicController.h b/source/gameengine/Physics/common/PHY_IGraphicController.h new file mode 100644 index 00000000000..36b8a978e87 --- /dev/null +++ b/source/gameengine/Physics/common/PHY_IGraphicController.h @@ -0,0 +1,56 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ +#ifndef PHY_IGRAPHICCONTROLLER_H +#define PHY_IGRAPHICCONTROLLER_H + +#include "PHY_IController.h" + + + +/** + PHY_IPhysicsController is the abstract simplified Interface to a physical object. + It contains the IMotionState and IDeformableMesh Interfaces. +*/ +class PHY_IGraphicController : public PHY_IController +{ + + public: + + virtual ~PHY_IGraphicController(); + /** + SynchronizeMotionStates ynchronizes dynas, kinematic and deformable entities (and do 'late binding') + */ + virtual bool SetGraphicTransform()=0; + + virtual PHY_IGraphicController* GetReplica(class PHY_IMotionState* motionstate) {return 0;} + +}; + +#endif //PHY_IGRAPHICCONTROLLER_H + diff --git a/source/gameengine/Physics/common/PHY_IMotionState.h b/source/gameengine/Physics/common/PHY_IMotionState.h index d759b0aeff4..64bb810ee7c 100644 --- a/source/gameengine/Physics/common/PHY_IMotionState.h +++ b/source/gameengine/Physics/common/PHY_IMotionState.h @@ -43,6 +43,8 @@ class PHY_IMotionState virtual void getWorldPosition(float& posX,float& posY,float& posZ)=0; virtual void getWorldScaling(float& scaleX,float& scaleY,float& scaleZ)=0; virtual void getWorldOrientation(float& quatIma0,float& quatIma1,float& quatIma2,float& quatReal)=0; + // ori = array 12 floats, [0..3] = first column + 0, [4..7] = second colum, [8..11] = third column + virtual void getWorldOrientation(float* ori)=0; virtual void setWorldPosition(float posX,float posY,float posZ)=0; virtual void setWorldOrientation(float quatIma0,float quatIma1,float quatIma2,float quatReal)=0; diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.h b/source/gameengine/Physics/common/PHY_IPhysicsController.h index 884e14cfb5a..6cba6fa88af 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsController.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsController.h @@ -29,7 +29,7 @@ #ifndef PHY_IPHYSICSCONTROLLER_H #define PHY_IPHYSICSCONTROLLER_H -#include "PHY_DynamicTypes.h" +#include "PHY_IController.h" @@ -37,7 +37,7 @@ PHY_IPhysicsController is the abstract simplified Interface to a physical object. It contains the IMotionState and IDeformableMesh Interfaces. */ -class PHY_IPhysicsController +class PHY_IPhysicsController : public PHY_IController { public: @@ -82,9 +82,7 @@ class PHY_IPhysicsController // dyna's that are rigidbody are free in orientation, dyna's with non-rigidbody are restricted virtual void setRigidBody(bool rigid)=0; - // clientinfo for raycasts for example - virtual void* getNewClientInfo()=0; - virtual void setNewClientInfo(void* clientinfo)=0; + virtual PHY_IPhysicsController* GetReplica() {return 0;} virtual void calcXform() =0; diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h index 226ba3a7e74..5edafe6b51e 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h @@ -142,6 +142,8 @@ class PHY_IPhysicsEnvironment virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ)=0; + //culling based on physical broad phase + virtual bool cullingTest(PHY_CullingCallback callback, void *userData, PHY__Vector4* planeNormals, int planeNumber) = 0; //Methods for gamelogic collision/physics callbacks //todo: diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp index f7938bb62e6..ec290f89d9e 100644 --- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp +++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp @@ -148,6 +148,10 @@ void RAS_BucketManager::RenderAlphaBuckets( while(sit->m_bucket->ActivateMaterial(cameratrans, rasty, rendertools)) sit->m_bucket->RenderMeshSlot(cameratrans, rasty, rendertools, *(sit->m_ms)); + + // make this mesh slot culled automatically for next frame + // it will be culled out by frustrum culling + sit->m_ms->SetCulled(true); } rasty->SetDepthMask(RAS_IRasterizer::KX_DEPTHMASK_ENABLED); @@ -170,6 +174,10 @@ void RAS_BucketManager::RenderSolidBuckets( while ((*bit)->ActivateMaterial(cameratrans, rasty, rendertools)) (*bit)->RenderMeshSlot(cameratrans, rasty, rendertools, *mit); + + // make this mesh slot culled automatically for next frame + // it will be culled out by frustrum culling + mit->SetCulled(true); } } diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.h b/source/gameengine/Rasterizer/RAS_FramingManager.h index 610bd13ff12..0a226ac30f9 100644 --- a/source/gameengine/Rasterizer/RAS_FramingManager.h +++ b/source/gameengine/Rasterizer/RAS_FramingManager.h @@ -163,6 +163,13 @@ struct RAS_FrameFrustum float x2,y2; }; +/* must match R_CULLING_... from DNA_scene_types.h */ +enum RAS_CullingMode +{ + RAS_CULLING_DBVT = 0, + RAS_CULLING_NORMAL, + RAS_CULLING_NONE +}; /** * @section RAS_FramingManager diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h index 475f01d549a..211770318ae 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h @@ -156,6 +156,7 @@ public: bool Join(RAS_MeshSlot *target, MT_Scalar distance); bool Equals(RAS_MeshSlot *target); bool IsCulled(); + void SetCulled(bool culled) { m_bCulled = culled; } }; /* Used by RAS_MeshObject, to point to it's slots in a bucket */ diff --git a/source/gameengine/SceneGraph/SG_BBox.cpp b/source/gameengine/SceneGraph/SG_BBox.cpp index a44262d04f7..66fcc5c7408 100644 --- a/source/gameengine/SceneGraph/SG_BBox.cpp +++ b/source/gameengine/SceneGraph/SG_BBox.cpp @@ -188,6 +188,13 @@ void SG_BBox::getaa(MT_Point3 *box, const MT_Transform &world) const *box++ = max; } +void SG_BBox::getmm(MT_Point3 *box, const MT_Transform &world) const +{ + const MT_Point3 min(world(m_min)), max(world(m_max)); + *box++ = min; + *box++ = max; +} + void SG_BBox::split(SG_BBox &left, SG_BBox &right) const { MT_Scalar sizex = m_max[0] - m_min[0]; diff --git a/source/gameengine/SceneGraph/SG_BBox.h b/source/gameengine/SceneGraph/SG_BBox.h index b7e8ff65865..c39ad268e25 100644 --- a/source/gameengine/SceneGraph/SG_BBox.h +++ b/source/gameengine/SceneGraph/SG_BBox.h @@ -122,6 +122,8 @@ public: */ void getaa(MT_Point3 *box, const MT_Transform &world) const; + void getmm(MT_Point3 *box, const MT_Transform &world) const; + void split(SG_BBox &left, SG_BBox &right) const; friend class SG_Tree; diff --git a/source/gameengine/SceneGraph/SG_IObject.cpp b/source/gameengine/SceneGraph/SG_IObject.cpp index d0bdac5c8f0..fbab4032a10 100644 --- a/source/gameengine/SceneGraph/SG_IObject.cpp +++ b/source/gameengine/SceneGraph/SG_IObject.cpp @@ -33,6 +33,8 @@ #include #endif +SG_Stage gSG_Stage = SG_STAGE_UNKNOWN; + SG_IObject:: SG_IObject( void* clientobj, diff --git a/source/gameengine/SceneGraph/SG_IObject.h b/source/gameengine/SceneGraph/SG_IObject.h index 7f6bdfbbb1c..9012b532059 100644 --- a/source/gameengine/SceneGraph/SG_IObject.h +++ b/source/gameengine/SceneGraph/SG_IObject.h @@ -31,6 +31,36 @@ #include +// used for debugging: stage of the game engine main loop at which a Scenegraph modification is done +enum SG_Stage +{ + SG_STAGE_UNKNOWN = 0, + SG_STAGE_NETWORK, + SG_STAGE_NETWORK_UPDATE, + SG_STAGE_PHYSICS1, + SG_STAGE_PHYSICS1_UPDATE, + SG_STAGE_CONTROLLER, + SG_STAGE_CONTROLLER_UPDATE, + SG_STAGE_ACTUATOR, + SG_STAGE_ACTUATOR_UPDATE, + SG_STAGE_PHYSICS2, + SG_STAGE_PHYSICS2_UPDATE, + SG_STAGE_SCENE, + SG_STAGE_RENDER, + SG_STAGE_CONVERTER, + SG_STAGE_CULLING, + SG_STAGE_MAX +}; + +extern SG_Stage gSG_Stage; + +inline void SG_SetActiveStage(SG_Stage stage) +{ + gSG_Stage = stage; +} + + + class SG_Controller; class SG_IObject; diff --git a/source/gameengine/SceneGraph/SG_Node.cpp b/source/gameengine/SceneGraph/SG_Node.cpp index 8de7ac83477..64d9019c86a 100644 --- a/source/gameengine/SceneGraph/SG_Node.cpp +++ b/source/gameengine/SceneGraph/SG_Node.cpp @@ -219,18 +219,19 @@ void SG_Node::RemoveChild(SG_Node* child) -void SG_Node::UpdateWorldData(double time) +void SG_Node::UpdateWorldData(double time, bool parentUpdated) { //if (!GetSGParent()) // return; - if (UpdateSpatialData(GetSGParent(),time)) + if (UpdateSpatialData(GetSGParent(),time,parentUpdated)) + // to update the ActivateUpdateTransformCallback(); // update children's worlddata for (NodeList::iterator it = m_children.begin();it!=m_children.end();++it) { - (*it)->UpdateWorldData(time); + (*it)->UpdateWorldData(time, parentUpdated); } } diff --git a/source/gameengine/SceneGraph/SG_Node.h b/source/gameengine/SceneGraph/SG_Node.h index ffaaad861e2..29943653a81 100644 --- a/source/gameengine/SceneGraph/SG_Node.h +++ b/source/gameengine/SceneGraph/SG_Node.h @@ -175,7 +175,8 @@ public: void UpdateWorldData( - double time + double time, + bool parentUpdated=false ); /** diff --git a/source/gameengine/SceneGraph/SG_ParentRelation.h b/source/gameengine/SceneGraph/SG_ParentRelation.h index 6507cb98519..8f45df09b27 100644 --- a/source/gameengine/SceneGraph/SG_ParentRelation.h +++ b/source/gameengine/SceneGraph/SG_ParentRelation.h @@ -69,7 +69,8 @@ public : bool UpdateChildCoordinates( SG_Spatial * child, - const SG_Spatial * parent + const SG_Spatial * parent, + bool& parentUpdated ) = 0; virtual diff --git a/source/gameengine/SceneGraph/SG_Spatial.cpp b/source/gameengine/SceneGraph/SG_Spatial.cpp index 99aeb3e72ee..2f3176816c6 100644 --- a/source/gameengine/SceneGraph/SG_Spatial.cpp +++ b/source/gameengine/SceneGraph/SG_Spatial.cpp @@ -55,7 +55,8 @@ SG_Spatial( m_parent_relation (NULL), m_bbox(MT_Point3(-1.0, -1.0, -1.0), MT_Point3(1.0, 1.0, 1.0)), - m_radius(1.0) + m_radius(1.0), + m_modified(true) { } @@ -101,6 +102,7 @@ SetParentRelation( ){ delete (m_parent_relation); m_parent_relation = relation; + m_modified = true; } @@ -114,7 +116,8 @@ SetParentRelation( SG_Spatial:: UpdateSpatialData( const SG_Spatial *parent, - double time + double time, + bool& parentUpdated ){ bool bComputesWorldTransform = false; @@ -135,14 +138,14 @@ UpdateSpatialData( // our world coordinates. if (!bComputesWorldTransform) - bComputesWorldTransform = ComputeWorldTransforms(parent); + bComputesWorldTransform = ComputeWorldTransforms(parent, parentUpdated); return bComputesWorldTransform; } -bool SG_Spatial::ComputeWorldTransforms(const SG_Spatial *parent) +bool SG_Spatial::ComputeWorldTransforms(const SG_Spatial *parent, bool& parentUpdated) { - return m_parent_relation->UpdateChildCoordinates(this,parent); + return m_parent_relation->UpdateChildCoordinates(this,parent,parentUpdated); } /** @@ -166,6 +169,7 @@ RelativeTranslate( m_localPosition += trans; } } + m_modified = true; } void @@ -174,6 +178,7 @@ SetLocalPosition( const MT_Point3& trans ){ m_localPosition = trans; + m_modified = true; } void @@ -194,6 +199,7 @@ RelativeScale( const MT_Vector3& scale ){ m_localScaling = m_localScaling * scale; + m_modified = true; } void @@ -202,6 +208,7 @@ SetLocalScale( const MT_Vector3& scale ){ m_localScaling = scale; + m_modified = true; } @@ -229,6 +236,7 @@ RelativeRotate( rot : (GetWorldOrientation().inverse() * rot * GetWorldOrientation())); + m_modified = true; } void @@ -236,6 +244,7 @@ SG_Spatial:: SetLocalOrientation(const MT_Matrix3x3& rot) { m_localRotation = rot; + m_modified = true; } diff --git a/source/gameengine/SceneGraph/SG_Spatial.h b/source/gameengine/SceneGraph/SG_Spatial.h index 6ccec2aa9c1..c2ed80d21b2 100644 --- a/source/gameengine/SceneGraph/SG_Spatial.h +++ b/source/gameengine/SceneGraph/SG_Spatial.h @@ -61,7 +61,7 @@ protected: SG_BBox m_bbox; MT_Scalar m_radius; - + bool m_modified; public: @@ -180,7 +180,7 @@ public: MT_Transform GetWorldTransform() const; - bool ComputeWorldTransforms( const SG_Spatial *parent); + bool ComputeWorldTransforms(const SG_Spatial *parent, bool& parentUpdated); /** * Bounding box functions. @@ -193,9 +193,14 @@ public: MT_Scalar Radius() const { return m_radius; } void SetRadius(MT_Scalar radius) { m_radius = radius; } + bool IsModified() { return m_modified; } protected: friend class SG_Controller; + friend class KX_BoneParentRelation; + friend class KX_VertexParentRelation; + friend class KX_SlowParentRelation; + friend class KX_NormalParentRelation; /** * Protected constructor this class is not @@ -223,8 +228,10 @@ protected: bool UpdateSpatialData( const SG_Spatial *parent, - double time + double time, + bool& parentUpdated ); + void SetModified(bool modified) { m_modified = modified; } }; From e063682ed3f8c7a9d6ead89371e3663feff4af3c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 7 Apr 2009 23:21:30 +0000 Subject: [PATCH 112/201] gcc wouldn't compile using a reference --- source/gameengine/Ketsji/KX_MotionState.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/gameengine/Ketsji/KX_MotionState.cpp b/source/gameengine/Ketsji/KX_MotionState.cpp index 00d9a32eb38..b4d58dccfdf 100644 --- a/source/gameengine/Ketsji/KX_MotionState.cpp +++ b/source/gameengine/Ketsji/KX_MotionState.cpp @@ -60,7 +60,7 @@ void KX_MotionState::getWorldScaling(float& scaleX,float& scaleY,float& scaleZ) void KX_MotionState::getWorldOrientation(float& quatIma0,float& quatIma1,float& quatIma2,float& quatReal) { - MT_Quaternion& orn = m_node->GetWorldOrientation().getRotation(); + MT_Quaternion orn = m_node->GetWorldOrientation().getRotation(); quatIma0 = orn[0]; quatIma1 = orn[1]; quatIma2 = orn[2]; From 4b77f9504c7f468fe3b3e91ab503b09b5f1e1a9e Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 08:22:03 +0000 Subject: [PATCH 113/201] Fixed scons and cmake after BGE scenegraph and culling improvements. --- source/gameengine/Physics/Bullet/CMakeLists.txt | 2 +- source/gameengine/Physics/Bullet/SConscript | 2 +- source/gameengine/Physics/common/CMakeLists.txt | 2 +- source/gameengine/Physics/common/SConscript | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/gameengine/Physics/Bullet/CMakeLists.txt b/source/gameengine/Physics/Bullet/CMakeLists.txt index 83b77db4efd..6bab9858011 100644 --- a/source/gameengine/Physics/Bullet/CMakeLists.txt +++ b/source/gameengine/Physics/Bullet/CMakeLists.txt @@ -24,7 +24,7 @@ # # ***** END GPL LICENSE BLOCK ***** -SET(SRC CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp) +SET(SRC CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp CcdGraphicController.cpp) SET(INC . diff --git a/source/gameengine/Physics/Bullet/SConscript b/source/gameengine/Physics/Bullet/SConscript index 868a4d66af0..f3b6549089d 100644 --- a/source/gameengine/Physics/Bullet/SConscript +++ b/source/gameengine/Physics/Bullet/SConscript @@ -1,7 +1,7 @@ #!/usr/bin/python Import ('env') -sources = 'CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp' +sources = 'CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp CcdGraphicController.cpp' incs = '. ../common #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer #source/blender/makesdna' diff --git a/source/gameengine/Physics/common/CMakeLists.txt b/source/gameengine/Physics/common/CMakeLists.txt index a28fabe0c3a..41b2687fe38 100644 --- a/source/gameengine/Physics/common/CMakeLists.txt +++ b/source/gameengine/Physics/common/CMakeLists.txt @@ -24,7 +24,7 @@ # # ***** END GPL LICENSE BLOCK ***** -SET(SRC PHY_IMotionState.cpp PHY_IPhysicsController.cpp PHY_IPhysicsEnvironment.cpp PHY_IVehicle.cpp) +SET(SRC PHY_IMotionState.cpp PHY_IController.cpp PHY_IPhysicsController.cpp PHY_IGraphicController.cpp PHY_IPhysicsEnvironment.cpp PHY_IVehicle.cpp) SET(INC . diff --git a/source/gameengine/Physics/common/SConscript b/source/gameengine/Physics/common/SConscript index 474536e1f76..05c6f17a4a0 100644 --- a/source/gameengine/Physics/common/SConscript +++ b/source/gameengine/Physics/common/SConscript @@ -1,7 +1,7 @@ #!/usr/bin/python Import ('env') -sources = 'PHY_IMotionState.cpp PHY_IPhysicsController.cpp PHY_IPhysicsEnvironment.cpp PHY_IVehicle.cpp' +sources = 'PHY_IMotionState.cpp PHY_IController.cpp PHY_IPhysicsController.cpp PHY_IGraphicController.cpp PHY_IPhysicsEnvironment.cpp PHY_IVehicle.cpp' incs = '. ../Dummy #intern/moto/include' From 2074128fadbfd58ea13a68cbccaa1f6771bbd710 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 15:06:20 +0000 Subject: [PATCH 114/201] Patch #18462: Fisheye (Dome) and Spherical Panoramic mode in BGE. User guide: http://wiki.blender.org/index.php/Dev:Source/GameEngine/Fisheye_Dome_Camera Fixed two bugs from original patch: - deleting a text will clear the warp field from Game framing settings - removed spurious black dots along the edge of the cube map in the gameplayer Known limitation: - resizing of the screen doesn't work in the gameplayer Known bugs: - Texture with reflexion are not rendered correctly - Spurious problems with light --- .../gameengine/ketsji/KX_ketsji.vcproj | 8 + source/blender/blenkernel/BKE_blender.h | 2 +- source/blender/blenkernel/BKE_scene.h | 2 + source/blender/blenkernel/intern/scene.c | 16 + source/blender/blenloader/intern/readfile.c | 26 +- source/blender/makesdna/DNA_scene_types.h | 9 + source/blender/src/buttons_scene.c | 17 +- source/blender/src/header_text.c | 1 + .../BlenderRoutines/BL_KetsjiEmbedStart.cpp | 4 + .../GamePlayer/ghost/GPG_Application.cpp | 5 + source/gameengine/Ketsji/KX_Dome.cpp | 1820 +++++++++++++++++ source/gameengine/Ketsji/KX_Dome.h | 183 ++ source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 127 +- source/gameengine/Ketsji/KX_KetsjiEngine.h | 9 + .../gameengine/Rasterizer/RAS_IRasterizer.h | 1 + .../RAS_OpenGLRasterizer.cpp | 6 +- 16 files changed, 2227 insertions(+), 9 deletions(-) create mode 100644 source/gameengine/Ketsji/KX_Dome.cpp create mode 100644 source/gameengine/Ketsji/KX_Dome.h diff --git a/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj b/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj index c425b5664ad..80c34bef223 100644 --- a/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj +++ b/projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj @@ -513,6 +513,10 @@ RelativePath="..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObjects.cpp" > + + @@ -802,6 +806,10 @@ RelativePath="..\..\..\source\gameengine\Ketsji\KX_ConvertPhysicsObject.h" > + + diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index db6d4762b17..d49a5425b61 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -41,7 +41,7 @@ struct ListBase; struct MemFile; #define BLENDER_VERSION 248 -#define BLENDER_SUBVERSION 3 +#define BLENDER_SUBVERSION 4 #define BLENDER_MINVERSION 245 #define BLENDER_MINSUBVERSION 15 diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 2bd528ab8c8..2c3ef42c021 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -86,5 +86,7 @@ int get_render_child_particle_number(struct RenderData *r, int num); int get_render_shadow_samples(struct RenderData *r, int samples); float get_render_aosss_error(struct RenderData *r, float error); +void free_dome_warp_text(struct Text *txt); + #endif diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 1727edc10fc..5def3577218 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -230,6 +230,11 @@ Scene *add_scene(char *name) sce->r.threads= 1; sce->r.stereomode = 1; // no stereo + sce->r.domeangle = 180; + sce->r.domemode = 1; + sce->r.domesize = 1.0f; + sce->r.domeres = 4; + sce->r.domeresbuf = 1.0f; sce->r.simplify_subsurf= 6; sce->r.simplify_particles= 1.0f; @@ -775,3 +780,14 @@ float get_render_aosss_error(RenderData *r, float error) return error; } +void free_dome_warp_text(struct Text *txt) +{ + Scene *scene; + + scene = G.main->scene.first; + while(scene) { + if (scene->r.dometext == txt) + scene->r.dometext = NULL; + scene = scene->id.next; + } +} \ No newline at end of file diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c2eaae011c8..06c8370bde2 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3531,7 +3531,9 @@ static void lib_link_scene(FileData *fd, Main *main) srl->mat_override= newlibadr_us(fd, sce->id.lib, srl->mat_override); srl->light_override= newlibadr_us(fd, sce->id.lib, srl->light_override); } - + /*Game Settings: Dome Warp Text*/ + sce->r.dometext= newlibadr_us(fd, sce->id.lib, sce->r.dometext); + sce->id.flag -= LIB_NEEDLINK; } @@ -8035,6 +8037,24 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } + if (main->versionfile < 248 || (main->versionfile == 248 && main->subversionfile < 4)) { + Scene *sce; + World *wrld; + + /* Dome (Fisheye) default parameters */ + for (sce= main->scene.first; sce; sce= sce->id.next) { + sce->r.domeangle = 180; + sce->r.domemode = 1; + sce->r.domesize = 1.0f; + sce->r.domeres = 4; + sce->r.domeresbuf = 1.0f; + } + /* DBVT culling by default */ + for(wrld=main->world.first; wrld; wrld= wrld->id.next) { + wrld->mode |= WO_DBVT_CAMERA_CULLING; + } + } + /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */ @@ -8841,7 +8861,9 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) expand_doit(fd, mainvar, srl->mat_override); expand_doit(fd, mainvar, srl->light_override); } - + + if(sce->r.dometext) + expand_doit(fd, mainvar, sce->r.dometext); } static void expand_camera(FileData *fd, Main *mainvar, Camera *ca) diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index b8a734b6e94..bf5b2ad3df5 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -45,6 +45,7 @@ struct World; struct Scene; struct Image; struct Group; +struct Text; struct bNodeTree; typedef struct Base { @@ -314,6 +315,14 @@ typedef struct RenderData { /* jpeg2000 */ short jp2_preset, jp2_depth; int rpad3; + + /* Dome variables */ + short domeres, domemode; + short domeangle, pad9; + float domesize; + float domeresbuf; + struct Text *dometext; + } RenderData; /* control render convert and shading engine */ diff --git a/source/blender/src/buttons_scene.c b/source/blender/src/buttons_scene.c index aa072285556..f026e5f4034 100644 --- a/source/blender/src/buttons_scene.c +++ b/source/blender/src/buttons_scene.c @@ -1766,13 +1766,13 @@ static uiBlock *edge_render_menu(void *arg_unused) static uiBlock *framing_render_menu(void *arg_unused) { uiBlock *block; - short yco = 190, xco = 0; + short yco = 267, xco = 0; int randomcolorindex = 1234; block= uiNewBlock(&curarea->uiblocks, "framing_options", UI_EMBOSS, UI_HELV, curarea->win); /* use this for a fake extra empy space around the buttons */ - uiDefBut(block, LABEL, 0, "", -5, -10, 295, 224, NULL, 0, 0, 0, 0, ""); + uiDefBut(block, LABEL, 0, "", -5, -10, 295, 300, NULL, 0, 0, 0, 0, ""); uiDefBut(block, LABEL, 0, "Framing:", xco, yco, 68,19, 0, 0, 0, 0, 0, ""); uiBlockBeginAlign(block); @@ -1814,6 +1814,7 @@ static uiBlock *framing_render_menu(void *arg_unused) * RAS_STEREO_ANAGLYPH 5 * RAS_STEREO_SIDEBYSIDE 6 * RAS_STEREO_VINTERLACE 7 + * RAS_STEREO_DOME 8 */ uiBlockBeginAlign(block); uiDefButS(block, ROW, 0, "No Stereo", xco, yco-=30, 88, 19, &(G.scene->r.stereomode), 7.0, 1.0, 0, 0, "Disables stereo"); @@ -1825,6 +1826,18 @@ static uiBlock *framing_render_menu(void *arg_unused) uiBlockEndAlign(block); + uiBlockBeginAlign(block); + uiDefButS(block, ROW, 0, "Dome", xco-=180, yco-=30, 88, 19, &(G.scene->r.stereomode), 7.0, 8.0, 0, 0, "Enables dome camera"); + uiDefButS(block, NUM, 0, "Ang:", xco+=90, yco, 88, 19, &G.scene->r.domeangle, 90.0, 250.0, 0, 0, "Angle (Aperture) of the Dome - it only works in mode 1"); + uiDefButS(block, NUM, 0, "Mode:", xco+=90, yco, 88, 19, &G.scene->r.domemode, 1.0, 3.0, 0, 0, "Dome mode - 1 fisheye, 2 truncated, 3 spherical panoramic"); + + uiDefButF(block, NUM, 0, "Size:", xco-=180, yco-=21, 88, 19, &G.scene->r.domesize, 0.5, 3.5, 0, 0, "Size adjustments"); + uiDefButS(block, NUM, 0, "Tes:", xco+=90, yco, 88, 19, &G.scene->r.domeres, 1.0, 8.0, 0, 0, "Tesselation level - 1 to 8"); + uiDefButF(block, NUM, 0, "Res:", xco+=90, yco, 88, 19, &G.scene->r.domeresbuf, 0.1, 1.0, 0, 0, "Buffer Resolution - decrease it to increase speed"); + + uiDefIDPoinBut(block, test_scriptpoin_but, ID_SCRIPT, 1, "Warp Data: ", xco-180,yco-=21,268, 19, &G.scene->r.dometext, "Custom Warp Mesh data file"); + uiBlockEndAlign(block); + uiBlockSetDirection(block, UI_TOP); return block; diff --git a/source/blender/src/header_text.c b/source/blender/src/header_text.c index 9268642db2f..050ff192df6 100644 --- a/source/blender/src/header_text.c +++ b/source/blender/src/header_text.c @@ -173,6 +173,7 @@ void do_text_buttons(unsigned short event) BPY_clear_bad_scriptlinks(text); BPY_free_pyconstraint_links(text); free_text_controllers(text); + free_dome_warp_text(text); #endif unlink_text(text); free_libblock(&G.main->text, text); diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index 1c91ad784ac..fee5a4ad899 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -373,6 +373,10 @@ extern "C" void StartKetsjiShell(struct ScrArea *area, initVideoTexture(); #endif + //initialize Dome Settings + if(blscene->r.stereomode == RAS_IRasterizer::RAS_STEREO_DOME) + ketsjiengine->InitDome(blscene->r.domesize, blscene->r.domeres, blscene->r.domemode, blscene->r.domeangle, blscene->r.domeresbuf, blscene->r.dometext); + if (sceneconverter) { // convert and add scene diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 3432d498981..6ff46ca8200 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -693,6 +693,11 @@ bool GPG_Application::startEngine(void) #ifdef WITH_FFMPEG initVideoTexture(); #endif + + //initialize Dome Settings + if(m_startScene->r.stereomode == RAS_IRasterizer::RAS_STEREO_DOME) + m_ketsjiengine->InitDome(m_startScene->r.domesize, m_startScene->r.domeres, m_startScene->r.domemode, m_startScene->r.domeangle, m_startScene->r.domeresbuf, m_startScene->r.dometext); + // Set the GameLogic.globalDict from marshal'd data, so we can // load new blend files and keep data in GameLogic.globalDict loadGamePythonConfig(m_pyGlobalDictString, m_pyGlobalDictString_Length); diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp new file mode 100644 index 00000000000..4ab0f93f687 --- /dev/null +++ b/source/gameengine/Ketsji/KX_Dome.cpp @@ -0,0 +1,1820 @@ +/* $Id$ +----------------------------------------------------------------------------- + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 Temple +Place - Suite 330, Boston, MA 02111-1307, USA, or go to +http://www.gnu.org/copyleft/lesser.txt. + +Contributor(s): Dalai Felinto + +This code is originally inspired on some of the ideas and codes from Paul Bourke. +Developed as part of a Research and Development project for SAT - La Société des arts technologiques. +----------------------------------------------------------------------------- +*/ + +#include "KX_Dome.h" + +#include +#include +#include + +#include "DNA_scene_types.h" +#include "RAS_CameraData.h" +#include "BLI_arithb.h" + +#include "GL/glew.h" +#include "GL/glu.h" + +// constructor +KX_Dome::KX_Dome ( + RAS_ICanvas* canvas, + /// rasterizer + RAS_IRasterizer* rasterizer, + /// render tools + RAS_IRenderTools* rendertools, + /// engine + KX_KetsjiEngine* engine, + + float size, //size for adjustments + short res, //resolution of the mesh + short mode, //mode - fisheye, truncated, warped, panoramic, ... + short angle, + float resbuf, //size adjustment of the buffer + struct Text* warptext + +): + m_canvas(canvas), + m_rasterizer(rasterizer), + m_rendertools(rendertools), + m_engine(engine), + m_drawingmode(engine->GetDrawType()), + m_size(size), + m_resolution(res), + m_mode(mode), + m_angle(angle), + m_resbuffer(resbuf), + canvaswidth(-1), canvasheight(-1), + dlistSupported(false) +{ + warp.usemesh = false; + + if (mode >= DOME_NUM_MODES) + m_mode = DOME_FISHEYE; + + if (warptext) // it there is a text data try to warp it + { + char *buf; + buf = txt_to_buf(warptext); + if (buf) + { + warp.usemesh = ParseWarpMesh(STR_String(buf)); + MEM_freeN(buf); + } + } + + //setting the viewport size + GLuint viewport[4]={0}; + glGetIntegerv(GL_VIEWPORT,(GLint *)viewport); + + SetViewPort(viewport); + + switch(m_mode){ + case DOME_FISHEYE: + if (m_angle <= 180){ + cubetop.resize(1); + cubebottom.resize(1); + cubeleft.resize(2); + cuberight.resize(2); + + CreateMeshDome180(); + m_numfaces = 4; + }else if (m_angle > 180){ + cubetop.resize(2); + cubebottom.resize(2); + cubeleft.resize(2); + cubefront.resize(2); + cuberight.resize(2); + + CreateMeshDome250(); + m_numfaces = 5; + } break; + case DOME_TRUNCATED: + cubetop.resize(1); + cubebottom.resize(1); + cubeleft.resize(2); + cuberight.resize(2); + + m_angle = 180; + CreateMeshDome180(); + m_numfaces = 4; + break; + case DOME_PANORAM_SPH: + cubeleft.resize(2); + cubeleftback.resize(2); + cuberight.resize(2); + cuberightback.resize(2); + cubetop.resize(2); + cubebottom.resize(2); + + m_angle = 360; + CreateMeshPanorama(); + m_numfaces = 6; + break; + } + + m_numimages =(warp.usemesh?m_numfaces+1:m_numfaces); + + CalculateCameraOrientation(); + + CreateGLImages(); + + dlistSupported = CreateDL(); +} + +// destructor +KX_Dome::~KX_Dome (void) +{ + GLuint m_numimages = m_numfaces; + + ClearGLImages(); + + if(dlistSupported) + glDeleteLists(dlistId, (GLsizei) m_numimages); +} + +void KX_Dome::SetViewPort(GLuint viewport[4]) +{ + if(canvaswidth != m_canvas->GetWidth() || canvasheight != m_canvas->GetHeight()) + { + m_viewport.SetLeft(viewport[0]); + m_viewport.SetBottom(viewport[1]); + m_viewport.SetRight(viewport[2]); + m_viewport.SetTop(viewport[3]); + + CalculateImageSize(); + } +} + +void KX_Dome::CreateGLImages(void) +{ + glGenTextures(m_numimages, (GLuint*)&domefacesId); + + for (int j=0;jGetWidth(); + canvasheight = m_canvas->GetHeight(); + + m_buffersize = (canvaswidth > canvasheight?canvasheight:canvaswidth); + m_buffersize *= m_resbuffer; //reduce buffer size for better performance + + int i = 0; + while ((1 << i) <= m_buffersize) + i++; + m_imagesize = (1 << i); + + if (warp.usemesh){ + warp.bufferwidth = canvaswidth; + warp.bufferheight = canvasheight; + + i = 0; + while ((1 << i) <= warp.bufferwidth) + i++; + warp.imagewidth = (1 << i); + + i = 0; + while ((1 << i) <= warp.bufferheight) + i++; + warp.imageheight = (1 << i); + } +} + +bool KX_Dome::CreateDL(){ + int i,j; + + dlistId = glGenLists((GLsizei) m_numimages); + if (dlistId != 0) { + if(m_mode == DOME_FISHEYE || m_mode == DOME_TRUNCATED){ + glNewList(dlistId, GL_COMPILE); + GLDrawTriangles(cubetop, nfacestop); + glEndList(); + + glNewList(dlistId+1, GL_COMPILE); + GLDrawTriangles(cubebottom, nfacesbottom); + glEndList(); + + glNewList(dlistId+2, GL_COMPILE); + GLDrawTriangles(cubeleft, nfacesleft); + glEndList(); + + glNewList(dlistId+3, GL_COMPILE); + GLDrawTriangles(cuberight, nfacesright); + glEndList(); + + if (m_angle > 180){ + glNewList(dlistId+4, GL_COMPILE); + GLDrawTriangles(cubefront, nfacesfront); + glEndList(); + } + } + else if (m_mode == DOME_PANORAM_SPH) + { + glNewList(dlistId, GL_COMPILE); + GLDrawTriangles(cubetop, nfacestop); + glEndList(); + + glNewList(dlistId+1, GL_COMPILE); + GLDrawTriangles(cubebottom, nfacesbottom); + glEndList(); + + glNewList(dlistId+2, GL_COMPILE); + GLDrawTriangles(cubeleft, nfacesleft); + glEndList(); + + glNewList(dlistId+3, GL_COMPILE); + GLDrawTriangles(cuberight, nfacesright); + glEndList(); + + glNewList(dlistId+4, GL_COMPILE); + GLDrawTriangles(cubeleftback, nfacesleftback); + glEndList(); + + glNewList(dlistId+5, GL_COMPILE); + GLDrawTriangles(cuberightback, nfacesrightback); + glEndList(); + } + + if(warp.usemesh){ + glNewList((dlistId + m_numfaces), GL_COMPILE); + GLDrawWarpQuads(); + glEndList(); + } + + //clearing the vectors + cubetop.clear(); + cubebottom.clear(); + cuberight.clear(); + cubeleft.clear(); + cubefront.clear(); + cubeleftback.clear(); + cuberightback.clear(); + warp.nodes.clear(); + + } else // genList failed + return false; + + return true; +} + +void KX_Dome::GLDrawTriangles(vector & face, int nfaces) +{ + int i,j; + glBegin(GL_TRIANGLES); + for (i=0;i columns, lines; + + lines = text.Explode('\n'); + if(lines.size() < 6){ + printf("Error: Warp Mesh File with insufficient data!\n"); + return false; + } + columns = lines[1].Explode(' '); + + if(columns.size() !=2){ + printf("Error: Warp Mesh File incorrect. The second line should contain: width height.\n"); + return false; + } + + warp.mode = atoi(lines[0]);// 1 = radial, 2 = fisheye + + warp.n_width = atoi(columns[0]); + warp.n_height = atoi(columns[1]); + + if (lines.size() < 2 + (warp.n_width * warp.n_height)){ + printf("Error: Warp Mesh File with insufficient data!\n"); + return false; + }else{ + warp.nodes = vector> (warp.n_height, vector(warp.n_width)); + + for(i=2; i-2 < (warp.n_width*warp.n_height); i++){ + columns = lines[i].Explode(' '); + + if (columns.size() == 5){ + nodeX = (i-2)%warp.n_width; + nodeY = ((i-2) - nodeX) / warp.n_width; + + warp.nodes[nodeY][nodeX].x = atof(columns[0]); + warp.nodes[nodeY][nodeX].y = atof(columns[1]); + warp.nodes[nodeY][nodeX].u = atof(columns[2]); + warp.nodes[nodeY][nodeX].v = atof(columns[3]); + warp.nodes[nodeY][nodeX].i = atof(columns[4]); + } + else{ + warp.nodes.clear(); + printf("Error: Warp Mesh File with wrong number of fields. You should use 5: x y u v i.\n"); + return false; + } + } + } + return true; +} + +void KX_Dome::CreateMeshDome180(void) +{ +/* +1)- Define the faces of half of a cube + - each face is made out of 2 triangles +2) Subdivide the faces + - more resolution == more curved lines +3) Spherize the cube + - normalize the verts +4) Flatten onto xz plane + - transform it onto an equidistant spherical projection techniques to transform the sphere onto a dome image +*/ + int i,j; + float sqrt_2 = sqrt(2.0); + float uv_ratio = (float)(m_buffersize-1) / m_imagesize; + + m_radangle = m_angle * M_PI/180.0;//calculates the radians angle, used for flattening + + //creating faces for the env mapcube 180º Dome + // Top Face - just a triangle + cubetop[0].verts[0][0] = -sqrt_2 / 2.0; + cubetop[0].verts[0][1] = 0.0; + cubetop[0].verts[0][2] = 0.5; + cubetop[0].u[0] = 0.0; + cubetop[0].v[0] = uv_ratio; + + cubetop[0].verts[1][0] = 0.0; + cubetop[0].verts[1][1] = sqrt_2 / 2.0; + cubetop[0].verts[1][2] = 0.5; + cubetop[0].u[1] = 0.0; + cubetop[0].v[1] = 0.0; + + cubetop[0].verts[2][0] = sqrt_2 / 2.0; + cubetop[0].verts[2][1] = 0.0; + cubetop[0].verts[2][2] = 0.5; + cubetop[0].u[2] = uv_ratio; + cubetop[0].v[2] = 0.0; + + nfacestop = 1; + + /* Bottom face - just a triangle */ + cubebottom[0].verts[0][0] = -sqrt_2 / 2.0; + cubebottom[0].verts[0][1] = 0.0; + cubebottom[0].verts[0][2] = -0.5; + cubebottom[0].u[0] = uv_ratio; + cubebottom[0].v[0] = 0.0; + + cubebottom[0].verts[1][0] = sqrt_2 / 2.0; + cubebottom[0].verts[1][1] = 0; + cubebottom[0].verts[1][2] = -0.5; + cubebottom[0].u[1] = 0.0; + cubebottom[0].v[1] = uv_ratio; + + cubebottom[0].verts[2][0] = 0.0; + cubebottom[0].verts[2][1] = sqrt_2 / 2.0; + cubebottom[0].verts[2][2] = -0.5; + cubebottom[0].u[2] = 0.0; + cubebottom[0].v[2] = 0.0; + + nfacesbottom = 1; + + /* Left face - two triangles */ + + cubeleft[0].verts[0][0] = -sqrt_2 / 2.0; + cubeleft[0].verts[0][1] = .0; + cubeleft[0].verts[0][2] = -0.5; + cubeleft[0].u[0] = 0.0; + cubeleft[0].v[0] = 0.0; + + cubeleft[0].verts[1][0] = 0.0; + cubeleft[0].verts[1][1] = sqrt_2 / 2.0; + cubeleft[0].verts[1][2] = -0.5; + cubeleft[0].u[1] = uv_ratio; + cubeleft[0].v[1] = 0.0; + + cubeleft[0].verts[2][0] = -sqrt_2 / 2.0; + cubeleft[0].verts[2][1] = 0.0; + cubeleft[0].verts[2][2] = 0.5; + cubeleft[0].u[2] = 0.0; + cubeleft[0].v[2] = uv_ratio; + + //second triangle + cubeleft[1].verts[0][0] = -sqrt_2 / 2.0; + cubeleft[1].verts[0][1] = 0.0; + cubeleft[1].verts[0][2] = 0.5; + cubeleft[1].u[0] = 0.0; + cubeleft[1].v[0] = uv_ratio; + + cubeleft[1].verts[1][0] = 0.0; + cubeleft[1].verts[1][1] = sqrt_2 / 2.0; + cubeleft[1].verts[1][2] = -0.5; + cubeleft[1].u[1] = uv_ratio; + cubeleft[1].v[1] = 0.0; + + cubeleft[1].verts[2][0] = 0.0; + cubeleft[1].verts[2][1] = sqrt_2 / 2.0; + cubeleft[1].verts[2][2] = 0.5; + cubeleft[1].u[2] = uv_ratio; + cubeleft[1].v[2] = uv_ratio; + + nfacesleft = 2; + + /* Right face - two triangles */ + cuberight[0].verts[0][0] = 0.0; + cuberight[0].verts[0][1] = sqrt_2 / 2.0; + cuberight[0].verts[0][2] = -0.5; + cuberight[0].u[0] = 0.0; + cuberight[0].v[0] = 0.0; + + cuberight[0].verts[1][0] = sqrt_2 / 2.0; + cuberight[0].verts[1][1] = 0.0; + cuberight[0].verts[1][2] = -0.5; + cuberight[0].u[1] = uv_ratio; + cuberight[0].v[1] = 0.0; + + cuberight[0].verts[2][0] = sqrt_2 / 2.0; + cuberight[0].verts[2][1] = 0.0; + cuberight[0].verts[2][2] = 0.5; + cuberight[0].u[2] = uv_ratio; + cuberight[0].v[2] = uv_ratio; + + //second triangle + cuberight[1].verts[0][0] = 0.0; + cuberight[1].verts[0][1] = sqrt_2 / 2.0; + cuberight[1].verts[0][2] = -0.5; + cuberight[1].u[0] = 0.0; + cuberight[1].v[0] = 0.0; + + cuberight[1].verts[1][0] = sqrt_2 / 2.0; + cuberight[1].verts[1][1] = 0.0; + cuberight[1].verts[1][2] = 0.5; + cuberight[1].u[1] = uv_ratio; + cuberight[1].v[1] = uv_ratio; + + cuberight[1].verts[2][0] = 0.0; + cuberight[1].verts[2][1] = sqrt_2 / 2.0; + cuberight[1].verts[2][2] = 0.5; + cuberight[1].u[2] = 0.0; + cuberight[1].v[2] = uv_ratio; + + nfacesright = 2; + + //Refine a triangular mesh by bisecting each edge forms 3 new triangles for each existing triangle on each iteration + //Could be made more efficient for drawing if the triangles were ordered in a fan. Not that important since we are using DisplayLists + + for(i=0;i 1.0){ + //round the border + verts[i][0] = cos(phi); + verts[i][1] = -3.0; + verts[i][2] = sin(phi); + } + } +} + +void KX_Dome::FlattenPanorama(MT_Vector3 verts[3]) +{ +// it creates a full spherical panoramic (360º) + int i; + double phi; + bool edge=false; + + for (i=0;i<3;i++){ + phi = atan2(verts[i][1], verts[i][0]); + phi *= -1.0; //flipping + + if (phi == -MT_PI) //It's on the edge + edge=true; + + verts[i][0] = phi / MT_PI; + verts[i][1] = 0; + + verts[i][2] = atan2(verts[i][2], 1.0); + verts[i][2] /= MT_PI / 2; + } + if(edge){ + bool right=false; + + for (i=0;i<3;i++){ + if(fmod(verts[i][0],1.0) > 0.0){ + right=true; + break; + } + } + if(right){ + for (i=0;i<3;i++){ + if(verts[i][0] < 0.0) + verts[i][0] *= -1.0; + } + } + } +} + +void KX_Dome::SplitFace(vector & face, int *nfaces) +{ + int i; + int n1, n2; + + n1 = n2 = *nfaces; + + for(i=0;iGetCameraNear(),cam->GetCameraFar()); + */ + + RAS_FrameFrustum m_frustrum; //90 deg. Frustum + + m_frustrum.camnear = cam->GetCameraNear(); + m_frustrum.camfar = cam->GetCameraFar(); + +// float top = tan(90.0*MT_PI/360.0) * m_frustrum.camnear; + float top = m_frustrum.camnear; // for deg = 90º, tan = 1 + + m_frustrum.x1 = -top; + m_frustrum.x2 = top; + m_frustrum.y1 = -top; + m_frustrum.y2 = top; + + m_projmat = m_rasterizer->GetFrustumMatrix( + m_frustrum.x1, m_frustrum.x2, m_frustrum.y1, m_frustrum.y2, m_frustrum.camnear, m_frustrum.camfar); + +} + +void KX_Dome::CalculateCameraOrientation() +{ +/* +Uses 4 cameras for angles up to 180º +Uses 5 cameras for angles up to 250º +Uses 6 cameras for angles up to 360º +*/ + float deg45 = MT_PI / 4; + MT_Scalar c = cos(deg45); + MT_Scalar s = sin(deg45); + + if ((m_mode == DOME_FISHEYE && m_angle <= 180)|| m_mode == DOME_TRUNCATED){ + + m_locRot[0] = MT_Matrix3x3( // 90º - Top + c, -s, 0.0, + 0.0,0.0, -1.0, + s, c, 0.0); + + m_locRot[1] = MT_Matrix3x3( // 90º - Bottom + -s, c, 0.0, + 0.0,0.0, 1.0, + s, c, 0.0); + + m_locRot[2] = MT_Matrix3x3( // 45º - Left + c, 0.0, s, + 0, 1.0, 0.0, + -s, 0.0, c); + + m_locRot[3] = MT_Matrix3x3( // 45º - Right + c, 0.0, -s, + 0.0, 1.0, 0.0, + s, 0.0, c); + + } else if ((m_mode == DOME_FISHEYE && m_angle > 180)){ + + m_locRot[0] = MT_Matrix3x3( // 90º - Top + 1.0, 0.0, 0.0, + 0.0, 0.0,-1.0, + 0.0, 1.0, 0.0); + + m_locRot[1] = MT_Matrix3x3( // 90º - Bottom + 1.0, 0.0, 0.0, + 0.0, 0.0, 1.0, + 0.0,-1.0, 0.0); + + m_locRot[2] = MT_Matrix3x3( // -90º - Left + 0.0, 0.0, 1.0, + 0.0, 1.0, 0.0, + -1.0, 0.0, 0.0); + + m_locRot[3] = MT_Matrix3x3( // 90º - Right + 0.0, 0.0,-1.0, + 0.0, 1.0, 0.0, + 1.0, 0.0, 0.0); + + m_locRot[4] = MT_Matrix3x3( // 0º - Front + 1.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 1.0); + + m_locRot[5] = MT_Matrix3x3( // 180º - Back - NOT USING + -1.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 0.0, 0.0,-1.0); + + } else if (m_mode == DOME_PANORAM_SPH){ + + m_locRot[0] = MT_Matrix3x3( // Top + c, s, 0.0, + 0.0,0.0, -1.0, + -s, c, 0.0); + + m_locRot[1] = MT_Matrix3x3( // Bottom + c, s, 0.0, + 0.0 ,0.0, 1.0, + s, -c, 0.0); + + m_locRot[2] = MT_Matrix3x3( // 45º - Left + -s, 0.0, c, + 0, 1.0, 0.0, + -c, 0.0, -s); + + m_locRot[3] = MT_Matrix3x3( // 45º - Right + c, 0.0, s, + 0, 1.0, 0.0, + -s, 0.0, c); + + m_locRot[4] = MT_Matrix3x3( // 135º - LeftBack + -s, 0.0, -c, + 0.0, 1.0, 0.0, + c, 0.0, -s); + + m_locRot[5] = MT_Matrix3x3( // 135º - RightBack + c, 0.0, -s, + 0.0, 1.0, 0.0, + s, 0.0, c); + } +} + +void KX_Dome::RotateCamera(KX_Camera* cam, int i) +{ +// I'm not using it, I'm doing inline calls for these commands +// but it's nice to have it here in case I need it + + MT_Matrix3x3 camori = cam->GetSGNode()->GetLocalOrientation(); + + cam->NodeSetLocalOrientation(camori*m_locRot[i]); + cam->NodeUpdateGS(0.f); + + MT_Transform camtrans(cam->GetWorldToCamera()); + MT_Matrix4x4 viewmat(camtrans); + m_rasterizer->SetViewMatrix(viewmat, cam->NodeGetWorldPosition(), + cam->GetCameraLocation(), cam->GetCameraOrientation()); + cam->SetModelviewMatrix(viewmat); + + // restore the original orientation + cam->NodeSetLocalOrientation(camori); + cam->NodeUpdateGS(0.f); +} + +void KX_Dome::Draw(void) +{ + + switch(m_mode){ + case DOME_FISHEYE: + DrawDomeFisheye(); + break; + case DOME_TRUNCATED: + DrawDomeFisheye(); + break; + case DOME_PANORAM_SPH: + DrawPanorama(); + break; + } + + if(warp.usemesh) + { + glBindTexture(GL_TEXTURE_2D, domefacesId[m_numfaces]); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_viewport.GetLeft(), m_viewport.GetBottom(), warp.bufferwidth, warp.bufferheight); + DrawDomeWarped(); + } +} + +void KX_Dome::DrawDomeFisheye(void) +{ + int i,j; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // Making the viewport always square + + int can_width = m_viewport.GetRight(); + int can_height = m_viewport.GetTop(); + + float ortho_width, ortho_height; + + if (warp.usemesh) + glOrtho((-1.0), 1.0, (-1.0), 1.0, -20.0, 10.0); //stretch the image to reduce resolution lost + + else if(m_mode == DOME_TRUNCATED){ + ortho_width = 1.0; + ortho_height = 2 * ((float)can_height/can_width) - 1.0 ; + + ortho_width /= m_size; + ortho_height /= m_size; + + glOrtho((-ortho_width), ortho_width, (-ortho_height), ortho_width, -20.0, 10.0); + } else { + if (can_width < can_height){ + ortho_width = 1.0; + ortho_height = (float)can_height/can_width; + }else{ + ortho_width = (float)can_width/can_height; + ortho_height = 1.0; + } + + ortho_width /= m_size; + ortho_height /= m_size; + + glOrtho((-ortho_width), ortho_width, (-ortho_height), ortho_height, -20.0, 10.0); + } + + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(0.0,-1.0,0.0, 0.0,0.0,0.0, 0.0,0.0,1.0); + + if(m_drawingmode == RAS_IRasterizer::KX_WIREFRAME) + glPolygonMode(GL_FRONT, GL_LINE); + else + glPolygonMode(GL_FRONT, GL_FILL); + + glShadeModel(GL_SMOOTH); + glDisable(GL_LIGHTING); + glDisable(GL_DEPTH_TEST); + + glEnable(GL_TEXTURE_2D); + glColor3f(1.0,1.0,1.0); + + if (dlistSupported){ + for(i=0;i 180){ + // front triangle + glBindTexture(GL_TEXTURE_2D, domefacesId[4]); + GLDrawTriangles(cubefront, nfacesfront); + } + } + glDisable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); +} + +void KX_Dome::DrawPanorama(void) +{ + int i,j; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // Making the viewport always square + + int can_width = m_viewport.GetRight(); + int can_height = m_viewport.GetTop(); + + float ortho_height = 1.0; + float ortho_width = 1.0; + + if (warp.usemesh) + glOrtho((-1.0), 1.0, (-0.5), 0.5, -20.0, 10.0); //stretch the image to reduce resolution lost + + else { + //using all the screen + if ((can_width / 2) <= (can_height)){ + ortho_width = 1.0; + ortho_height = (float)can_height/can_width; + }else{ + ortho_width = (float)can_width/can_height * 0.5; + ortho_height = 0.5; + } + + ortho_width /= m_size; + ortho_height /= m_size; + + glOrtho((-ortho_width), ortho_width, (-ortho_height), ortho_height, -20.0, 10.0); + } + + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(0.0,-1.0,0.0, 0.0,0.0,0.0, 0.0,0.0,1.0); + + if(m_drawingmode == RAS_IRasterizer::KX_WIREFRAME) + glPolygonMode(GL_FRONT, GL_LINE); + else + glPolygonMode(GL_FRONT, GL_FILL); + + glShadeModel(GL_SMOOTH); + glDisable(GL_LIGHTING); + glDisable(GL_DEPTH_TEST); + + glEnable(GL_TEXTURE_2D); + glColor3f(1.0,1.0,1.0); + + if (dlistSupported){ + for(i=0;i (top) + glBindTexture(GL_TEXTURE_2D, domefacesId[0]); + GLDrawTriangles(cubetop, nfacestop); + + // domefacesId[5] => (bottom) + glBindTexture(GL_TEXTURE_2D, domefacesId[1]); + GLDrawTriangles(cubebottom, nfacesbottom); + + // domefacesId[1] => -45º (left) + glBindTexture(GL_TEXTURE_2D, domefacesId[2]); + GLDrawTriangles(cubeleft, nfacesleft); + + // domefacesId[2] => 45º (right) + glBindTexture(GL_TEXTURE_2D, domefacesId[3]); + GLDrawTriangles(cuberight, nfacesright); + + // domefacesId[0] => -135º (leftback) + glBindTexture(GL_TEXTURE_2D, domefacesId[4]); + GLDrawTriangles(cubeleftback, nfacesleftback); + + // domefacesId[3] => 135º (rightback) + glBindTexture(GL_TEXTURE_2D, domefacesId[5]); + GLDrawTriangles(cuberightback, nfacesrightback); + } + glDisable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); +} + +void KX_Dome::DrawDomeWarped(void) +{ + int i,j; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // Making the viewport always square + int can_width = m_viewport.GetRight(); + int can_height = m_viewport.GetTop(); + + double screen_ratio = can_width/ (double) can_height; + screen_ratio /= m_size; + + glOrtho(-screen_ratio,screen_ratio,-1.0,1.0,-20.0,10.0); + + + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(0.0, 0.0, 1.0, 0.0,0.0,0.0, 0.0,1.0,0.0); + + if(m_drawingmode == RAS_IRasterizer::KX_WIREFRAME) + glPolygonMode(GL_FRONT, GL_LINE); + else + glPolygonMode(GL_FRONT, GL_FILL); + + glShadeModel(GL_SMOOTH); + glDisable(GL_LIGHTING); + glDisable(GL_DEPTH_TEST); + + glEnable(GL_TEXTURE_2D); + glColor3f(1.0,1.0,1.0); + + + float uv_width = (float)(warp.bufferwidth-1) / warp.imagewidth; + float uv_height = (float)(warp.bufferheight-1) / warp.imageheight; + + if (dlistSupported){ + glBindTexture(GL_TEXTURE_2D, domefacesId[m_numfaces]); + glCallList(dlistId + m_numfaces); + } + else{ + glBindTexture(GL_TEXTURE_2D, domefacesId[m_numfaces]); + GLDrawWarpQuads(); + } + glDisable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); +} + +void KX_Dome::BindImages(int i) +{ + glBindTexture(GL_TEXTURE_2D, domefacesId[i]); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_viewport.GetLeft(), m_viewport.GetBottom(), m_buffersize, m_buffersize); +} + +void KX_Dome::RenderDomeFrame(KX_Scene* scene, KX_Camera* cam, int i) +{ + if (!cam) + return; + + m_canvas->SetViewPort(0,0,m_buffersize-1,m_buffersize-1); + +// m_rasterizer->SetAmbient(); + m_rasterizer->DisplayFog(); + + CalculateFrustum(cam); //calculates m_projmat + cam->SetProjectionMatrix(m_projmat); + m_rasterizer->SetProjectionMatrix(cam->GetProjectionMatrix()); +// Dome_RotateCamera(cam,i); + + MT_Matrix3x3 camori = cam->GetSGNode()->GetLocalOrientation(); + + cam->NodeSetLocalOrientation(camori*m_locRot[i]); + cam->NodeUpdateGS(0.f); + + MT_Transform camtrans(cam->GetWorldToCamera()); + MT_Matrix4x4 viewmat(camtrans); + m_rasterizer->SetViewMatrix(viewmat, cam->NodeGetWorldPosition(), + cam->GetCameraLocation(), cam->GetCameraOrientation()); + cam->SetModelviewMatrix(viewmat); + + scene->CalculateVisibleMeshes(m_rasterizer,cam); + scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools); + + // restore the original orientation + cam->NodeSetLocalOrientation(camori); + cam->NodeUpdateGS(0.f); +} \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_Dome.h b/source/gameengine/Ketsji/KX_Dome.h new file mode 100644 index 00000000000..de3360cd897 --- /dev/null +++ b/source/gameengine/Ketsji/KX_Dome.h @@ -0,0 +1,183 @@ +/* $Id$ +----------------------------------------------------------------------------- + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 Temple +Place - Suite 330, Boston, MA 02111-1307, USA, or go to +http://www.gnu.org/copyleft/lesser.txt. + +Contributor(s): Dalai Felinto + +This source uses some of the ideas and code from Paul Bourke. +Developed as part of a Research and Development project for SAT - La Société des arts technologiques. +----------------------------------------------------------------------------- +*/ + +#if !defined KX_DOME_H +#define KX_DOME_H + +#include "KX_Scene.h" +#include "KX_Camera.h" +#include "DNA_screen_types.h" +#include "RAS_ICanvas.h" +#include "RAS_IRasterizer.h" +#include "RAS_IRenderTools.h" +#include "KX_KetsjiEngine.h" + +#include +#include + +#include "MEM_guardedalloc.h" +#include "BKE_text.h" +//#include "BLI_blenlib.h" + +//Dome modes: limit hardcoded in buttons_scene.c +#define DOME_FISHEYE 1 +#define DOME_TRUNCATED 2 +#define DOME_PANORAM_SPH 3 +#define DOME_NUM_MODES 4 + + +/// class for render 3d scene +class KX_Dome +{ +public: + /// constructor + KX_Dome ( + RAS_ICanvas* m_canvas, + /// rasterizer + RAS_IRasterizer* m_rasterizer, + /// render tools + RAS_IRenderTools* m_rendertools, + /// engine + KX_KetsjiEngine* m_engine, + + float size, + short res, + short mode, + short angle, + float resbuf, + struct Text* warptext + ); + + /// destructor + virtual ~KX_Dome (void); + + //openGL checks: + bool dlistSupported; + + //openGL names: + GLuint domefacesId[7]; // ID of the images -- room for 7 images, using only 4 for 180º x 360º dome, 6 for panoramic and +1 for warp mesh + GLuint dlistId; // ID of the Display Lists of the images (used as an offset) + + typedef struct { + double u[3], v[3]; + MT_Vector3 verts[3]; //three verts + } DomeFace; + + //mesh warp functions + typedef struct { + double x, y, u, v, i; + } WarpMeshNode; + + struct { + bool usemesh; + int mode; + int n_width, n_height; //nodes width and height + int imagewidth, imageheight; + int bufferwidth, bufferheight; + vector > nodes; + } warp; + + bool ParseWarpMesh(STR_String text); + + vector cubetop, cubebottom, cuberight, cubeleft, cubefront, cubeback; //for fisheye + vector cubeleftback, cuberightback; //for panorama + + int nfacestop, nfacesbottom, nfacesleft, nfacesright, nfacesfront, nfacesback; + int nfacesleftback, nfacesrightback; + + int GetNumberRenders(){return m_numfaces;}; + + void RenderDome(void); + void RenderDomeFrame(KX_Scene* scene, KX_Camera* cam, int i); + void BindImages(int i); + + void SetViewPort(GLuint viewport[4]); + void CalculateFrustum(KX_Camera* cam); + void RotateCamera(KX_Camera* cam, int i); + + //Mesh Creating Functions + void CreateMeshDome180(void); + void CreateMeshDome250(void); + void CreateMeshPanorama(void); + + void SplitFace(vector & face, int *nfaces); + + void FlattenDome(MT_Vector3 verts[3]); + void FlattenPanorama(MT_Vector3 verts[3]); + + //Draw functions + void GLDrawTriangles(vector & face, int nfaces); + void GLDrawWarpQuads(void); + void Draw(void); + void DrawDomeFisheye(void); + void DrawPanorama(void); + void DrawDomeWarped(void); + + //setting up openGL + void CreateGLImages(void); + void ClearGLImages(void);//called on resize + bool CreateDL(void); //create Display Lists + void ClearDL(void); //remove Display Lists + + void CalculateCameraOrientation(); + void CalculateImageSize(); //set m_imagesize + + int canvaswidth; + int canvasheight; + +protected: + int m_drawingmode; + + int m_imagesize; + int m_buffersize; // canvas small dimension + int m_numfaces; // 4 to 6 depending on the kind of dome image + int m_numimages; //numfaces +1 if we have warp mesh + + float m_size; // size to adjust + short m_resolution; //resolution to tesselate the mesh + short m_mode; // the mode (truncated, warped, panoramic,...) + short m_angle; //the angle of the fisheye + float m_radangle; //the angle of the fisheye in radians + float m_resbuffer; //the resolution of the buffer + + RAS_Rect m_viewport; + + MT_Matrix4x4 m_projmat; + + MT_Matrix3x3 m_locRot [6];// the rotation matrix + + /// rendered scene + KX_Scene * m_scene; + + /// canvas + RAS_ICanvas* m_canvas; + /// rasterizer + RAS_IRasterizer* m_rasterizer; + /// render tools + RAS_IRenderTools* m_rendertools; + /// engine + KX_KetsjiEngine* m_engine; +}; + +#endif \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index 70ae0e4b937..e64ffa95161 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -55,6 +55,7 @@ #include "KX_Scene.h" #include "MT_CmMatrix4x4.h" #include "KX_Camera.h" +#include "KX_Dome.h" #include "KX_Light.h" #include "KX_PythonInit.h" #include "KX_PyConstraintBinding.h" @@ -144,6 +145,8 @@ KX_KetsjiEngine::KX_KetsjiEngine(KX_ISystem* system) m_stereo(false), m_curreye(0), + m_usedome(false), + m_logger(NULL), // Set up timing info display variables @@ -179,6 +182,8 @@ KX_KetsjiEngine::KX_KetsjiEngine(KX_ISystem* system) KX_KetsjiEngine::~KX_KetsjiEngine() { delete m_logger; + if(m_usedome) + delete m_dome; } @@ -256,7 +261,124 @@ void KX_KetsjiEngine::SetSceneConverter(KX_ISceneConverter* sceneconverter) m_sceneconverter = sceneconverter; } +void KX_KetsjiEngine::InitDome(float size, short res, short mode, short angle, float resbuf, struct Text* text) +{ + m_dome = new KX_Dome(m_canvas, m_rasterizer, m_rendertools,this, size, res, mode, angle, resbuf, text); + m_usedome = true; +} +void KX_KetsjiEngine::RenderDome() +{ + GLuint viewport[4]={0}; + glGetIntegerv(GL_VIEWPORT,(GLint *)viewport); +// unsigned int m_viewport[4] = {viewport[0], viewport[1], viewport[2], viewport[3]}; + + m_dome->SetViewPort(viewport); + + KX_Scene* firstscene = *m_scenes.begin(); + const RAS_FrameSettings &framesettings = firstscene->GetFramingType(); + + m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true); + + // hiding mouse cursor each frame + // (came back when going out of focus and then back in again) + if (m_hideCursor) + m_canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE); + + // clear the entire game screen with the border color + // only once per frame + + m_canvas->BeginDraw(); + + // BeginFrame() sets the actual drawing area. You can use a part of the window + if (!BeginFrame()) + return; + + int n_renders=m_dome->GetNumberRenders();// usually 4 or 6 + KX_SceneList::iterator sceneit; + for (int i=0;iClearBuffer(RAS_ICanvas::COLOR_BUFFER|RAS_ICanvas::DEPTH_BUFFER); + for (sceneit = m_scenes.begin();sceneit != m_scenes.end(); sceneit++) + // for each scene, call the proceed functions + { + KX_Scene* scene = *sceneit; + KX_Camera* cam = scene->GetActiveCamera(); + + m_rendertools->BeginFrame(m_rasterizer); + // pass the scene's worldsettings to the rasterizer + SetWorldSettings(scene->GetWorldInfo()); + + // shadow buffers + if (i == 0){ + RenderShadowBuffers(scene); + scene->UpdateMeshTransformations();//I need to run it somewherelse, otherwise Im overrunning it + } + // Avoid drawing the scene with the active camera twice when it's viewport is enabled + if(cam && !cam->GetViewport()) + { + if (scene->IsClearingZBuffer()) + m_rasterizer->ClearDepthBuffer(); + + m_rendertools->SetAuxilaryClientInfo(scene); + + // do the rendering + m_dome->RenderDomeFrame(scene,cam, i); + } + + list* cameras = scene->GetCameras(); + + // Draw the scene once for each camera with an enabled viewport + list::iterator it = cameras->begin(); + while(it != cameras->end()) + { + if((*it)->GetViewport()) + { + if (scene->IsClearingZBuffer()) + m_rasterizer->ClearDepthBuffer(); + + m_rendertools->SetAuxilaryClientInfo(scene); + + // do the rendering + m_dome->RenderDomeFrame(scene, (*it),i); + } + + it++; + } + } + m_dome->BindImages(i); + } + +// m_dome->Dome_PostRender(scene, cam, stereomode); + m_canvas->EndFrame();//XXX do we really need that? + + m_canvas->SetViewPort(0, 0, m_canvas->GetWidth(), m_canvas->GetHeight()); + + if (m_overrideFrameColor) //XXX why do we want + { + // Do not use the framing bar color set in the Blender scenes + m_canvas->ClearColor( + m_overrideFrameColorR, + m_overrideFrameColorG, + m_overrideFrameColorB, + 1.0 + ); + } + else + { + // Use the framing bar color set in the Blender scenes + m_canvas->ClearColor( + framesettings.BarRed(), + framesettings.BarGreen(), + framesettings.BarBlue(), + 1.0 + ); + } + + m_dome->Draw(); + + //run 2dfilters + EndFrame(); +} /** * Ketsji Init(), Initializes datastructures and converts data from @@ -631,6 +753,10 @@ else void KX_KetsjiEngine::Render() { + if(m_usedome){ + RenderDome(); + return; + } KX_Scene* firstscene = *m_scenes.begin(); const RAS_FrameSettings &framesettings = firstscene->GetFramingType(); @@ -1699,4 +1825,3 @@ void KX_KetsjiEngine::GetOverrideFrameColor(float& r, float& g, float& b) const } - diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.h b/source/gameengine/Ketsji/KX_KetsjiEngine.h index 8516049f6d8..a8ccd6100d7 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.h +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.h @@ -74,6 +74,7 @@ private: PyObject* m_pythondictionary; class SCA_IInputDevice* m_keyboarddevice; class SCA_IInputDevice* m_mousedevice; + class KX_Dome* m_dome; // dome stereo mode /** Lists of scenes scheduled to be removed at the end of the frame. */ std::set m_removingScenes; @@ -208,6 +209,12 @@ public: RAS_ICanvas* GetCanvas(){return m_canvas;}; RAS_IRenderTools* GetRenderTools(){return m_rendertools;}; + /// Dome functions + void InitDome(float size, short res, short mode, short angle, float resbuf, struct Text* text); + void EndDome(); + void RenderDome(); + bool m_usedome; + ///returns true if an update happened to indicate -> Render bool NextFrame(); void Render(); @@ -234,6 +241,8 @@ public: void GetSceneViewport(KX_Scene* scene, KX_Camera* cam, RAS_Rect& area, RAS_Rect& viewport); void SetDrawType(int drawingtype); + int GetDrawType(){return m_drawingmode;}; + void SetCameraZoom(float camzoom); void EnableCameraOverride(const STR_String& forscene); diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h index 83adcfd8321..cfeda06e670 100644 --- a/source/gameengine/Rasterizer/RAS_IRasterizer.h +++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h @@ -113,6 +113,7 @@ public: RAS_STEREO_ANAGLYPH, RAS_STEREO_SIDEBYSIDE, RAS_STEREO_VINTERLACE, + RAS_STEREO_DOME, RAS_STEREO_MAXSTEREO }; diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index 765ff0174ee..1a9a28916de 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -436,7 +436,7 @@ RAS_IRasterizer::StereoMode RAS_OpenGLRasterizer::GetStereoMode() bool RAS_OpenGLRasterizer::Stereo() { - if(m_stereomode == RAS_STEREO_NOSTEREO) + if(m_stereomode == RAS_STEREO_NOSTEREO || m_stereomode == RAS_STEREO_DOME) return false; else return true; @@ -803,7 +803,7 @@ MT_Matrix4x4 RAS_OpenGLRasterizer::GetFrustumMatrix( double mat[16]; // correction for stereo - if(m_stereomode != RAS_STEREO_NOSTEREO) + if(Stereo()) { float near_div_focallength; // next 2 params should be specified on command line and in Blender publisher @@ -846,7 +846,7 @@ void RAS_OpenGLRasterizer::SetViewMatrix(const MT_Matrix4x4 &mat, const MT_Vecto m_viewmatrix = mat; // correction for stereo - if(m_stereomode != RAS_STEREO_NOSTEREO) + if(Stereo()) { MT_Matrix3x3 camOrientMat3x3(camOrientQuat); MT_Vector3 unitViewDir(0.0, -1.0, 0.0); // minus y direction, Blender convention From 370850146f5ab1af11ec3a28abd1bad2f60314a4 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 16:25:00 +0000 Subject: [PATCH 115/201] BGE patch #18051: add localInertia attribute to GameObject. --- .../Ketsji/KX_BulletPhysicsController.cpp | 14 ++++++++++++ .../Ketsji/KX_BulletPhysicsController.h | 1 + source/gameengine/Ketsji/KX_GameObject.cpp | 22 +++++++++++++++++-- source/gameengine/Ketsji/KX_GameObject.h | 8 +++++++ .../gameengine/Ketsji/KX_IPhysicsController.h | 1 + .../Ketsji/KX_SumoPhysicsController.cpp | 5 +++++ .../Ketsji/KX_SumoPhysicsController.h | 1 + source/gameengine/PyDoc/KX_GameObject.py | 4 +++- 8 files changed, 53 insertions(+), 3 deletions(-) diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp index 435b2b5db19..c621f11994a 100644 --- a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp +++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp @@ -162,6 +162,20 @@ MT_Scalar KX_BulletPhysicsController::GetMass() } +MT_Vector3 KX_BulletPhysicsController::GetLocalInertia() +{ + MT_Vector3 inertia(0.f, 0.f, 0.f); + btVector3 inv_inertia; + if (GetRigidBody()) { + inv_inertia = GetRigidBody()->getInvInertiaDiagLocal(); + if (!btFuzzyZero(inv_inertia.getX()) && + !btFuzzyZero(inv_inertia.getY()) && + !btFuzzyZero(inv_inertia.getZ())) + inertia = MT_Vector3(1.f/inv_inertia.getX(), 1.f/inv_inertia.getY(), 1.f/inv_inertia.getZ()); + } + return inertia; +} + MT_Scalar KX_BulletPhysicsController::GetRadius() { return MT_Scalar(CcdPhysicsController::GetRadius()); diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.h b/source/gameengine/Ketsji/KX_BulletPhysicsController.h index 44fbde7054e..9821b3fd253 100644 --- a/source/gameengine/Ketsji/KX_BulletPhysicsController.h +++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.h @@ -42,6 +42,7 @@ public: virtual void setScaling(const MT_Vector3& scaling); virtual MT_Scalar GetMass(); virtual void SetMass(MT_Scalar newmass); + virtual MT_Vector3 GetLocalInertia(); virtual MT_Vector3 getReactionForce(); virtual void setRigidBody(bool rigid); virtual void AddCompoundChild(KX_IPhysicsController* child); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 339a955702a..ea53ffea48f 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -772,6 +772,16 @@ MT_Scalar KX_GameObject::GetMass() return 0.0; } +MT_Vector3 KX_GameObject::GetLocalInertia() +{ + MT_Vector3 local_inertia(0.0,0.0,0.0); + if (m_pPhysicsController1) + { + local_inertia = m_pPhysicsController1->GetLocalInertia(); + } + return local_inertia; +} + MT_Vector3 KX_GameObject::GetLinearVelocity(bool local) { MT_Vector3 velocity(0.0,0.0,0.0), locvel; @@ -1050,6 +1060,7 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("mass", KX_GameObject, pyattr_get_mass, pyattr_set_mass), KX_PYATTRIBUTE_RW_FUNCTION("visible", KX_GameObject, pyattr_get_visible, pyattr_set_visible), KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_position, pyattr_set_position), + KX_PYATTRIBUTE_RO_FUNCTION("localInertia", KX_GameObject, pyattr_get_localInertia), KX_PYATTRIBUTE_RW_FUNCTION("orientation",KX_GameObject,pyattr_get_orientation,pyattr_set_orientation), KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_scaling, pyattr_set_scaling), KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), @@ -1305,6 +1316,15 @@ int KX_GameObject::pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *a return 0; } +PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + if (self->GetPhysicsController()) + { + return PyObjectFrom(self->GetPhysicsController()->GetLocalInertia()); + } + Py_RETURN_NONE; +} PyObject* KX_GameObject::pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { @@ -1722,8 +1742,6 @@ PyObject* KX_GameObject::PyGetMass(PyObject* self) return PyFloat_FromDouble((GetPhysicsController() != NULL) ? GetPhysicsController()->GetMass() : 0.0f); } - - PyObject* KX_GameObject::PyGetReactionForce(PyObject* self) { // only can get the velocity if we have a physics object connected to us... diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 9c7dda5e394..08cc3031479 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -281,6 +281,12 @@ public: MT_Scalar GetMass(); + /** + * Return the local inertia vector of the object + */ + MT_Vector3 + GetLocalInertia(); + /** * Return the angular velocity of the game object. */ @@ -820,6 +826,8 @@ public: static int pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.h b/source/gameengine/Ketsji/KX_IPhysicsController.h index 13501f1fbbd..b7603203241 100644 --- a/source/gameengine/Ketsji/KX_IPhysicsController.h +++ b/source/gameengine/Ketsji/KX_IPhysicsController.h @@ -79,6 +79,7 @@ public: virtual void setScaling(const MT_Vector3& scaling)=0; virtual MT_Scalar GetMass()=0; virtual void SetMass(MT_Scalar newmass)=0; + virtual MT_Vector3 GetLocalInertia()=0; virtual MT_Vector3 getReactionForce()=0; virtual void setRigidBody(bool rigid)=0; virtual void AddCompoundChild(KX_IPhysicsController* child) = 0; diff --git a/source/gameengine/Ketsji/KX_SumoPhysicsController.cpp b/source/gameengine/Ketsji/KX_SumoPhysicsController.cpp index 7631ee05b0b..fc053f05e63 100644 --- a/source/gameengine/Ketsji/KX_SumoPhysicsController.cpp +++ b/source/gameengine/Ketsji/KX_SumoPhysicsController.cpp @@ -209,6 +209,11 @@ void KX_SumoPhysicsController::SetMass(MT_Scalar newmass) { } +MT_Vector3 KX_SumoPhysicsController::GetLocalInertia() +{ + return MT_Vector3(0.f, 0.f, 0.f); // \todo +} + MT_Scalar KX_SumoPhysicsController::GetRadius() { return SumoPhysicsController::GetRadius(); diff --git a/source/gameengine/Ketsji/KX_SumoPhysicsController.h b/source/gameengine/Ketsji/KX_SumoPhysicsController.h index 46c8ba6df45..8762612eca2 100644 --- a/source/gameengine/Ketsji/KX_SumoPhysicsController.h +++ b/source/gameengine/Ketsji/KX_SumoPhysicsController.h @@ -88,6 +88,7 @@ public: virtual void setScaling(const MT_Vector3& scaling); virtual MT_Scalar GetMass(); virtual void SetMass(MT_Scalar newmass); + virtual MT_Vector3 GetLocalInertia(); virtual MT_Scalar GetRadius(); virtual MT_Vector3 getReactionForce(); virtual void setRigidBody(bool rigid); diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 97f6dab52bf..42656503384 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -16,8 +16,10 @@ class KX_GameObject: # (SCA_IObject) @ivar name: The object's name. (Read only) - note: Currently (Blender 2.49) the prefix "OB" is added to all objects name. This may change in blender 2.5. @type name: string. - @ivar mass: The object's mass (provided the object has a physics controller). Read only. + @ivar mass: The object's mass (provided the object has a physics controller). @type mass: float + @ivar localInertia: the object's inertia vector in local coordinates. Read only. + @type localInertia: list [ix, iy, iz] @ivar parent: The object's parent object. (Read only) @type parent: L{KX_GameObject} or None @ivar visible: visibility flag. From db33320df7f4db6480a15502baecaafefc1be63d Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 16:57:08 +0000 Subject: [PATCH 116/201] BGE patch #18350: Add sendMessage() to GameLogic. Added sendMessage to both GameLogic and KX_GameObject. --- source/gameengine/Ketsji/KX_GameObject.cpp | 24 +++++++++++++++++++- source/gameengine/Ketsji/KX_GameObject.h | 2 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 25 +++++++++++++++++++++ source/gameengine/Network/NG_NetworkScene.h | 5 +++++ source/gameengine/PyDoc/GameLogic.py | 13 +++++++++++ source/gameengine/PyDoc/KX_GameObject.py | 11 +++++++++ 6 files changed, 78 insertions(+), 2 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index ea53ffea48f..5085b52adda 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -66,6 +66,7 @@ typedef unsigned long uint_ptr; #include "SCA_IActuator.h" #include "SCA_ISensor.h" #include "SCA_IController.h" +#include "NG_NetworkScene.h" //Needed for sendMessage() #include "PyObjectPlus.h" /* python stuff */ @@ -1039,7 +1040,8 @@ PyMethodDef KX_GameObject::Methods[] = { KX_PYMETHODTABLE(KX_GameObject, rayCast), KX_PYMETHODTABLE_O(KX_GameObject, getDistanceTo), KX_PYMETHODTABLE_O(KX_GameObject, getVectTo), - + KX_PYMETHODTABLE(KX_GameObject, sendMessage), + // deprecated {"getPosition", (PyCFunction) KX_GameObject::sPyGetPosition, METH_NOARGS}, {"setPosition", (PyCFunction) KX_GameObject::sPySetPosition, METH_O}, @@ -2335,6 +2337,26 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, return Py_BuildValue("OOO", Py_None, Py_None, Py_None); } +KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage, + "sendMessage(subject, [body, to])\n" +"sends a message in same manner as a message actuator" +"subject = Subject of the message (string)" +"body = Message body (string)" +"to = Name of object to send the message to") +{ + char* subject; + char* body = ""; + char* to = ""; + const STR_String& from = GetName(); + + if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to)) + return NULL; + + KX_GetActiveScene()->GetNetworkScene()->SendMessage(to, from, subject, body); + + Py_RETURN_NONE; +} + /* --------------------------------------------------------------------- * Some stuff taken from the header * --------------------------------------------------------------------- */ diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 08cc3031479..f4d35faaeb6 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -815,7 +815,7 @@ public: KX_PYMETHOD_DOC(KX_GameObject,rayCast); KX_PYMETHOD_DOC_O(KX_GameObject,getDistanceTo); KX_PYMETHOD_DOC_O(KX_GameObject,getVectTo); - + KX_PYMETHOD_DOC_VARARGS(KX_GameObject, sendMessage); /* attributes */ static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 15397085b4a..57c84050397 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -67,6 +67,8 @@ #include "KX_Scene.h" #include "SND_DeviceManager.h" +#include "NG_NetworkScene.h" //Needed for sendMessage() + #include "BL_Shader.h" #include "KX_PyMath.h" @@ -167,6 +169,28 @@ static PyObject* gPyExpandPath(PyObject*, PyObject* args) return PyString_FromString(expanded); } +static char gPySendMessage_doc[] = +"sendMessage(subject, [body, to, from])\n\ +sends a message in same manner as a message actuator\ +subject = Subject of the message\ +body = Message body\ +to = Name of object to send the message to\ +from = Name of object to sned the string from"; + +static PyObject* gPySendMessage(PyObject*, PyObject* args) +{ + char* subject; + char* body = ""; + char* to = ""; + char* from = ""; + + if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to, &from)) + return NULL; + + gp_KetsjiScene->GetNetworkScene()->SendMessage(to, from, subject, body); + + Py_RETURN_NONE; +} static bool usedsp = false; @@ -436,6 +460,7 @@ static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *) static struct PyMethodDef game_methods[] = { {"expandPath", (PyCFunction)gPyExpandPath, METH_VARARGS, (PY_METHODCHAR)gPyExpandPath_doc}, + {"sendMessage", (PyCFunction)gPySendMessage, METH_VARARGS, (PY_METHODCHAR)gPySendMessage_doc}, {"getCurrentController", (PyCFunction) SCA_PythonController::sPyGetCurrentController, METH_NOARGS, (PY_METHODCHAR)SCA_PythonController::sPyGetCurrentController__doc__}, diff --git a/source/gameengine/Network/NG_NetworkScene.h b/source/gameengine/Network/NG_NetworkScene.h index 58de9cf6af2..fc6367c3526 100644 --- a/source/gameengine/Network/NG_NetworkScene.h +++ b/source/gameengine/Network/NG_NetworkScene.h @@ -34,6 +34,11 @@ #include "STR_HashedString.h" #include +//MSVC defines SendMessage as a win api function, even though we aren't using it +#ifdef SendMessage + #undef SendMessage +#endif + class NG_NetworkDeviceInterface; class NG_NetworkScene diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index da394288e25..29d1b64350a 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -205,6 +205,19 @@ def addActiveActuator(actuator, activate): @type activate: boolean @param activate: whether to activate or deactivate the given actuator. """ +def sendMessage(subject, body="", to="", from=""): + """ + Sends a message. + + @param subject: The subject of the message + @type subject: string + @param body: The body of the message (optional) + @type body: string + @param to: The name of the object to send the message to (optional) + @type to: string + @param from: The name of the object that the message is coming from (optional) + @type from: string + """ def getRandomFloat(): """ Returns a random floating point value in the range [0...1) diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 42656503384..fb1e099e575 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -453,3 +453,14 @@ class KX_GameObject: # (SCA_IObject) @type margin: float @param margin: the collision margin distance in blender units. """ + def sendMessage(subject, body="", to=""): + """ + Sends a message. + + @param subject: The subject of the message + @type subject: string + @param body: The body of the message (optional) + @type body: string + @param to: The name of the object to send the message to (optional) + @type to: string + """ From 1ee970e03bb6395ed0c0e884826a8e08b91e97bf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 8 Apr 2009 17:40:09 +0000 Subject: [PATCH 117/201] small bge edits - Only try and remove light objects from the light list. - Only loop over mesh verts once when getting the bounding box - dont return None from python attribute localInertia when theres no physics objects. better return a vector still. - add names to send message PyArg_ParseTuple functions. --- .../Converter/BL_BlenderDataConversion.cpp | 18 ++++++++++-------- source/gameengine/Ketsji/KX_GameObject.cpp | 4 ++-- source/gameengine/Ketsji/KX_PythonInit.cpp | 2 +- source/gameengine/Ketsji/KX_Scene.cpp | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 3c77f122758..50a660e77c9 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -1120,6 +1120,7 @@ static float my_boundbox_mesh(Mesh *me, float *loc, float *size) BoundBox *bb; MT_Point3 min, max; float mloc[3], msize[3]; + float radius=0.0f, vert_radius, *co; int a; if(me->bb==0) me->bb= (struct BoundBox *)MEM_callocN(sizeof(BoundBox), "boundbox"); @@ -1132,7 +1133,15 @@ static float my_boundbox_mesh(Mesh *me, float *loc, float *size) mvert= me->mvert; for(a=0; atotvert; a++, mvert++) { - DO_MINMAX(mvert->co, min, max); + co= mvert->co; + + /* bounds */ + DO_MINMAX(co, min, max); + + /* radius */ + vert_radius= co[0]*co[0] + co[1]*co[1] + co[2]*co[2]; + if (vert_radius > radius) + radius= vert_radius; } if(me->totvert) { @@ -1158,13 +1167,6 @@ static float my_boundbox_mesh(Mesh *me, float *loc, float *size) bb->vec[0][2]=bb->vec[3][2]=bb->vec[4][2]=bb->vec[7][2]= loc[2]-size[2]; bb->vec[1][2]=bb->vec[2][2]=bb->vec[5][2]=bb->vec[6][2]= loc[2]+size[2]; - float radius = 0; - for (a=0, mvert = me->mvert; a < me->totvert; a++, mvert++) - { - float vert_radius = MT_Vector3(mvert->co).length2(); - if (vert_radius > radius) - radius = vert_radius; - } return sqrt(radius); } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 5085b52adda..13e839d9d2e 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1325,7 +1325,7 @@ PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIB { return PyObjectFrom(self->GetPhysicsController()->GetLocalInertia()); } - Py_RETURN_NONE; + return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f); } PyObject* KX_GameObject::pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) @@ -2349,7 +2349,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage, char* to = ""; const STR_String& from = GetName(); - if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to)) + if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to)) return NULL; KX_GetActiveScene()->GetNetworkScene()->SendMessage(to, from, subject, body); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 57c84050397..8302855577d 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -184,7 +184,7 @@ static PyObject* gPySendMessage(PyObject*, PyObject* args) char* to = ""; char* from = ""; - if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to, &from)) + if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to, &from)) return NULL; gp_KetsjiScene->GetNetworkScene()->SendMessage(to, from, subject, body); diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 7eed1cc387b..0bd7d7270e1 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -956,7 +956,7 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj) newobj->RemoveMeshes(); ret = 1; - if (m_lightlist->RemoveValue(newobj)) // TODO - use newobj->IsLight() test when its merged in from apricot. - Campbell + if (newobj->IsLight() && m_lightlist->RemoveValue(newobj)) ret = newobj->Release(); if (m_objectlist->RemoveValue(newobj)) ret = newobj->Release(); From 24f1355d4f7d1121b4a1dd209ce86f9ce4aa5561 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 20:10:27 +0000 Subject: [PATCH 118/201] Fix gcc compiling problem with C++ syntax in KX_Dome.cpp. --- source/gameengine/Ketsji/KX_Dome.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp index 4ab0f93f687..0324b08beab 100644 --- a/source/gameengine/Ketsji/KX_Dome.cpp +++ b/source/gameengine/Ketsji/KX_Dome.cpp @@ -442,7 +442,7 @@ i ranges from 0 to 1, if negative don't draw that mesh node printf("Error: Warp Mesh File with insufficient data!\n"); return false; }else{ - warp.nodes = vector> (warp.n_height, vector(warp.n_width)); + warp.nodes = vector > (warp.n_height, vector(warp.n_width)); for(i=2; i-2 < (warp.n_width*warp.n_height); i++){ columns = lines[i].Explode(' '); From 5b0d75e831d891015b82dcc3d30856125c7b913e Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 8 Apr 2009 21:40:55 +0000 Subject: [PATCH 119/201] BGE API cleanup: 2DFilterActuator. --- .../GameLogic/SCA_2DFilterActuator.cpp | 64 +++++++++++++++---- .../GameLogic/SCA_2DFilterActuator.h | 35 +++++++++- source/gameengine/Ketsji/KX_PythonInit.cpp | 21 +++++- .../gameengine/PyDoc/SCA_2DFilterActuator.py | 44 +++++++++++++ 4 files changed, 150 insertions(+), 14 deletions(-) create mode 100644 source/gameengine/PyDoc/SCA_2DFilterActuator.py diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp index 9d4dc1f33d6..171d3fbc265 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp @@ -1,5 +1,29 @@ -#include "SCA_IActuator.h" +/** + * SCA_2DFilterActuator.cpp + * + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * ***** END GPL LICENSE BLOCK ***** + */ +#include "SCA_IActuator.h" #include "SCA_2DFilterActuator.h" #ifdef HAVE_CONFIG_H @@ -22,7 +46,7 @@ SCA_2DFilterActuator::SCA_2DFilterActuator( PyTypeObject* T) : SCA_IActuator(gameobj, T), m_type(type), - m_flag(flag), + m_disableMotionBlur(flag), m_float_arg(float_arg), m_int_arg(int_arg), m_rasterizer(rasterizer), @@ -35,12 +59,6 @@ SCA_2DFilterActuator::SCA_2DFilterActuator( } } -void SCA_2DFilterActuator::SetShaderText(STR_String text) -{ - m_shaderText = text; -} - - CValue* SCA_2DFilterActuator::GetReplica() { @@ -63,7 +81,7 @@ bool SCA_2DFilterActuator::Update() if( m_type == RAS_2DFilterManager::RAS_2DFILTER_MOTIONBLUR ) { - if(!m_flag) + if(!m_disableMotionBlur) m_rasterizer->EnableMotionBlur(m_float_arg); else m_rasterizer->DisableMotionBlur(); @@ -79,6 +97,18 @@ bool SCA_2DFilterActuator::Update() } +void SCA_2DFilterActuator::SetShaderText(STR_String text) +{ + m_shaderText = text; +} + +/* ------------------------------------------------------------------------- */ +/* Python functions */ +/* ------------------------------------------------------------------------- */ + + + +/* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_2DFilterActuator::Type = { PyObject_HEAD_INIT(NULL) 0, @@ -109,14 +139,26 @@ PyParentObject SCA_2DFilterActuator::Parents[] = { PyMethodDef SCA_2DFilterActuator::Methods[] = { - /* add python functions to deal with m_msg... */ + /* add python functions to deal with m_msg... */ {NULL,NULL} }; PyAttributeDef SCA_2DFilterActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("shaderText", 0, 64000, false, SCA_2DFilterActuator, m_shaderText), + KX_PYATTRIBUTE_SHORT_RW("disableMotionBlur", 0, 1, true, SCA_2DFilterActuator, m_disableMotionBlur), + KX_PYATTRIBUTE_ENUM_RW("type",RAS_2DFilterManager::RAS_2DFILTER_ENABLED,RAS_2DFilterManager::RAS_2DFILTER_NUMBER_OF_FILTERS,false,SCA_2DFilterActuator,m_type), + KX_PYATTRIBUTE_INT_RW("passNb", 0, 100, true, SCA_2DFilterActuator, m_int_arg), + KX_PYATTRIBUTE_FLOAT_RW("value", 0.0, 100.0, SCA_2DFilterActuator, m_float_arg), { NULL } //Sentinel }; -PyObject* SCA_2DFilterActuator::py_getattro(PyObject *attr) { +PyObject* SCA_2DFilterActuator::py_getattro(PyObject *attr) +{ py_getattro_up(SCA_IActuator); } + +int SCA_2DFilterActuator::py_setattro(PyObject *attr, PyObject* value) +{ + py_setattro_up(SCA_IActuator); +} + diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.h b/source/gameengine/GameLogic/SCA_2DFilterActuator.h index f69c680b774..de0201a4b19 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.h +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.h @@ -1,3 +1,30 @@ +/** + * SCA_2DFilterActuator.h + * + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * ***** END GPL LICENSE BLOCK ***** + */ + #ifndef __SCA_2DFILETRACTUATOR_H__ #define __SCA_2DFILETRACTUATOR_H__ @@ -13,7 +40,7 @@ private: vector m_propNames; void * m_gameObj; RAS_2DFilterManager::RAS_2DFILTER_MODE m_type; - short m_flag; + short m_disableMotionBlur; float m_float_arg; int m_int_arg; STR_String m_shaderText; @@ -38,7 +65,13 @@ public: virtual bool Update(); virtual CValue* GetReplica(); + + /* --------------------------------------------------------------------- */ + /* Python interface ---------------------------------------------------- */ + /* --------------------------------------------------------------------- */ + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); }; #endif diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 8302855577d..88aa042f502 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -61,6 +61,7 @@ #include "RAS_IRasterizer.h" #include "RAS_ICanvas.h" #include "RAS_BucketManager.h" +#include "RAS_2DFilterManager.h" #include "MT_Vector3.h" #include "MT_Point3.h" #include "ListValue.h" @@ -184,7 +185,7 @@ static PyObject* gPySendMessage(PyObject*, PyObject* args) char* to = ""; char* from = ""; - if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to, &from)) + if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to, &from)) return NULL; gp_KetsjiScene->GetNetworkScene()->SendMessage(to, from, subject, body); @@ -1129,6 +1130,23 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_MIDDLE, SCA_IInputDevice::KX_MIDDLEMOUSE); KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_RIGHT, SCA_IInputDevice::KX_RIGHTMOUSE); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_ENABLED, RAS_2DFilterManager::RAS_2DFILTER_ENABLED); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_DISABLED, RAS_2DFilterManager::RAS_2DFILTER_DISABLED); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_NOFILTER, RAS_2DFilterManager::RAS_2DFILTER_NOFILTER); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_MOTIONBLUR, RAS_2DFilterManager::RAS_2DFILTER_MOTIONBLUR); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_BLUR, RAS_2DFilterManager::RAS_2DFILTER_BLUR); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_SHARPEN, RAS_2DFilterManager::RAS_2DFILTER_SHARPEN); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_DILATION, RAS_2DFilterManager::RAS_2DFILTER_DILATION); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_EROSION, RAS_2DFilterManager::RAS_2DFILTER_EROSION); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_LAPLACIAN, RAS_2DFilterManager::RAS_2DFILTER_LAPLACIAN); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_SOBEL, RAS_2DFilterManager::RAS_2DFILTER_SOBEL); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_PREWITT, RAS_2DFilterManager::RAS_2DFILTER_PREWITT); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_GRAYSCALE, RAS_2DFilterManager::RAS_2DFILTER_GRAYSCALE); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_SEPIA, RAS_2DFilterManager::RAS_2DFILTER_SEPIA); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_INVERT, RAS_2DFilterManager::RAS_2DFILTER_INVERT); + KX_MACRO_addTypesToDict(d, RAS_2DFILTER_CUSTOMFILTER, RAS_2DFilterManager::RAS_2DFILTER_CUSTOMFILTER); + + // Check for errors if (PyErr_Occurred()) { @@ -1609,7 +1627,6 @@ PyObject* initGameKeys() KX_MACRO_addTypesToDict(d, PAGEDOWNKEY, SCA_IInputDevice::KX_PAGEDOWNKEY); KX_MACRO_addTypesToDict(d, ENDKEY, SCA_IInputDevice::KX_ENDKEY); - // Check for errors if (PyErr_Occurred()) { diff --git a/source/gameengine/PyDoc/SCA_2DFilterActuator.py b/source/gameengine/PyDoc/SCA_2DFilterActuator.py new file mode 100644 index 00000000000..12baed6fa0c --- /dev/null +++ b/source/gameengine/PyDoc/SCA_2DFilterActuator.py @@ -0,0 +1,44 @@ +# $Id$ +# Documentation for SCA_2DFilterActuator +from SCA_IActuator import * +from SCA_ILogicBrick import * + +class SCA_2DFilterActuator(SCA_IActuator): + """ + Create, enable and disable 2D filters + + Properties: + + The following properties don't have an immediate effect. + You must active the actuator to get the result. + The actuator is not persistent: it automatically stops itself after setting up the filter + but the filter remains active. To stop a filter you must activate the actuator with 'type' + set to RAS_2DFILTER_DISABLED or RAS_2DFILTER_NOFILTER. + + @ivar shaderText: shader source code for custom shader + @type shaderText: string + @ivar disableMotionBlur: action on motion blur: 0=enable, 1=disable + @type disableMotionBlur: integer + @ivar type: type of 2D filter, use one of the following constants: + RAS_2DFILTER_ENABLED (-2) : enable the filter that was previously disabled + RAS_2DFILTER_DISABLED (-1) : disable the filter that is currently active + RAS_2DFILTER_NOFILTER (0) : disable and destroy the filter that is currently active + RAS_2DFILTER_MOTIONBLUR (1) : create and enable preset filters + RAS_2DFILTER_BLUR (2) + RAS_2DFILTER_SHARPEN (3) + RAS_2DFILTER_DILATION (4) + RAS_2DFILTER_EROSION (5) + RAS_2DFILTER_LAPLACIAN (6) + RAS_2DFILTER_SOBEL (7) + RAS_2DFILTER_PREWITT (8) + RAS_2DFILTER_GRAYSCALE (9) + RAS_2DFILTER_SEPIA (10) + RAS_2DFILTER_INVERT (11) + RAS_2DFILTER_CUSTOMFILTER (12) : customer filter, the code code is set via shaderText property + @type type: integer + @ivar passNb: order number of filter in the stack of 2D filters. Filters are executed in increasing order of passNb. + Only be one filter can be defined per passNb. + @type passNb: integer (0-100) + @ivar value: argument for motion blur filter + @type value: float (0.0-100.0) + """ From ba4ad93eada475e607831ce17883d04d1575bc32 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 01:52:29 +0000 Subject: [PATCH 120/201] Python 2.3 wouldn't compile with BGL. --- source/blender/python/api2_2x/BGL.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/BGL.c b/source/blender/python/api2_2x/BGL.c index e5868a82c2c..cfbb4611c6c 100644 --- a/source/blender/python/api2_2x/BGL.c +++ b/source/blender/python/api2_2x/BGL.c @@ -1091,7 +1091,7 @@ PyObject *BGL_Init(const char *from) PyObject *dict= PyModule_GetDict(mod); PyObject *item; if( PyType_Ready( &buffer_Type) < 0) - Py_RETURN_NONE; + return NULL; /* should never happen */ #define EXPP_ADDCONST(x) PyDict_SetItemString(dict, #x, item=PyInt_FromLong((int)x)); Py_DECREF(item) From eacf5b5d6d406492ba79b44f9319867230585e9b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 09:50:17 +0000 Subject: [PATCH 121/201] BGE Text - multi-line strings for bitmap text - keyboard sensor now logs return and pad enter as "\n" BGE std::vector use in Value.cpp and RAS_MaterialBucket.cpp The size of a new list is known before making them, reduce re-allocs, though probably not a noticeable speedup. --- source/blender/gpu/intern/gpu_draw.c | 17 +++++++++++++++++ source/gameengine/Expressions/Value.cpp | 2 ++ .../gameengine/GameLogic/SCA_KeyboardSensor.cpp | 9 ++++++--- .../Rasterizer/RAS_MaterialBucket.cpp | 3 +++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 3c1c280a727..c0033c89d5c 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -84,6 +84,15 @@ void GPU_render_text(MTFace *tface, int mode, int characters, index, character; float centerx, centery, sizex, sizey, transx, transy, movex, movey, advance; + /* multiline */ + float line_start= 0.0f, line_height; + if (v4) + line_height= MAX4(v1[1], v2[1], v3[1], v4[2]) - MIN4(v1[1], v2[1], v3[1], v4[2]); + else + line_height= MAX3(v1[1], v2[1], v3[1]) - MIN3(v1[1], v2[1], v3[1]); + line_height *= 1.2; /* could be an option? */ + /* end multiline */ + characters = textlen; ima = (Image*)tface->tpage; @@ -97,12 +106,19 @@ void GPU_render_text(MTFace *tface, int mode, glColor3f(1.0f, 1.0f, 1.0f); glPushMatrix(); + for (index = 0; index < characters; index++) { float uv[4][2]; // lets calculate offset stuff character = textstr[index]; + if (character=='\n') { + glTranslatef(line_start, -line_height, 0.0); + line_start = 0.0f; + continue; + } + // space starts at offset 1 // character = character - ' ' + 1; matrixGlyph((ImBuf *)ima->ibufs.first, character, & centerx, ¢ery, @@ -143,6 +159,7 @@ void GPU_render_text(MTFace *tface, int mode, glEnd(); glTranslatef(advance, 0.0, 0.0); + line_start -= advance; /* so we can go back to the start of the line */ } glPopMatrix(); } diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 8b910b9038b..00d1c4ca77e 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -436,6 +436,8 @@ vector CValue::GetPropertyNames() { vector result; if(!m_pNamedPropertyArray) return result; + result.reserve(m_pNamedPropertyArray->size()); + std::map::iterator it; for (it= m_pNamedPropertyArray->begin(); (it != m_pNamedPropertyArray->end()); it++) { diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 3749bf2eda0..9a8b68d8db3 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -376,7 +376,8 @@ bool SCA_KeyboardSensor::IsPrintable(int keyIndex) || ((keyIndex >= SCA_IInputDevice::KX_AKEY) && (keyIndex <= SCA_IInputDevice::KX_ZKEY)) || (keyIndex == SCA_IInputDevice::KX_SPACEKEY) -/* || (keyIndex == KX_RETKEY) */ + || (keyIndex == SCA_IInputDevice::KX_RETKEY) + || (keyIndex == SCA_IInputDevice::KX_PADENTER) || (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) || (keyIndex == SCA_IInputDevice::KX_TABKEY) || ((keyIndex >= SCA_IInputDevice::KX_COMMAKEY) @@ -386,7 +387,7 @@ bool SCA_KeyboardSensor::IsPrintable(int keyIndex) || ((keyIndex >= SCA_IInputDevice::KX_PAD2) && (keyIndex <= SCA_IInputDevice::KX_PADPLUSKEY)) || (keyIndex == SCA_IInputDevice::KX_DELKEY) - || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) + || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) ) { return true; @@ -423,8 +424,10 @@ char SCA_KeyboardSensor::ToCharacter(int keyIndex, bool shifted) if (keyIndex == SCA_IInputDevice::KX_SPACEKEY) { return ' '; } + if (keyIndex == SCA_IInputDevice::KX_RETKEY || keyIndex == SCA_IInputDevice::KX_PADENTER) { + return '\n'; + } -/* || (keyIndex == SCA_IInputDevice::KX_RETKEY) */ if (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) { return '*'; diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index 20a8e9c3574..69f73c2ee25 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -330,6 +330,9 @@ bool RAS_MeshSlot::Join(RAS_MeshSlot *target, MT_Scalar distance) for(begin(mit); !end(mit); next(mit)) for(i=mit.startvertex; im_displayArrays.reserve(target->m_displayArrays.size() + m_displayArrays.size()); for(it=m_displayArrays.begin(); it!=m_displayArrays.end(); it++) { target->m_displayArrays.push_back(*it); From c29d51f1e877f9e486aff9abb530418419ce79d8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 10:05:17 +0000 Subject: [PATCH 122/201] BGE Text - fix for tab drawing as an @ and not adding white space. Tab width is always space*4. --- source/blender/gpu/intern/gpu_draw.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index c0033c89d5c..7b1fc67d0c6 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -83,7 +83,9 @@ void GPU_render_text(MTFace *tface, int mode, Image* ima; int characters, index, character; float centerx, centery, sizex, sizey, transx, transy, movex, movey, advance; - + float advance_tab; + + /* multiline */ float line_start= 0.0f, line_height; if (v4) @@ -107,6 +109,13 @@ void GPU_render_text(MTFace *tface, int mode, glPushMatrix(); + /* get the tab width */ + matrixGlyph((ImBuf *)ima->ibufs.first, ' ', & centerx, ¢ery, + &sizex, &sizey, &transx, &transy, &movex, &movey, &advance); + + advance_tab= advance * 4; /* tab width could also be an option */ + + for (index = 0; index < characters; index++) { float uv[4][2]; @@ -118,6 +127,12 @@ void GPU_render_text(MTFace *tface, int mode, line_start = 0.0f; continue; } + else if (character=='\t') { + glTranslatef(advance_tab, 0.0, 0.0); + line_start -= advance_tab; /* so we can go back to the start of the line */ + continue; + + } // space starts at offset 1 // character = character - ' ' + 1; From 65f65a729a46ae8d7e9b9f40f931cdcfd2922938 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 10:28:14 +0000 Subject: [PATCH 123/201] key logging didnt work for alphanum keys -=_+ and |\ since revision 2 and nobody noticed! --- source/gameengine/GameLogic/SCA_KeyboardSensor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 9a8b68d8db3..d6ef4af2380 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -463,8 +463,8 @@ char SCA_KeyboardSensor::ToCharacter(int keyIndex, bool shifted) } /* semicolon to rightbracket */ - char semicolontorightbracket[] = ";\'` /\\=[]"; - char semicolontorightbracketshifted[] = ":\"~ \?|+{}"; + char semicolontorightbracket[] = ";\'`/\\=[]"; + char semicolontorightbracketshifted[] = ":\"~\?|+{}"; if ((keyIndex >= SCA_IInputDevice::KX_SEMICOLONKEY) && (keyIndex <= SCA_IInputDevice::KX_RIGHTBRACKETKEY)) { if (shifted) { From 3be2b8995e6c26b22c1e93ab4aff6a600b7283d2 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 9 Apr 2009 10:29:07 +0000 Subject: [PATCH 124/201] Remove redundant include GL/glu.h in KX_Dome.cpp. --- source/gameengine/Ketsji/KX_Dome.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp index 0324b08beab..321370f9f3f 100644 --- a/source/gameengine/Ketsji/KX_Dome.cpp +++ b/source/gameengine/Ketsji/KX_Dome.cpp @@ -33,7 +33,6 @@ Developed as part of a Research and Development project for SAT - La Soci #include "BLI_arithb.h" #include "GL/glew.h" -#include "GL/glu.h" // constructor KX_Dome::KX_Dome ( From e14e66f041104c87033ec0b58596fb49c591908c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 12:53:56 +0000 Subject: [PATCH 125/201] BGE Py API - added keyboard senser attribute "events" to replace getEventList() - fix 2 memory leaks in the python api (was making a list but not returning it) - setting readonly attributes didnt give a good error message. --- source/gameengine/PyDoc/GameLogic.py | 8 ++--- .../gameengine/PyDoc/SCA_2DFilterActuator.py | 2 +- source/gameengine/PyDoc/SCA_KeyboardSensor.py | 32 +++++++++++++------ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index 29d1b64350a..1996aa3f8a9 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -205,9 +205,9 @@ def addActiveActuator(actuator, activate): @type activate: boolean @param activate: whether to activate or deactivate the given actuator. """ -def sendMessage(subject, body="", to="", from=""): +def sendMessage(subject, body="", to="", message_from=""): """ - Sends a message. + Sends a message to sensors in any active scene. @param subject: The subject of the message @type subject: string @@ -215,8 +215,8 @@ def sendMessage(subject, body="", to="", from=""): @type body: string @param to: The name of the object to send the message to (optional) @type to: string - @param from: The name of the object that the message is coming from (optional) - @type from: string + @param message_from: The name of the object that the message is coming from (optional) + @type message_from: string """ def getRandomFloat(): """ diff --git a/source/gameengine/PyDoc/SCA_2DFilterActuator.py b/source/gameengine/PyDoc/SCA_2DFilterActuator.py index 12baed6fa0c..9a010e8f221 100644 --- a/source/gameengine/PyDoc/SCA_2DFilterActuator.py +++ b/source/gameengine/PyDoc/SCA_2DFilterActuator.py @@ -20,7 +20,7 @@ class SCA_2DFilterActuator(SCA_IActuator): @ivar disableMotionBlur: action on motion blur: 0=enable, 1=disable @type disableMotionBlur: integer @ivar type: type of 2D filter, use one of the following constants: - RAS_2DFILTER_ENABLED (-2) : enable the filter that was previously disabled + RAS_2DFILTER_ENABLED (-2) : enable the filter that was previously disabled RAS_2DFILTER_DISABLED (-1) : disable the filter that is currently active RAS_2DFILTER_NOFILTER (0) : disable and destroy the filter that is currently active RAS_2DFILTER_MOTIONBLUR (1) : create and enable preset filters diff --git a/source/gameengine/PyDoc/SCA_KeyboardSensor.py b/source/gameengine/PyDoc/SCA_KeyboardSensor.py index f6a7a7d8a97..93a09acafcf 100644 --- a/source/gameengine/PyDoc/SCA_KeyboardSensor.py +++ b/source/gameengine/PyDoc/SCA_KeyboardSensor.py @@ -20,11 +20,23 @@ class SCA_KeyboardSensor(SCA_ISensor): @type targetProperty: string @ivar useAllKeys: Flag to determine whether or not to accept all keys. @type useAllKeys: boolean + @ivar events: a list of pressed keys that have either been pressed, or just released, or are active this frame. (read only). + + - 'keycode' matches the values in L{GameKeys}. + - 'status' uses... + - L{GameLogic.KX_INPUT_NONE} + - L{GameLogic.KX_INPUT_JUST_ACTIVATED} + - L{GameLogic.KX_INPUT_ACTIVE} + - L{GameLogic.KX_INPUT_JUST_RELEASED} + + @type events: list [[keycode, status], ...] """ def getEventList(): """ Get a list of pressed keys that have either been pressed, or just released, or are active this frame. + B{DEPRECATED: Use the "events" property instead}. + @rtype: list of key status. [[keycode, status]] @return: A list of keyboard events """ @@ -33,18 +45,18 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Get the status of a key. - @rtype: key state (KX_NO_INPUTSTATUS, KX_JUSTACTIVATED, KX_ACTIVE or KX_JUSTRELEASED) + @rtype: key state L{GameLogic} members (KX_INPUT_NONE, KX_INPUT_JUST_ACTIVATED, KX_INPUT_ACTIVE, KX_INPUT_JUST_RELEASED) @return: The state of the given key @type keycode: integer @param keycode: The code that represents the key you want to get the state of """ - #--The following methods are deprecated-- + #--The following methods are DEPRECATED-- def getKey(): """ Returns the key code this sensor is looking for. - Deprecated: Use the "key" property instead. + B{DEPRECATED: Use the "key" property instead}. @rtype: keycode from L{GameKeys} module """ @@ -53,7 +65,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Set the key this sensor should listen for. - Deprecated: Use the "key" property instead. + B{DEPRECATED: Use the "key" property instead}. @type keycode: keycode from L{GameKeys} module """ @@ -62,7 +74,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Returns the key code for the first modifier this sensor is looking for. - Deprecated: Use the "hold1" property instead. + B{DEPRECATED: Use the "hold1" property instead}. @rtype: keycode from L{GameKeys} module """ @@ -71,7 +83,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Sets the key code for the first modifier this sensor should look for. - Deprecated: Use the "hold1" property instead. + B{DEPRECATED: Use the "hold1" property instead}. @type keycode: keycode from L{GameKeys} module """ @@ -80,7 +92,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Returns the key code for the second modifier this sensor is looking for. - Deprecated: Use the "hold2" property instead. + B{DEPRECATED: Use the "hold2" property instead}. @rtype: keycode from L{GameKeys} module """ @@ -89,7 +101,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Sets the key code for the second modifier this sensor should look for. - Deprecated: Use the "hold2" property instead. + B{DEPRECATED: Use the "hold2" property instead.} @type keycode: keycode from L{GameKeys} module """ @@ -98,7 +110,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Get a list of keys that have either been pressed, or just released this frame. - Deprecated: Use getEventList() instead. + B{DEPRECATED: Use "events" instead.} @rtype: list of key status. [[keycode, status]] """ @@ -107,7 +119,7 @@ class SCA_KeyboardSensor(SCA_ISensor): """ Get a list of currently pressed keys that have either been pressed, or just released - Deprecated: Use getEventList() instead. + B{DEPRECATED: Use "events" instead.} @rtype: list of key status. [[keycode, status]] """ \ No newline at end of file From 4669fa48a82f5f1070cf885cd1714e0a8ff8db3a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 16:00:45 +0000 Subject: [PATCH 126/201] Added GameKeys.EventToCharacter(event, is_shift) so you can get the character that would be types when pressing a key. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Last commit was made in the pydocs folder only, so this includes changes mentioned in rev 19620. --- source/gameengine/Expressions/PyObjectPlus.h | 9 +- .../GameLogic/SCA_KeyboardSensor.cpp | 400 ++++++++++-------- .../gameengine/GameLogic/SCA_KeyboardSensor.h | 38 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 67 ++- source/gameengine/PyDoc/GameKeys.py | 26 +- 5 files changed, 305 insertions(+), 235 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index d549be6ef60..786ca1fdc4f 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -129,7 +129,14 @@ static inline void Py_Fatal(const char *M) { \ if(descr) { \ if (PyCObject_Check(descr)) { \ - return py_set_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr), value); \ + const PyAttributeDef* attrdef= reinterpret_cast(PyCObject_AsVoidPtr(descr)); \ + if (attrdef->m_access == KX_PYATTRIBUTE_RO) { \ + PyErr_Format(PyExc_AttributeError, "\"%s\" is read only", PyString_AsString(attr)); \ + return -1; \ + } \ + else { \ + return py_set_attrdef((void *)this, attrdef, value); \ + } \ } else { \ PyErr_Format(PyExc_AttributeError, "\"%s\" cannot be set", PyString_AsString(attr)); \ return -1; \ diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index d6ef4af2380..6c6f5b4d5e4 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -352,151 +352,7 @@ void SCA_KeyboardSensor::AddToTargetProp(int keyIndex) } } - -/** - * Determine whether this character can be printed. We cannot use - * the library functions here, because we need to test our own - * keycodes. */ -bool SCA_KeyboardSensor::IsPrintable(int keyIndex) -{ - /* only print - * - numerals: KX_ZEROKEY to KX_NINEKEY - * - alphas: KX_AKEY to KX_ZKEY. - * - specials: KX_RETKEY, KX_PADASTERKEY, KX_PADCOMMAKEY to KX_PERIODKEY, - * KX_TABKEY , KX_SEMICOLONKEY to KX_RIGHTBRACKETKEY, - * KX_PAD2 to KX_PADPLUSKEY - * - delete and backspace: also printable in the sense that they modify - * the string - * - retkey: should this be printable? - * - virgule: prints a space... don't know which key that's supposed - * to be... - */ - if ( ((keyIndex >= SCA_IInputDevice::KX_ZEROKEY) - && (keyIndex <= SCA_IInputDevice::KX_NINEKEY)) - || ((keyIndex >= SCA_IInputDevice::KX_AKEY) - && (keyIndex <= SCA_IInputDevice::KX_ZKEY)) - || (keyIndex == SCA_IInputDevice::KX_SPACEKEY) - || (keyIndex == SCA_IInputDevice::KX_RETKEY) - || (keyIndex == SCA_IInputDevice::KX_PADENTER) - || (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) - || (keyIndex == SCA_IInputDevice::KX_TABKEY) - || ((keyIndex >= SCA_IInputDevice::KX_COMMAKEY) - && (keyIndex <= SCA_IInputDevice::KX_PERIODKEY)) - || ((keyIndex >= SCA_IInputDevice::KX_SEMICOLONKEY) - && (keyIndex <= SCA_IInputDevice::KX_RIGHTBRACKETKEY)) - || ((keyIndex >= SCA_IInputDevice::KX_PAD2) - && (keyIndex <= SCA_IInputDevice::KX_PADPLUSKEY)) - || (keyIndex == SCA_IInputDevice::KX_DELKEY) - || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) - ) - { - return true; - } else { - return false; - } -} - -// this code looks ugly, please use an ordinary hashtable - -char SCA_KeyboardSensor::ToCharacter(int keyIndex, bool shifted) -{ - /* numerals */ - if ( (keyIndex >= SCA_IInputDevice::KX_ZEROKEY) - && (keyIndex <= SCA_IInputDevice::KX_NINEKEY) ) { - if (shifted) { - char numshift[] = ")!@#$%^&*("; - return numshift[keyIndex - '0']; - } else { - return keyIndex - SCA_IInputDevice::KX_ZEROKEY + '0'; - } - } - /* letters... always lowercase... is that desirable? */ - if ( (keyIndex >= SCA_IInputDevice::KX_AKEY) - && (keyIndex <= SCA_IInputDevice::KX_ZKEY) ) { - if (shifted) { - return keyIndex - SCA_IInputDevice::KX_AKEY + 'A'; - } else { - return keyIndex - SCA_IInputDevice::KX_AKEY + 'a'; - } - } - - if (keyIndex == SCA_IInputDevice::KX_SPACEKEY) { - return ' '; - } - if (keyIndex == SCA_IInputDevice::KX_RETKEY || keyIndex == SCA_IInputDevice::KX_PADENTER) { - return '\n'; - } - - - if (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) { - return '*'; - } - - if (keyIndex == SCA_IInputDevice::KX_TABKEY) { - return '\t'; - } - - /* comma to period */ - char commatoperiod[] = ",-."; - char commatoperiodshifted[] = "<_>"; - if (keyIndex == SCA_IInputDevice::KX_COMMAKEY) { - if (shifted) { - return commatoperiodshifted[0]; - } else { - return commatoperiod[0]; - } - } - if (keyIndex == SCA_IInputDevice::KX_MINUSKEY) { - if (shifted) { - return commatoperiodshifted[1]; - } else { - return commatoperiod[1]; - } - } - if (keyIndex == SCA_IInputDevice::KX_PERIODKEY) { - if (shifted) { - return commatoperiodshifted[2]; - } else { - return commatoperiod[2]; - } - } - - /* semicolon to rightbracket */ - char semicolontorightbracket[] = ";\'`/\\=[]"; - char semicolontorightbracketshifted[] = ":\"~\?|+{}"; - if ((keyIndex >= SCA_IInputDevice::KX_SEMICOLONKEY) - && (keyIndex <= SCA_IInputDevice::KX_RIGHTBRACKETKEY)) { - if (shifted) { - return semicolontorightbracketshifted[keyIndex - SCA_IInputDevice::KX_SEMICOLONKEY]; - } else { - return semicolontorightbracket[keyIndex - SCA_IInputDevice::KX_SEMICOLONKEY]; - } - } - - /* keypad2 to padplus */ - char pad2topadplus[] = "246813579. 0- +"; - if ((keyIndex >= SCA_IInputDevice::KX_PAD2) - && (keyIndex <= SCA_IInputDevice::KX_PADPLUSKEY)) { - return pad2topadplus[keyIndex - SCA_IInputDevice::KX_PAD2]; - } - - return '!'; -} - -/** - * Tests whether this is a delete key. - */ -bool SCA_KeyboardSensor::IsDelete(int keyIndex) -{ - if ( (keyIndex == SCA_IInputDevice::KX_DELKEY) - || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) ) { - return true; - } else { - return false; - } -} - /** * Tests whether shift is pressed */ @@ -654,7 +510,7 @@ const char SCA_KeyboardSensor::GetPressedKeys_doc[] = PyObject* SCA_KeyboardSensor::PyGetPressedKeys(PyObject* self, PyObject* args, PyObject* kwds) { - ShowDeprecationWarning("getPressedKeys()", "getEventList()"); + ShowDeprecationWarning("getPressedKeys()", "events"); SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); @@ -672,20 +528,19 @@ PyObject* SCA_KeyboardSensor::PyGetPressedKeys(PyObject* self, PyObject* args, P if ((inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) || (inevent.m_status == SCA_InputEvent::KX_JUSTRELEASED)) { - if (index < num) - { - PyObject* keypair = PyList_New(2); - PyList_SetItem(keypair,0,PyInt_FromLong(i)); - PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status)); - PyList_SetItem(resultlist,index,keypair); - index++; - } + PyObject* keypair = PyList_New(2); + PyList_SET_ITEM(keypair,0,PyInt_FromLong(i)); + PyList_SET_ITEM(keypair,1,PyInt_FromLong(inevent.m_status)); + PyList_SET_ITEM(resultlist,index,keypair); + index++; + + if (index >= num) /* should not happen */ + break; } - } - if (index>0) return resultlist; + } } - Py_RETURN_NONE; + return resultlist; } @@ -696,9 +551,9 @@ const char SCA_KeyboardSensor::GetCurrentlyPressedKeys_doc[] = PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject* args, PyObject* kwds) { -ShowDeprecationWarning("getCurrentlyPressedKeys()", "getEventList()"); + ShowDeprecationWarning("getCurrentlyPressedKeys()", "events"); -SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); + SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); int num = inputdev->GetNumActiveEvents(); PyObject* resultlist = PyList_New(num); @@ -713,29 +568,28 @@ SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); if ( (inevent.m_status == SCA_InputEvent::KX_ACTIVE) || (inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED)) { - if (index < num) - { - PyObject* keypair = PyList_New(2); - PyList_SetItem(keypair,0,PyInt_FromLong(i)); - PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status)); - PyList_SetItem(resultlist,index,keypair); - index++; - } + PyObject* keypair = PyList_New(2); + PyList_SET_ITEM(keypair,0,PyInt_FromLong(i)); + PyList_SET_ITEM(keypair,1,PyInt_FromLong(inevent.m_status)); + PyList_SET_ITEM(resultlist,index,keypair); + index++; + + if (index >= num) /* should never happen */ + break; } } - - /* why?*/ - if (index > 0) return resultlist; } - Py_RETURN_NONE; + return resultlist; } -//<---- Deprecated + KX_PYMETHODDEF_DOC_NOARGS(SCA_KeyboardSensor, getEventList, "getEventList()\n" "\tGet the list of the keyboard events in this frame.\n") { + ShowDeprecationWarning("getEventList()", "events"); + SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); PyObject* resultlist = PyList_New(0); @@ -746,34 +600,35 @@ KX_PYMETHODDEF_DOC_NOARGS(SCA_KeyboardSensor, getEventList, if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS) { PyObject* keypair = PyList_New(2); - PyList_SetItem(keypair,0,PyInt_FromLong(i)); + PyList_SET_ITEM(keypair,0,PyInt_FromLong(i)); PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status)); PyList_Append(resultlist,keypair); } } return resultlist; } +//<---- Deprecated KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, "getKeyStatus(keycode)\n" "\tGet the given key's status (KX_NO_INPUTSTATUS, KX_JUSTACTIVATED, KX_ACTIVE or KX_JUSTRELEASED).\n") { - if (PyInt_Check(value)) - { - int keycode = PyInt_AsLong(value); - - if ((keycode < SCA_IInputDevice::KX_BEGINKEY) - || (keycode > SCA_IInputDevice::KX_ENDKEY)){ - PyErr_SetString(PyExc_AttributeError, "invalid keycode specified!"); - return NULL; - } - - SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); - const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) keycode); - return PyInt_FromLong(inevent.m_status); + if (!PyInt_Check(value)) { + PyErr_SetString(PyExc_ValueError, "getKeyStatus expected an int"); + return NULL; } - Py_RETURN_NONE; + int keycode = PyInt_AsLong(value); + + if ((keycode < SCA_IInputDevice::KX_BEGINKEY) + || (keycode > SCA_IInputDevice::KX_ENDKEY)){ + PyErr_SetString(PyExc_AttributeError, "invalid keycode specified!"); + return NULL; + } + + SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); + const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) keycode); + return PyInt_FromLong(inevent.m_status); } /* ------------------------------------------------------------------------- */ @@ -824,6 +679,7 @@ PyMethodDef SCA_KeyboardSensor::Methods[] = { }; PyAttributeDef SCA_KeyboardSensor::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("events", SCA_KeyboardSensor, pyattr_get_events), KX_PYATTRIBUTE_BOOL_RW("useAllKeys",SCA_KeyboardSensor,m_bAllKeys), KX_PYATTRIBUTE_INT_RW("key",0,SCA_IInputDevice::KX_ENDKEY,true,SCA_KeyboardSensor,m_hotkey), KX_PYATTRIBUTE_SHORT_RW("hold1",0,SCA_IInputDevice::KX_ENDKEY,true,SCA_KeyboardSensor,m_qual), @@ -843,3 +699,175 @@ int SCA_KeyboardSensor::py_setattro(PyObject *attr, PyObject *value) { py_setattro_up(SCA_ISensor); } + + +PyObject* SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_KeyboardSensor* self= static_cast(self_v); + + SCA_IInputDevice* inputdev = self->m_pKeyboardMgr->GetInputDevice(); + + PyObject* resultlist = PyList_New(0); + + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + { + const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); + if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS) + { + PyObject* keypair = PyList_New(2); + PyList_SET_ITEM(keypair,0,PyInt_FromLong(i)); + PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status)); + PyList_Append(resultlist,keypair); + } + } + return resultlist; +} + + +/* Accessed from python */ + +// this code looks ugly, please use an ordinary hashtable + +char ToCharacter(int keyIndex, bool shifted) +{ + /* numerals */ + if ( (keyIndex >= SCA_IInputDevice::KX_ZEROKEY) + && (keyIndex <= SCA_IInputDevice::KX_NINEKEY) ) { + if (shifted) { + char numshift[] = ")!@#$%^&*("; + return numshift[keyIndex - '0']; + } else { + return keyIndex - SCA_IInputDevice::KX_ZEROKEY + '0'; + } + } + + /* letters... always lowercase... is that desirable? */ + if ( (keyIndex >= SCA_IInputDevice::KX_AKEY) + && (keyIndex <= SCA_IInputDevice::KX_ZKEY) ) { + if (shifted) { + return keyIndex - SCA_IInputDevice::KX_AKEY + 'A'; + } else { + return keyIndex - SCA_IInputDevice::KX_AKEY + 'a'; + } + } + + if (keyIndex == SCA_IInputDevice::KX_SPACEKEY) { + return ' '; + } + if (keyIndex == SCA_IInputDevice::KX_RETKEY || keyIndex == SCA_IInputDevice::KX_PADENTER) { + return '\n'; + } + + + if (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) { + return '*'; + } + + if (keyIndex == SCA_IInputDevice::KX_TABKEY) { + return '\t'; + } + + /* comma to period */ + char commatoperiod[] = ",-."; + char commatoperiodshifted[] = "<_>"; + if (keyIndex == SCA_IInputDevice::KX_COMMAKEY) { + if (shifted) { + return commatoperiodshifted[0]; + } else { + return commatoperiod[0]; + } + } + if (keyIndex == SCA_IInputDevice::KX_MINUSKEY) { + if (shifted) { + return commatoperiodshifted[1]; + } else { + return commatoperiod[1]; + } + } + if (keyIndex == SCA_IInputDevice::KX_PERIODKEY) { + if (shifted) { + return commatoperiodshifted[2]; + } else { + return commatoperiod[2]; + } + } + + /* semicolon to rightbracket */ + char semicolontorightbracket[] = ";\'`/\\=[]"; + char semicolontorightbracketshifted[] = ":\"~\?|+{}"; + if ((keyIndex >= SCA_IInputDevice::KX_SEMICOLONKEY) + && (keyIndex <= SCA_IInputDevice::KX_RIGHTBRACKETKEY)) { + if (shifted) { + return semicolontorightbracketshifted[keyIndex - SCA_IInputDevice::KX_SEMICOLONKEY]; + } else { + return semicolontorightbracket[keyIndex - SCA_IInputDevice::KX_SEMICOLONKEY]; + } + } + + /* keypad2 to padplus */ + char pad2topadplus[] = "246813579. 0- +"; + if ((keyIndex >= SCA_IInputDevice::KX_PAD2) + && (keyIndex <= SCA_IInputDevice::KX_PADPLUSKEY)) { + return pad2topadplus[keyIndex - SCA_IInputDevice::KX_PAD2]; + } + + return '!'; +} + + + +/** + * Determine whether this character can be printed. We cannot use + * the library functions here, because we need to test our own + * keycodes. */ +bool IsPrintable(int keyIndex) +{ + /* only print + * - numerals: KX_ZEROKEY to KX_NINEKEY + * - alphas: KX_AKEY to KX_ZKEY. + * - specials: KX_RETKEY, KX_PADASTERKEY, KX_PADCOMMAKEY to KX_PERIODKEY, + * KX_TABKEY , KX_SEMICOLONKEY to KX_RIGHTBRACKETKEY, + * KX_PAD2 to KX_PADPLUSKEY + * - delete and backspace: also printable in the sense that they modify + * the string + * - retkey: should this be printable? + * - virgule: prints a space... don't know which key that's supposed + * to be... + */ + if ( ((keyIndex >= SCA_IInputDevice::KX_ZEROKEY) + && (keyIndex <= SCA_IInputDevice::KX_NINEKEY)) + || ((keyIndex >= SCA_IInputDevice::KX_AKEY) + && (keyIndex <= SCA_IInputDevice::KX_ZKEY)) + || (keyIndex == SCA_IInputDevice::KX_SPACEKEY) + || (keyIndex == SCA_IInputDevice::KX_RETKEY) + || (keyIndex == SCA_IInputDevice::KX_PADENTER) + || (keyIndex == SCA_IInputDevice::KX_PADASTERKEY) + || (keyIndex == SCA_IInputDevice::KX_TABKEY) + || ((keyIndex >= SCA_IInputDevice::KX_COMMAKEY) + && (keyIndex <= SCA_IInputDevice::KX_PERIODKEY)) + || ((keyIndex >= SCA_IInputDevice::KX_SEMICOLONKEY) + && (keyIndex <= SCA_IInputDevice::KX_RIGHTBRACKETKEY)) + || ((keyIndex >= SCA_IInputDevice::KX_PAD2) + && (keyIndex <= SCA_IInputDevice::KX_PADPLUSKEY)) + || (keyIndex == SCA_IInputDevice::KX_DELKEY) + || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) + ) + { + return true; + } else { + return false; + } +} + +/** + * Tests whether this is a delete key. + */ +bool IsDelete(int keyIndex) +{ + if ( (keyIndex == SCA_IInputDevice::KX_DELKEY) + || (keyIndex == SCA_IInputDevice::KX_BACKSPACEKEY) ) { + return true; + } else { + return false; + } +} diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h index c579b6a82f8..eb26afc96ff 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h @@ -81,22 +81,6 @@ class SCA_KeyboardSensor : public SCA_ISensor */ void AddToTargetProp(int keyIndex); - /** - * Determine whether this character can be printed. We cannot use - * the library functions here, because we need to test our own - * keycodes. */ - bool IsPrintable(int keyIndex); - - /** - * Transform keycodes to something printable. - */ - char ToCharacter(int keyIndex, bool shifted); - - /** - * Tests whether this is a delete key. - */ - bool IsDelete(int keyIndex); - /** * Tests whether shift is pressed. */ @@ -152,7 +136,29 @@ public: KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,getEventList); // KeyStatus: KX_PYMETHOD_DOC_O(SCA_KeyboardSensor,getKeyStatus); + + static PyObject* pyattr_get_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; + +/** + * Transform keycodes to something printable. + */ +char ToCharacter(int keyIndex, bool shifted); + +/** + * Determine whether this character can be printed. We cannot use + * the library functions here, because we need to test our own + * keycodes. */ +bool IsPrintable(int keyIndex); + +/** + * Tests whether this is a delete key. + */ +bool IsDelete(int keyIndex); + + #endif //__KX_KEYBOARDSENSOR + + diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 88aa042f502..e1afde5353a 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -54,6 +54,7 @@ #include "SCA_IInputDevice.h" #include "SCA_PropertySensor.h" #include "SCA_RandomActuator.h" +#include "SCA_KeyboardSensor.h" /* IsPrintable, ToCharacter */ #include "KX_ConstraintActuator.h" #include "KX_IpoActuator.h" #include "KX_SoundActuator.h" @@ -162,7 +163,7 @@ static PyObject* gPyExpandPath(PyObject*, PyObject* args) char expanded[FILE_MAXDIR + FILE_MAXFILE]; char* filename; - if (!PyArg_ParseTuple(args,"s",&filename)) + if (!PyArg_ParseTuple(args,"s:ExpandPath",&filename)) return NULL; BLI_strncpy(expanded, filename, FILE_MAXDIR + FILE_MAXFILE); @@ -185,7 +186,7 @@ static PyObject* gPySendMessage(PyObject*, PyObject* args) char* to = ""; char* from = ""; - if (!PyArg_ParseTuple(args, "s|sss", &subject, &body, &to, &from)) + if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to, &from)) return NULL; gp_KetsjiScene->GetNetworkScene()->SendMessage(to, from, subject, body); @@ -268,7 +269,7 @@ static PyObject* gPyStopDSP(PyObject*, PyObject* args) static PyObject* gPySetLogicTicRate(PyObject*, PyObject* args) { float ticrate; - if (!PyArg_ParseTuple(args, "f", &ticrate)) + if (!PyArg_ParseTuple(args, "f:setLogicTicRate", &ticrate)) return NULL; KX_KetsjiEngine::SetTicRate(ticrate); @@ -283,7 +284,7 @@ static PyObject* gPyGetLogicTicRate(PyObject*) static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args) { float ticrate; - if (!PyArg_ParseTuple(args, "f", &ticrate)) + if (!PyArg_ParseTuple(args, "f:setPhysicsTicRate", &ticrate)) return NULL; PHY_GetActiveEnvironment()->setFixedTimeStep(true,ticrate); @@ -293,7 +294,7 @@ static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args) static PyObject* gPySetPhysicsDebug(PyObject*, PyObject* args) { int debugMode; - if (!PyArg_ParseTuple(args, "i", &debugMode)) + if (!PyArg_ParseTuple(args, "i:setPhysicsDebug", &debugMode)) return NULL; PHY_GetActiveEnvironment()->setDebugMode(debugMode); @@ -321,7 +322,7 @@ static PyObject* gPyGetBlendFileList(PyObject*, PyObject* args) DIR *dp; struct dirent *dirp; - if (!PyArg_ParseTuple(args, "|s", &searchpath)) + if (!PyArg_ParseTuple(args, "|s:getBlendFileList", &searchpath)) return NULL; list = PyList_New(0); @@ -507,7 +508,7 @@ bool gUseVisibilityTemp = false; static PyObject* gPyEnableVisibility(PyObject*, PyObject* args) { int visible; - if (!PyArg_ParseTuple(args,"i",&visible)) + if (!PyArg_ParseTuple(args,"i:enableVisibility",&visible)) return NULL; gUseVisibilityTemp = (visible != 0); @@ -519,7 +520,7 @@ static PyObject* gPyEnableVisibility(PyObject*, PyObject* args) static PyObject* gPyShowMouse(PyObject*, PyObject* args) { int visible; - if (!PyArg_ParseTuple(args,"i",&visible)) + if (!PyArg_ParseTuple(args,"i:showMouse",&visible)) return NULL; if (visible) @@ -540,7 +541,7 @@ static PyObject* gPyShowMouse(PyObject*, PyObject* args) static PyObject* gPySetMousePosition(PyObject*, PyObject* args) { int x,y; - if (!PyArg_ParseTuple(args,"ii",&x,&y)) + if (!PyArg_ParseTuple(args,"ii:setMousePosition",&x,&y)) return NULL; if (gp_Canvas) @@ -552,7 +553,7 @@ static PyObject* gPySetMousePosition(PyObject*, PyObject* args) static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args) { float sep; - if (!PyArg_ParseTuple(args, "f", &sep)) + if (!PyArg_ParseTuple(args, "f:setEyeSeparation", &sep)) return NULL; if (!gp_Rasterizer) { @@ -565,7 +566,7 @@ static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args) Py_RETURN_NONE; } -static PyObject* gPyGetEyeSeparation(PyObject*, PyObject*, PyObject*) +static PyObject* gPyGetEyeSeparation(PyObject*) { if (!gp_Rasterizer) { PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); @@ -578,7 +579,7 @@ static PyObject* gPyGetEyeSeparation(PyObject*, PyObject*, PyObject*) static PyObject* gPySetFocalLength(PyObject*, PyObject* args) { float focus; - if (!PyArg_ParseTuple(args, "f", &focus)) + if (!PyArg_ParseTuple(args, "f:setFocalLength", &focus)) return NULL; if (!gp_Rasterizer) { @@ -641,7 +642,7 @@ static PyObject* gPySetMistStart(PyObject*, PyObject* args) { float miststart; - if (!PyArg_ParseTuple(args,"f",&miststart)) + if (!PyArg_ParseTuple(args,"f:setMistStart",&miststart)) return NULL; if (!gp_Rasterizer) { @@ -660,7 +661,7 @@ static PyObject* gPySetMistEnd(PyObject*, PyObject* args) { float mistend; - if (!PyArg_ParseTuple(args,"f",&mistend)) + if (!PyArg_ParseTuple(args,"f:setMistEnd",&mistend)) return NULL; if (!gp_Rasterizer) { @@ -696,7 +697,7 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* value) static PyObject* gPyMakeScreenshot(PyObject*, PyObject* args) { char* filename; - if (!PyArg_ParseTuple(args,"s",&filename)) + if (!PyArg_ParseTuple(args,"s:makeScreenshot",&filename)) return NULL; if (gp_Canvas) @@ -710,7 +711,7 @@ static PyObject* gPyMakeScreenshot(PyObject*, PyObject* args) static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args) { float motionblurvalue; - if (!PyArg_ParseTuple(args,"f",&motionblurvalue)) + if (!PyArg_ParseTuple(args,"f:enableMotionBlur",&motionblurvalue)) return NULL; if (!gp_Rasterizer) { @@ -760,7 +761,7 @@ static PyObject* gPySetGLSLMaterialSetting(PyObject*, char *setting; int enable, flag, fileflags; - if (!PyArg_ParseTuple(args,"si",&setting,&enable)) + if (!PyArg_ParseTuple(args,"si:setGLSLMaterialSetting",&setting,&enable)) return NULL; flag = getGLSLSettingFlag(setting); @@ -801,7 +802,7 @@ static PyObject* gPyGetGLSLMaterialSetting(PyObject*, char *setting; int enabled = 0, flag; - if (!PyArg_ParseTuple(args,"s",&setting)) + if (!PyArg_ParseTuple(args,"s:getGLSLMaterialSetting",&setting)) return NULL; flag = getGLSLSettingFlag(setting); @@ -825,7 +826,7 @@ static PyObject* gPySetMaterialType(PyObject*, { int flag, type; - if (!PyArg_ParseTuple(args,"i",&type)) + if (!PyArg_ParseTuple(args,"i:setMaterialType",&type)) return NULL; if(type == KX_BLENDER_GLSL_MATERIAL) @@ -870,7 +871,7 @@ static PyObject* gPyDrawLine(PyObject*, PyObject* args) return NULL; } - if (!PyArg_ParseTuple(args,"OOO",&ob_from,&ob_to,&ob_color)) + if (!PyArg_ParseTuple(args,"OOO:drawLine",&ob_from,&ob_to,&ob_color)) return NULL; MT_Vector3 from; @@ -911,7 +912,7 @@ static struct PyMethodDef rasterizer_methods[] = { {"setEyeSeparation", (PyCFunction) gPySetEyeSeparation, METH_VARARGS, "set the eye separation for stereo mode"}, - {"getEyeSeparation", (PyCFunction) gPyGetEyeSeparation, METH_VARARGS, "get the eye separation for stereo mode"}, + {"getEyeSeparation", (PyCFunction) gPyGetEyeSeparation, METH_NOARGS, "get the eye separation for stereo mode"}, {"setFocalLength", (PyCFunction) gPySetFocalLength, METH_VARARGS, "set the focal length for stereo mode"}, {"getFocalLength", (PyCFunction) gPyGetFocalLength, METH_VARARGS, "get the focal length for stereo mode"}, {"setMaterialMode",(PyCFunction) gPySetMaterialType, @@ -1462,7 +1463,7 @@ static char GameKeys_module_documentation[] = ; static char gPyEventToString_doc[] = -"Take a valid event from the GameKeys module or Keyboard Sensor and return a name" +"EventToString(event) - Take a valid event from the GameKeys module or Keyboard Sensor and return a name" ; static PyObject* gPyEventToString(PyObject*, PyObject* value) @@ -1491,7 +1492,29 @@ static PyObject* gPyEventToString(PyObject*, PyObject* value) return ret; } +static char gPyEventToCharacter_doc[] = +"EventToCharacter(event, is_shift) - Take a valid event from the GameKeys module or Keyboard Sensor and return a character" +; + +static PyObject* gPyEventToCharacter(PyObject*, PyObject* args) +{ + int event, shift; + if (!PyArg_ParseTuple(args,"ii:EventToCharacter", &event, &shift)) + return NULL; + + if(IsPrintable(event)) { + char ch[2] = {'\0', '\0'}; + ch[0] = ToCharacter(event, (bool)shift); + return PyString_FromString(ch); + } + else { + return PyString_FromString(""); + } +} + + static struct PyMethodDef gamekeys_methods[] = { + {"EventToCharacter", (PyCFunction)gPyEventToCharacter, METH_VARARGS, (PY_METHODCHAR)gPyEventToCharacter_doc}, {"EventToString", (PyCFunction)gPyEventToString, METH_O, (PY_METHODCHAR)gPyEventToString_doc}, { NULL, (PyCFunction) NULL, 0, NULL } }; diff --git a/source/gameengine/PyDoc/GameKeys.py b/source/gameengine/PyDoc/GameKeys.py index 1a0a737718e..310f2b0d506 100644 --- a/source/gameengine/PyDoc/GameKeys.py +++ b/source/gameengine/PyDoc/GameKeys.py @@ -134,26 +134,20 @@ Example:: co = GameLogic.getCurrentController() # 'Keyboard' is a keyboard sensor sensor = co.getSensor('Keyboard') - sensor.setKey(GameKeys.F1KEY) + sensor.key = GameKeys.F1KEY Example:: # Do the all keys thing import GameLogic import GameKeys - - # status: these should be added to a module somewhere - KX_NO_INPUTSTATUS = 0 - KX_JUSTACTIVATED = 1 - KX_ACTIVE = 2 - KX_JUSTRELEASED = 3 - + co = GameLogic.getCurrentController() # 'Keyboard' is a keyboard sensor sensor = co.getSensor('Keyboard') - keylist = sensor.getPressedKeys() + keylist = sensor.events for key in keylist: # key[0] == GameKeys.keycode, key[1] = status - if key[1] == KX_JUSTACTIVATED: + if key[1] == GameLogic.KX_INPUT_JUST_ACTIVATED: if key[0] == GameKeys.WKEY: # Activate Forward! if key[0] == GameKeys.SKEY: @@ -173,3 +167,15 @@ def EventToString(event): @param event: key event from GameKeys or the keyboard sensor. @rtype: string """ + +def EventToCharacter(event, shift): + """ + Return the string name of a key event. Returns an empty string if the event cant be represented as a character. + + @type event: int + @param event: key event from GameKeys or the keyboard sensor. + @type event: bool + @param event: set to true if shift is held. + @rtype: string + """ + From 09a5ffdf07677016b4e8eae8df02c47cd94ca6d8 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 9 Apr 2009 20:40:12 +0000 Subject: [PATCH 127/201] BGE API cleanup: sound actuator. --- source/gameengine/Ketsji/KX_PythonInit.cpp | 7 + source/gameengine/Ketsji/KX_SoundActuator.cpp | 350 ++++++++++++++++-- source/gameengine/Ketsji/KX_SoundActuator.h | 33 +- source/gameengine/PyDoc/KX_SoundActuator.py | 53 ++- 4 files changed, 397 insertions(+), 46 deletions(-) diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index e1afde5353a..8b8b62e9310 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1147,6 +1147,13 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, RAS_2DFILTER_INVERT, RAS_2DFilterManager::RAS_2DFILTER_INVERT); KX_MACRO_addTypesToDict(d, RAS_2DFILTER_CUSTOMFILTER, RAS_2DFilterManager::RAS_2DFILTER_CUSTOMFILTER); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_PLAYSTOP, KX_SoundActuator::KX_SOUNDACT_PLAYSTOP); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_PLAYEND, KX_SoundActuator::KX_SOUNDACT_PLAYEND); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPSTOP, KX_SoundActuator::KX_SOUNDACT_LOOPSTOP); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPEND, KX_SoundActuator:: KX_SOUNDACT_LOOPEND); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPBIDIRECTIONAL, KX_SoundActuator::KX_SOUNDACT_LOOPBIDIRECTIONAL); + KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP, KX_SoundActuator::KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP); + // Check for errors if (PyErr_Occurred()) diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index b8d660daa08..ecc3b574079 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -35,6 +35,7 @@ #include "KX_GameObject.h" #include "SND_SoundObject.h" #include "SND_Scene.h" // needed for replication +#include "KX_PyMath.h" // needed for PyObjectFrom() #include #ifdef HAVE_CONFIG_H @@ -264,11 +265,9 @@ PyParentObject KX_SoundActuator::Parents[] = { PyMethodDef KX_SoundActuator::Methods[] = { + // Deprecated -----> {"setFilename", (PyCFunction) KX_SoundActuator::sPySetFilename, METH_VARARGS,NULL}, {"getFilename", (PyCFunction) KX_SoundActuator::sPyGetFilename, METH_VARARGS,NULL}, - {"startSound",(PyCFunction) KX_SoundActuator::sPyStartSound,METH_VARARGS,NULL}, - {"pauseSound",(PyCFunction) KX_SoundActuator::sPyPauseSound,METH_VARARGS,NULL}, - {"stopSound",(PyCFunction) KX_SoundActuator::sPyStopSound,METH_VARARGS,NULL}, {"setGain",(PyCFunction) KX_SoundActuator::sPySetGain,METH_VARARGS,NULL}, {"getGain",(PyCFunction) KX_SoundActuator::sPyGetGain,METH_VARARGS,NULL}, {"setPitch",(PyCFunction) KX_SoundActuator::sPySetPitch,METH_VARARGS,NULL}, @@ -282,23 +281,316 @@ PyMethodDef KX_SoundActuator::Methods[] = { {"setOrientation",(PyCFunction) KX_SoundActuator::sPySetOrientation,METH_VARARGS,NULL}, {"setType",(PyCFunction) KX_SoundActuator::sPySetType,METH_VARARGS,NULL}, {"getType",(PyCFunction) KX_SoundActuator::sPyGetType,METH_VARARGS,NULL}, + // <----- + + KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, startSound), + KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, pauseSound), + KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, stopSound), {NULL,NULL,NULL,NULL} //Sentinel }; PyAttributeDef KX_SoundActuator::Attributes[] = { + KX_PYATTRIBUTE_RW_FUNCTION("filename", KX_SoundActuator, pyattr_get_filename, pyattr_set_filename), + KX_PYATTRIBUTE_RW_FUNCTION("volume", KX_SoundActuator, pyattr_get_gain, pyattr_set_gain), + KX_PYATTRIBUTE_RW_FUNCTION("pitch", KX_SoundActuator, pyattr_get_pitch, pyattr_set_pitch), + KX_PYATTRIBUTE_RW_FUNCTION("rollOffFactor", KX_SoundActuator, pyattr_get_rollOffFactor, pyattr_set_rollOffFactor), + KX_PYATTRIBUTE_RW_FUNCTION("looping", KX_SoundActuator, pyattr_get_looping, pyattr_set_looping), + KX_PYATTRIBUTE_RW_FUNCTION("position", KX_SoundActuator, pyattr_get_position, pyattr_set_position), + KX_PYATTRIBUTE_RW_FUNCTION("velocity", KX_SoundActuator, pyattr_get_velocity, pyattr_set_velocity), + KX_PYATTRIBUTE_RW_FUNCTION("orientation", KX_SoundActuator, pyattr_get_orientation, pyattr_set_orientation), + KX_PYATTRIBUTE_ENUM_RW("type",KX_SoundActuator::KX_SOUNDACT_NODEF+1,KX_SoundActuator::KX_SOUNDACT_MAX-1,false,KX_SoundActuator,m_type), { NULL } //Sentinel }; +/* Methods ----------------------------------------------------------------- */ +KX_PYMETHODDEF_DOC_NOARGS(KX_SoundActuator, startSound, +"startSound()\n" +"\tStarts the sound.\n") +{ + if (m_soundObject) + // This has no effect if the actuator is not active. + // To start the sound you must activate the actuator. + // This function is to restart the sound. + m_soundObject->StartSound(); + Py_RETURN_NONE; +} + +KX_PYMETHODDEF_DOC_NOARGS(KX_SoundActuator, pauseSound, +"pauseSound()\n" +"\tPauses the sound.\n") +{ + if (m_soundObject) + // unfortunately, openal does not implement pause correctly, it is equivalent to a stop + m_soundObject->PauseSound(); + Py_RETURN_NONE; +} + +KX_PYMETHODDEF_DOC_NOARGS(KX_SoundActuator, stopSound, +"stopSound()\n" +"\tStops the sound.\n") +{ + if (m_soundObject) + m_soundObject->StopSound(); + Py_RETURN_NONE; +} + +/* Atribute setting and getting -------------------------------------------- */ PyObject* KX_SoundActuator::py_getattro(PyObject *attr) { py_getattro_up(SCA_IActuator); } +int KX_SoundActuator::py_setattro(PyObject *attr, PyObject* value) { + py_setattro_up(SCA_IActuator); +} + +PyObject* KX_SoundActuator::pyattr_get_filename(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + if (!actuator->m_soundObject) + { + return PyString_FromString(""); + } + STR_String objectname = actuator->m_soundObject->GetObjectName(); + char* name = objectname.Ptr(); + + if (!name) { + PyErr_SetString(PyExc_RuntimeError, "Unable to get sound filename"); + return NULL; + } else + return PyString_FromString(name); +} + +PyObject* KX_SoundActuator::pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + float gain = (actuator->m_soundObject) ? actuator->m_soundObject->GetGain() : 1.0f; + + PyObject* result = PyFloat_FromDouble(gain); + + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + float pitch = (actuator->m_soundObject) ? actuator->m_soundObject->GetPitch() : 1.0; + PyObject* result = PyFloat_FromDouble(pitch); + + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_rollOffFactor(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + float rollofffactor = (actuator->m_soundObject) ? actuator->m_soundObject->GetRollOffFactor() : 1.0; + PyObject* result = PyFloat_FromDouble(rollofffactor); + + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_looping(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + int looping = (actuator->m_soundObject) ? actuator->m_soundObject->GetLoopMode() : (int)SND_LOOP_OFF; + PyObject* result = PyInt_FromLong(looping); + + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_position(void * self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + MT_Vector3 pos(0.0, 0.0, 0.0); + + if (actuator->m_soundObject) + pos = actuator->m_soundObject->GetPosition(); + + PyObject * result = PyObjectFrom(pos); + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_velocity(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + MT_Vector3 vel; + + if (actuator->m_soundObject) + vel = actuator->m_soundObject->GetVelocity(); + + PyObject * result = PyObjectFrom(vel); + return result; +} + +PyObject* KX_SoundActuator::pyattr_get_orientation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_SoundActuator * actuator = static_cast (self); + MT_Matrix3x3 ori; + + if (actuator->m_soundObject) + ori = actuator->m_soundObject->GetOrientation(); + + PyObject * result = PyObjectFrom(ori); + return result; +} + +int KX_SoundActuator::pyattr_set_filename(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + char *soundName = NULL; + KX_SoundActuator * actuator = static_cast (self); + // void *soundPointer = NULL; /*unused*/ + + if (!PyArg_Parse(value, "s", &soundName)) + return 1; + + if (actuator->m_soundObject) { + actuator->m_soundObject->SetObjectName(soundName); + } + + return 0; +} +int KX_SoundActuator::pyattr_set_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + float gain = 1.0; + KX_SoundActuator * actuator = static_cast (self); + if (!PyArg_Parse(value, "f", &gain)) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetGain(gain); + + return 0; +} + +int KX_SoundActuator::pyattr_set_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + float pitch = 1.0; + KX_SoundActuator * actuator = static_cast (self); + if (!PyArg_Parse(value, "f", &pitch)) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetPitch(pitch); + + return 0; +} + +int KX_SoundActuator::pyattr_set_rollOffFactor(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_SoundActuator * actuator = static_cast (self); + float rollofffactor = 1.0; + if (!PyArg_Parse(value, "f", &rollofffactor)) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetRollOffFactor(rollofffactor); + + return 0; +} + +int KX_SoundActuator::pyattr_set_looping(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_SoundActuator * actuator = static_cast (self); + int looping = 1; + if (!PyArg_Parse(value, "i", &looping)) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetLoopMode(looping); + + return 0; +} + +int KX_SoundActuator::pyattr_set_position(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + float pos[3]; + + KX_SoundActuator * actuator = static_cast (self); + + if (!PyArg_ParseTuple(value, "fff", &pos[0], &pos[1], &pos[2])) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetPosition(MT_Vector3(pos)); + + return 0; +} + +int KX_SoundActuator::pyattr_set_velocity(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + float vel[3]; + KX_SoundActuator * actuator = static_cast (self); + + + if (!PyArg_ParseTuple(value, "fff", &vel[0], &vel[1], &vel[2])) + return 1; + + if (actuator->m_soundObject) + actuator->m_soundObject->SetVelocity(MT_Vector3(vel)); + + return 0; + +} + +int KX_SoundActuator::pyattr_set_orientation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + + MT_Matrix3x3 rot; + KX_SoundActuator * actuator = static_cast (self); + + if (!PySequence_Check(value)) { + PyErr_SetString(PyExc_AttributeError, "'orientation' attribute needs to be a sequence"); + return 1; + } + + if (!actuator->m_soundObject) + return 0; /* Since not having m_soundObject didn't do anything in the old version, + * it probably should be kept that way */ + + if (PyMatTo(value, rot)) + { + actuator->m_soundObject->SetOrientation(rot); + return 0; + } + PyErr_Clear(); + + + if (PySequence_Size(value) == 4) + { + MT_Quaternion qrot; + if (PyVecTo(value, qrot)) + { + rot.setRotation(qrot); + actuator->m_soundObject->SetOrientation(rot); + return 0; + } + return 1; + } + + if (PySequence_Size(value) == 3) + { + MT_Vector3 erot; + if (PyVecTo(value, erot)) + { + rot.setEuler(erot); + actuator->m_soundObject->SetOrientation(rot); + return 0; + } + return 1; + } + + PyErr_SetString(PyExc_AttributeError, "could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); + return 1; + +} + +// Deprecated -----> PyObject* KX_SoundActuator::PySetFilename(PyObject* self, PyObject* args, PyObject* kwds) { char *soundName = NULL; + ShowDeprecationWarning("setFilename()", "the filename property"); // void *soundPointer = NULL; /*unused*/ if (!PyArg_ParseTuple(args, "s", &soundName)) @@ -307,10 +599,9 @@ PyObject* KX_SoundActuator::PySetFilename(PyObject* self, PyObject* args, PyObje Py_RETURN_NONE; } - - PyObject* KX_SoundActuator::PyGetFilename(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getFilename()", "the filename property"); if (!m_soundObject) { return PyString_FromString(""); @@ -325,41 +616,9 @@ PyObject* KX_SoundActuator::PyGetFilename(PyObject* self, PyObject* args, PyObje return PyString_FromString(name); } - - -PyObject* KX_SoundActuator::PyStartSound(PyObject* self, PyObject* args, PyObject* kwds) -{ - if (m_soundObject) - // This has no effect if the actuator is not active. - // To start the sound you must activate the actuator. - // This function is to restart the sound. - m_soundObject->StartSound(); - Py_RETURN_NONE; -} - - - -PyObject* KX_SoundActuator::PyPauseSound(PyObject* self, PyObject* args, PyObject* kwds) -{ - if (m_soundObject) - // unfortunately, openal does not implement pause correctly, it is equivalent to a stop - m_soundObject->PauseSound(); - Py_RETURN_NONE; -} - - - -PyObject* KX_SoundActuator::PyStopSound(PyObject* self, PyObject* args, PyObject* kwds) -{ - if (m_soundObject) - m_soundObject->StopSound(); - Py_RETURN_NONE; -} - - - PyObject* KX_SoundActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setGain()", "the volume property"); float gain = 1.0; if (!PyArg_ParseTuple(args, "f", &gain)) return NULL; @@ -374,6 +633,7 @@ PyObject* KX_SoundActuator::PySetGain(PyObject* self, PyObject* args, PyObject* PyObject* KX_SoundActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getGain()", "the volume property"); float gain = (m_soundObject) ? m_soundObject->GetGain() : 1.0f; PyObject* result = PyFloat_FromDouble(gain); @@ -384,6 +644,7 @@ PyObject* KX_SoundActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* PyObject* KX_SoundActuator::PySetPitch(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setPitch()", "the pitch property"); float pitch = 1.0; if (!PyArg_ParseTuple(args, "f", &pitch)) return NULL; @@ -398,6 +659,7 @@ PyObject* KX_SoundActuator::PySetPitch(PyObject* self, PyObject* args, PyObject* PyObject* KX_SoundActuator::PyGetPitch(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getPitch()", "the pitch property"); float pitch = (m_soundObject) ? m_soundObject->GetPitch() : 1.0; PyObject* result = PyFloat_FromDouble(pitch); @@ -408,6 +670,7 @@ PyObject* KX_SoundActuator::PyGetPitch(PyObject* self, PyObject* args, PyObject* PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setRollOffFactor()", "the rollOffFactor property"); float rollofffactor = 1.0; if (!PyArg_ParseTuple(args, "f", &rollofffactor)) return NULL; @@ -422,6 +685,7 @@ PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* self, PyObject* args, P PyObject* KX_SoundActuator::PyGetRollOffFactor(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getRollOffFactor()", "the rollOffFactor property"); float rollofffactor = (m_soundObject) ? m_soundObject->GetRollOffFactor() : 1.0; PyObject* result = PyFloat_FromDouble(rollofffactor); @@ -432,6 +696,7 @@ PyObject* KX_SoundActuator::PyGetRollOffFactor(PyObject* self, PyObject* args, P PyObject* KX_SoundActuator::PySetLooping(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setLooping()", "the looping property"); bool looping = 1; if (!PyArg_ParseTuple(args, "i", &looping)) return NULL; @@ -446,6 +711,7 @@ PyObject* KX_SoundActuator::PySetLooping(PyObject* self, PyObject* args, PyObjec PyObject* KX_SoundActuator::PyGetLooping(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getLooping()", "the looping property"); int looping = (m_soundObject) ? m_soundObject->GetLoopMode() : (int)SND_LOOP_OFF; PyObject* result = PyInt_FromLong(looping); @@ -457,6 +723,7 @@ PyObject* KX_SoundActuator::PyGetLooping(PyObject* self, PyObject* args, PyObjec PyObject* KX_SoundActuator::PySetPosition(PyObject* self, PyObject* args, PyObject* kwds) { MT_Point3 pos; + ShowDeprecationWarning("setPosition()", "the position property"); pos[0] = 0.0; pos[1] = 0.0; pos[2] = 0.0; @@ -475,6 +742,7 @@ PyObject* KX_SoundActuator::PySetPosition(PyObject* self, PyObject* args, PyObje PyObject* KX_SoundActuator::PySetVelocity(PyObject* self, PyObject* args, PyObject* kwds) { MT_Vector3 vel; + ShowDeprecationWarning("setVelocity()", "the velocity property"); vel[0] = 0.0; vel[1] = 0.0; vel[2] = 0.0; @@ -493,6 +761,7 @@ PyObject* KX_SoundActuator::PySetVelocity(PyObject* self, PyObject* args, PyObje PyObject* KX_SoundActuator::PySetOrientation(PyObject* self, PyObject* args, PyObject* kwds) { MT_Matrix3x3 ori; + ShowDeprecationWarning("setOrientation()", "the orientation property"); ori[0][0] = 1.0; ori[0][1] = 0.0; ori[0][2] = 0.0; @@ -515,6 +784,7 @@ PyObject* KX_SoundActuator::PySetOrientation(PyObject* self, PyObject* args, PyO PyObject* KX_SoundActuator::PySetType(PyObject* self, PyObject* args, PyObject* kwds) { int typeArg; + ShowDeprecationWarning("setType()", "the type property"); if (!PyArg_ParseTuple(args, "i", &typeArg)) { return NULL; @@ -530,8 +800,8 @@ PyObject* KX_SoundActuator::PySetType(PyObject* self, PyObject* args, PyObject* PyObject* KX_SoundActuator::PyGetType(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("getType()", "the type property"); return PyInt_FromLong(m_type); } - - +// <----- diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h index 3e4a4168434..eb18ba9f13e 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.h +++ b/source/gameengine/Ketsji/KX_SoundActuator.h @@ -80,13 +80,36 @@ public: /* Python interface --------------------------------------------------- */ /* -------------------------------------------------------------------- */ - virtual PyObject* py_getattro(PyObject *attr); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); + KX_PYMETHOD_DOC_NOARGS(KX_SoundActuator, startSound); + KX_PYMETHOD_DOC_NOARGS(KX_SoundActuator, pauseSound); + KX_PYMETHOD_DOC_NOARGS(KX_SoundActuator, stopSound); + + static int pyattr_set_filename(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_rollOffFactor(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_looping(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_position(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_velocity(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_orientation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static int pyattr_set_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + + static PyObject* pyattr_get_filename(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_looping(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_rollOffFactor(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_position(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_velocity(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_orientation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + + // Deprecated -----> KX_PYMETHOD(KX_SoundActuator,SetFilename); KX_PYMETHOD(KX_SoundActuator,GetFilename); - KX_PYMETHOD(KX_SoundActuator,StartSound); - KX_PYMETHOD(KX_SoundActuator,PauseSound); - KX_PYMETHOD(KX_SoundActuator,StopSound); KX_PYMETHOD(KX_SoundActuator,SetGain); KX_PYMETHOD(KX_SoundActuator,GetGain); KX_PYMETHOD(KX_SoundActuator,SetPitch); @@ -100,6 +123,8 @@ public: KX_PYMETHOD(KX_SoundActuator,SetOrientation); KX_PYMETHOD(KX_SoundActuator,SetType); KX_PYMETHOD(KX_SoundActuator,GetType); + // <----- + }; #endif //__KX_SOUNDACTUATOR diff --git a/source/gameengine/PyDoc/KX_SoundActuator.py b/source/gameengine/PyDoc/KX_SoundActuator.py index 072af5b816c..383b45e6eb9 100644 --- a/source/gameengine/PyDoc/KX_SoundActuator.py +++ b/source/gameengine/PyDoc/KX_SoundActuator.py @@ -8,17 +8,53 @@ class KX_SoundActuator(SCA_IActuator): The L{startSound()}, L{pauseSound()} and L{stopSound()} do not require the actuator to be activated - they act instantly. + + @ivar filename: Sets the filename of the sound this actuator plays. + @type filename: string + + @ivar volume: Sets the volume (gain) of the sound. + @type volume: float + + @ivar pitch: Sets the pitch of the sound. + @type pitch: float - @group Play Methods: startSound, pauseSound, stopSound + @ivar rollOffFactor: Sets the roll off factor. Rolloff defines the rate of attenuation as the sound gets further away. + @type rollOffFactor: float + + @ivar looping: Sets the loop mode of the actuator. + @type looping: integer + + @ivar position: Sets the position of the sound. + @type position: float array + + @ivar velocity: Sets the speed of the sound; The speed of the sound alter the pitch. + @type velocity: float array + + @ivar orientation: Sets the orientation of the sound. When setting the orientation you can + also use quaternion [float,float,float,float] or euler angles [float,float,float] + @type orientation: 3x3 matrix [[float]] + + @ivar type: Sets the operation mode of the actuator. You can use one of the following constant: + KX_SOUNDACT_PLAYSTOP (1) + KX_SOUNDACT_PLAYEND (2) + KX_SOUNDACT_LOOPSTOP (3) + KX_SOUNDACT_LOOPEND (4) + KX_SOUNDACT_LOOPBIDIRECTIONAL (5) + KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP (6) + @type type: integer + + @group Play Methods: startSound, pauseSound, stopSound. """ def setFilename(filename): """ - Sets the filename of the sound this actuator plays. + DEPRECATED: Use the filename property instead. + Sets the filename of the sound this actuator plays. @type filename: string """ def getFilename(): """ + DEPRECATED: Use the filename property instead. Returns the filename of the sound this actuator plays. @rtype: string @@ -37,6 +73,7 @@ class KX_SoundActuator(SCA_IActuator): """ def setGain(gain): """ + DEPRECATED: Use the volume property instead Sets the gain (volume) of the sound @type gain: float @@ -44,24 +81,28 @@ class KX_SoundActuator(SCA_IActuator): """ def getGain(): """ + DEPRECATED: Use the volume property instead. Gets the gain (volume) of the sound. @rtype: float """ def setPitch(pitch): """ + DEPRECATED: Use the pitch property instead. Sets the pitch of the sound. @type pitch: float """ def getPitch(): """ + DEPRECATED: Use the pitch property instead. Returns the pitch of the sound. @rtype: float """ def setRollOffFactor(rolloff): """ + DEPRECATED: Use the rollOffFactor property instead. Sets the rolloff factor for the sounds. Rolloff defines the rate of attenuation as the sound gets further away. @@ -71,12 +112,14 @@ class KX_SoundActuator(SCA_IActuator): """ def getRollOffFactor(): """ + DEPRECATED: Use the rollOffFactor property instead. Returns the rolloff factor for the sound. @rtype: float """ def setLooping(loop): """ + DEPRECATED: Use the looping property instead. Sets the loop mode of the actuator. @bug: There are no constants defined for this method! @@ -90,12 +133,14 @@ class KX_SoundActuator(SCA_IActuator): """ def getLooping(): """ + DEPRECATED: Use the looping property instead. Returns the current loop mode of the actuator. @rtype: integer """ def setPosition(x, y, z): """ + DEPRECATED: Use the position property instead. Sets the position this sound will come from. @type x: float @@ -107,6 +152,7 @@ class KX_SoundActuator(SCA_IActuator): """ def setVelocity(vx, vy, vz): """ + DEPRECATED: Use the velocity property instead. Sets the velocity this sound is moving at. The sound's pitch is determined from the velocity. @@ -120,6 +166,7 @@ class KX_SoundActuator(SCA_IActuator): """ def setOrientation(o11, o12, o13, o21, o22, o23, o31, o32, o33): """ + DEPRECATED: Use the orientation property instead. Sets the orientation of the sound. The nine parameters specify a rotation matrix:: @@ -130,6 +177,7 @@ class KX_SoundActuator(SCA_IActuator): def setType(mode): """ + DEPRECATED: Use the type property instead. Sets the operation mode of the actuator. @param mode: KX_SOUNDACT_PLAYSTOP, KX_SOUNDACT_PLAYEND, KX_SOUNDACT_LOOPSTOP, KX_SOUNDACT_LOOPEND, KX_SOUNDACT_LOOPBIDIRECTIONAL, KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP @@ -138,6 +186,7 @@ class KX_SoundActuator(SCA_IActuator): def getType(): """ + DEPRECATED: Use the type property instead. Returns the operation mode of the actuator. @rtype: integer From b0cca7de267f84768ee1eba0955373a24b661aad Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 9 Apr 2009 21:15:44 +0000 Subject: [PATCH 128/201] BGE API cleanup: StateActuator. --- source/gameengine/Ketsji/KX_PythonInit.cpp | 6 ++++++ source/gameengine/Ketsji/KX_StateActuator.cpp | 10 ++++++++++ source/gameengine/Ketsji/KX_StateActuator.h | 7 +++++-- source/gameengine/PyDoc/KX_SoundActuator.py | 3 ++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 8b8b62e9310..4ad9853f9c4 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -58,6 +58,7 @@ #include "KX_ConstraintActuator.h" #include "KX_IpoActuator.h" #include "KX_SoundActuator.h" +#include "KX_StateActuator.h" #include "BL_ActionActuator.h" #include "RAS_IRasterizer.h" #include "RAS_ICanvas.h" @@ -1154,6 +1155,11 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPBIDIRECTIONAL, KX_SoundActuator::KX_SOUNDACT_LOOPBIDIRECTIONAL); KX_MACRO_addTypesToDict(d, KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP, KX_SoundActuator::KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP); + KX_MACRO_addTypesToDict(d, KX_STATE_OP_CPY, KX_StateActuator::OP_CPY); + KX_MACRO_addTypesToDict(d, KX_STATE_OP_SET, KX_StateActuator::OP_SET); + KX_MACRO_addTypesToDict(d, KX_STATE_OP_CLR, KX_StateActuator::OP_CLR); + KX_MACRO_addTypesToDict(d, KX_STATE_OP_NEG, KX_StateActuator::OP_NEG); + // Check for errors if (PyErr_Occurred()) diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index 31457230f60..e9e3c091ef3 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -138,14 +138,18 @@ KX_StateActuator::Parents[] = { PyMethodDef KX_StateActuator::Methods[] = { + // deprecated --> {"setOperation", (PyCFunction) KX_StateActuator::sPySetOperation, METH_VARARGS, (PY_METHODCHAR)SetOperation_doc}, {"setMask", (PyCFunction) KX_StateActuator::sPySetMask, METH_VARARGS, (PY_METHODCHAR)SetMask_doc}, + // <-- {NULL,NULL} //Sentinel }; PyAttributeDef KX_StateActuator::Attributes[] = { + KX_PYATTRIBUTE_INT_RW("operation",KX_StateActuator::OP_NOP+1,KX_StateActuator::OP_COUNT-1,false,KX_StateActuator,m_operation), + KX_PYATTRIBUTE_INT_RW("mask",0,0x3FFFFFFF,false,KX_StateActuator,m_mask), { NULL } //Sentinel }; @@ -154,6 +158,10 @@ PyObject* KX_StateActuator::py_getattro(PyObject *attr) py_getattro_up(SCA_IActuator); }; +int KX_StateActuator::py_setattro(PyObject *attr, PyObject* value) +{ + py_setattro_up(SCA_IActuator); +} /* set operation ---------------------------------------------------------- */ @@ -168,6 +176,7 @@ PyObject* KX_StateActuator::PySetOperation(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setOperation()", "the operation property"); int oper; if(!PyArg_ParseTuple(args, "i", &oper)) { @@ -193,6 +202,7 @@ PyObject* KX_StateActuator::PySetMask(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setMask()", "the mask property"); int mask; if(!PyArg_ParseTuple(args, "i", &mask)) { diff --git a/source/gameengine/Ketsji/KX_StateActuator.h b/source/gameengine/Ketsji/KX_StateActuator.h index b6f1acf4a00..426753dadfd 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.h +++ b/source/gameengine/Ketsji/KX_StateActuator.h @@ -39,13 +39,15 @@ class KX_StateActuator : public SCA_IActuator /** Make visible? */ enum { + OP_NOP = -1, OP_CPY = 0, OP_SET, OP_CLR, - OP_NEG + OP_NEG, + OP_COUNT }; int m_operation; - unsigned int m_mask; + int m_mask; public: @@ -74,6 +76,7 @@ class KX_StateActuator : public SCA_IActuator /* --------------------------------------------------------------------- */ virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); //KX_PYMETHOD_DOC KX_PYMETHOD_DOC(KX_StateActuator,SetOperation); KX_PYMETHOD_DOC(KX_StateActuator,SetMask); diff --git a/source/gameengine/PyDoc/KX_SoundActuator.py b/source/gameengine/PyDoc/KX_SoundActuator.py index 383b45e6eb9..37ae3c6640d 100644 --- a/source/gameengine/PyDoc/KX_SoundActuator.py +++ b/source/gameengine/PyDoc/KX_SoundActuator.py @@ -7,7 +7,8 @@ class KX_SoundActuator(SCA_IActuator): Sound Actuator. The L{startSound()}, L{pauseSound()} and L{stopSound()} do not require - the actuator to be activated - they act instantly. + the actuator to be activated - they act instantly provided that the actuator has + been activated once at least. @ivar filename: Sets the filename of the sound this actuator plays. @type filename: string From ac45472a1707934573a12d629a21a81c3ed409ba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Apr 2009 22:15:26 +0000 Subject: [PATCH 129/201] BGE Bugfix The End key didn't work work at all for the keyboard sensor. Removed getEventList() since it was added since 2.48a release. --- .../KX_BlenderKeyboardDevice.cpp | 4 +-- .../GameLogic/SCA_KeyboardSensor.cpp | 35 +++---------------- .../GamePlayer/common/GPC_KeyboardDevice.cpp | 8 ++--- source/gameengine/PyDoc/SCA_KeyboardSensor.py | 9 ----- 4 files changed, 10 insertions(+), 46 deletions(-) diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp index 4b794380610..877a0d39acf 100644 --- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp +++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp @@ -74,7 +74,7 @@ void KX_BlenderKeyboardDevice::NextFrame() // now convert justpressed keyevents into regular (active) keyevents int previousTable = 1-m_currentTable; - for (int keyevent= KX_BEGINKEY; keyevent< KX_ENDKEY;keyevent++) + for (int keyevent= KX_BEGINKEY; keyevent<= KX_ENDKEY;keyevent++) { SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent]; if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED || @@ -100,7 +100,7 @@ bool KX_BlenderKeyboardDevice::ConvertBlenderEvent(unsigned short incode,short v KX_EnumInputs kxevent = this->ToNative(incode); // only process it, if it's a key - if (kxevent >= KX_BEGINKEY && kxevent < KX_ENDKEY) + if (kxevent >= KX_BEGINKEY && kxevent <= KX_ENDKEY) { int previousTable = 1-m_currentTable; diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 6c6f5b4d5e4..ecdf889124d 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -148,7 +148,7 @@ bool SCA_KeyboardSensor::Evaluate(CValue* eventval) bool justreleased = false; bool active = false; - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++) { const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); switch (inevent.m_status) @@ -387,7 +387,7 @@ void SCA_KeyboardSensor::LogKeystrokes(void) int index = 0; /* Check on all keys whether they were pushed. This does not * untangle the ordering, so don't type too fast :) */ - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++) { const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); if (inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) //NO_INPUTSTATUS) @@ -522,7 +522,7 @@ PyObject* SCA_KeyboardSensor::PyGetPressedKeys(PyObject* self, PyObject* args, P int index = 0; - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++) { const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); if ((inevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED) @@ -562,7 +562,7 @@ PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject { int index = 0; - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++) { const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); if ( (inevent.m_status == SCA_InputEvent::KX_ACTIVE) @@ -583,30 +583,6 @@ PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject return resultlist; } - -KX_PYMETHODDEF_DOC_NOARGS(SCA_KeyboardSensor, getEventList, -"getEventList()\n" -"\tGet the list of the keyboard events in this frame.\n") -{ - ShowDeprecationWarning("getEventList()", "events"); - - SCA_IInputDevice* inputdev = m_pKeyboardMgr->GetInputDevice(); - - PyObject* resultlist = PyList_New(0); - - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) - { - const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); - if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS) - { - PyObject* keypair = PyList_New(2); - PyList_SET_ITEM(keypair,0,PyInt_FromLong(i)); - PyList_SetItem(keypair,1,PyInt_FromLong(inevent.m_status)); - PyList_Append(resultlist,keypair); - } - } - return resultlist; -} //<---- Deprecated KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, @@ -673,7 +649,6 @@ PyMethodDef SCA_KeyboardSensor::Methods[] = { {"getPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetPressedKeys_doc}, {"getCurrentlyPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetCurrentlyPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetCurrentlyPressedKeys_doc}, //<----- Deprecated - KX_PYMETHODTABLE_NOARGS(SCA_KeyboardSensor, getEventList), KX_PYMETHODTABLE_O(SCA_KeyboardSensor, getKeyStatus), {NULL,NULL} //Sentinel }; @@ -709,7 +684,7 @@ PyObject* SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBU PyObject* resultlist = PyList_New(0); - for (int i=SCA_IInputDevice::KX_BEGINKEY ; i< SCA_IInputDevice::KX_ENDKEY;i++) + for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++) { const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i); if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS) diff --git a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp index 474df9276a7..472ff580392 100644 --- a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp +++ b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp @@ -42,7 +42,7 @@ void GPC_KeyboardDevice::NextFrame() // Now convert justpressed key events into regular (active) keyevents int previousTable = 1-m_currentTable; - for (int keyevent= KX_BEGINKEY; keyevent< KX_ENDKEY;keyevent++) + for (int keyevent= KX_BEGINKEY; keyevent<= KX_ENDKEY;keyevent++) { SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][keyevent]; if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED || @@ -69,7 +69,7 @@ bool GPC_KeyboardDevice::ConvertEvent(int incode, int val) KX_EnumInputs kxevent = this->ToNative(incode); // only process it, if it's a key - if (kxevent >= KX_BEGINKEY && kxevent < KX_ENDKEY) + if (kxevent >= KX_BEGINKEY && kxevent <= KX_ENDKEY) { int previousTable = 1-m_currentTable; @@ -114,9 +114,7 @@ bool GPC_KeyboardDevice::ConvertEvent(int incode, int val) } } } - } else if(kxevent==KX_ENDKEY) { - exit(1); - } + } return result; } diff --git a/source/gameengine/PyDoc/SCA_KeyboardSensor.py b/source/gameengine/PyDoc/SCA_KeyboardSensor.py index 93a09acafcf..8abb1fda762 100644 --- a/source/gameengine/PyDoc/SCA_KeyboardSensor.py +++ b/source/gameengine/PyDoc/SCA_KeyboardSensor.py @@ -31,15 +31,6 @@ class SCA_KeyboardSensor(SCA_ISensor): @type events: list [[keycode, status], ...] """ - def getEventList(): - """ - Get a list of pressed keys that have either been pressed, or just released, or are active this frame. - - B{DEPRECATED: Use the "events" property instead}. - - @rtype: list of key status. [[keycode, status]] - @return: A list of keyboard events - """ def getKeyStatus(keycode): """ From 5031fe982ea464ccb49ccfb4df857bf9dcb27c33 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 9 Apr 2009 23:10:12 +0000 Subject: [PATCH 130/201] BGE API cleanup: ConstraintActuator. --- .../Ketsji/KX_ConstraintActuator.cpp | 107 ++++++++++++++---- .../gameengine/Ketsji/KX_ConstraintActuator.h | 9 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 12 ++ .../gameengine/PyDoc/KX_ConstraintActuator.py | 69 +++++++++++ source/gameengine/PyDoc/KX_StateActuator.py | 18 +++ 5 files changed, 189 insertions(+), 26 deletions(-) diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index feee851bb01..b41435e71a1 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -36,6 +36,7 @@ #include "MT_Matrix3x3.h" #include "KX_GameObject.h" #include "KX_RayCast.h" +#include "blendef.h" #ifdef HAVE_CONFIG_H #include @@ -57,19 +58,21 @@ KX_ConstraintActuator::KX_ConstraintActuator(SCA_IObject *gameobj, char *property, PyTypeObject* T) : SCA_IActuator(gameobj, T), - m_refDirection(refDir), + m_refDirVector(refDir), m_currentTime(0) { + m_refDirection[0] = refDir[0]; + m_refDirection[1] = refDir[1]; + m_refDirection[2] = refDir[2]; m_posDampTime = posDampTime; m_rotDampTime = rotDampTime; m_locrot = locrotxyz; m_option = option; m_activeTime = time; if (property) { - strncpy(m_property, property, sizeof(m_property)); - m_property[sizeof(m_property)-1] = 0; + m_property = property; } else { - m_property[0] = 0; + m_property = ""; } /* The units of bounds are determined by the type of constraint. To */ /* make the constraint application easier and more transparent later on, */ @@ -80,13 +83,16 @@ KX_ConstraintActuator::KX_ConstraintActuator(SCA_IObject *gameobj, case KX_ACT_CONSTRAINT_ORIY: case KX_ACT_CONSTRAINT_ORIZ: { - MT_Scalar len = m_refDirection.length(); + MT_Scalar len = m_refDirVector.length(); if (MT_fuzzyZero(len)) { // missing a valid direction std::cout << "WARNING: Constraint actuator " << GetName() << ": There is no valid reference direction!" << std::endl; m_locrot = KX_ACT_CONSTRAINT_NODEF; } else { - m_refDirection /= len; + m_refDirection[0] /= len; + m_refDirection[1] /= len; + m_refDirection[2] /= len; + m_refDirVector /= len; } m_minimumBound = cos(minBound); m_maximumBound = cos(maxBound); @@ -116,7 +122,7 @@ bool KX_ConstraintActuator::RayHit(KX_ClientObjectInfo* client, KX_RayCast* resu bool bFound = false; - if (m_property[0] == 0) + if (m_property.IsEmpty()) { bFound = true; } @@ -126,7 +132,7 @@ bool KX_ConstraintActuator::RayHit(KX_ClientObjectInfo* client, KX_RayCast* resu { if (client->m_auxilary_info) { - bFound = !strcmp(m_property, ((char*)client->m_auxilary_info)); + bFound = !strcmp(m_property.Ptr(), ((char*)client->m_auxilary_info)); } } else @@ -209,7 +215,7 @@ bool KX_ConstraintActuator::Update(double curtime, bool frame) if ((m_maximumBound < (1.0f-FLT_EPSILON)) || (m_minimumBound < (1.0f-FLT_EPSILON))) { // reference direction needs to be evaluated // 1. get the cosine between current direction and target - cosangle = direction.dot(m_refDirection); + cosangle = direction.dot(m_refDirVector); if (cosangle >= (m_maximumBound-FLT_EPSILON) && cosangle <= (m_minimumBound+FLT_EPSILON)) { // no change to do result = true; @@ -218,27 +224,27 @@ bool KX_ConstraintActuator::Update(double curtime, bool frame) // 2. define a new reference direction // compute local axis with reference direction as X and // Y in direction X refDirection plane - MT_Vector3 zaxis = m_refDirection.cross(direction); + MT_Vector3 zaxis = m_refDirVector.cross(direction); if (MT_fuzzyZero2(zaxis.length2())) { // direction and refDirection are identical, // choose any other direction to define plane if (direction[0] < 0.9999) - zaxis = m_refDirection.cross(MT_Vector3(1.0,0.0,0.0)); + zaxis = m_refDirVector.cross(MT_Vector3(1.0,0.0,0.0)); else - zaxis = m_refDirection.cross(MT_Vector3(0.0,1.0,0.0)); + zaxis = m_refDirVector.cross(MT_Vector3(0.0,1.0,0.0)); } - MT_Vector3 yaxis = zaxis.cross(m_refDirection); + MT_Vector3 yaxis = zaxis.cross(m_refDirVector); yaxis.normalize(); if (cosangle > m_minimumBound) { // angle is too close to reference direction, // choose a new reference that is exactly at minimum angle - refDirection = m_minimumBound * m_refDirection + m_minimumSine * yaxis; + refDirection = m_minimumBound * m_refDirVector + m_minimumSine * yaxis; } else { // angle is too large, choose new reference direction at maximum angle - refDirection = m_maximumBound * m_refDirection + m_maximumSine * yaxis; + refDirection = m_maximumBound * m_refDirVector + m_maximumSine * yaxis; } } else { - refDirection = m_refDirection; + refDirection = m_refDirVector; } // apply damping on the direction direction = filter*direction + (1.0-filter)*refDirection; @@ -470,7 +476,7 @@ bool KX_ConstraintActuator::Update(double curtime, bool frame) // Fh force is stored in m_maximum MT_Scalar springForce = springExtent * m_maximumBound; // damping is stored in m_refDirection [0] = damping, [1] = rot damping - MT_Scalar springDamp = relativeVelocityRay * m_refDirection[0]; + MT_Scalar springDamp = relativeVelocityRay * m_refDirVector[0]; MT_Vector3 newVelocity = spc->GetLinearVelocity()-(springForce+springDamp)*direction; if (m_option & KX_ACT_CONSTRAINT_NORMAL) { @@ -483,7 +489,7 @@ bool KX_ConstraintActuator::Update(double curtime, bool frame) MT_Vector3 angVelocity = spc->GetAngularVelocity(); // remove component that is parallel to normal angVelocity -= angVelocity.dot(newnormal)*newnormal; - MT_Vector3 angDamp = angVelocity * ((m_refDirection[1]>MT_EPSILON)?m_refDirection[1]:m_refDirection[0]); + MT_Vector3 angDamp = angVelocity * ((m_refDirVector[1]>MT_EPSILON)?m_refDirVector[1]:m_refDirVector[0]); spc->SetAngularVelocity(spc->GetAngularVelocity()+(angSpring-angDamp), false); } } else if (m_option & KX_ACT_CONSTRAINT_PERMANENT) { @@ -587,6 +593,7 @@ PyParentObject KX_ConstraintActuator::Parents[] = { }; PyMethodDef KX_ConstraintActuator::Methods[] = { + // Deprecated --> {"setDamp", (PyCFunction) KX_ConstraintActuator::sPySetDamp, METH_VARARGS, (PY_METHODCHAR)SetDamp_doc}, {"getDamp", (PyCFunction) KX_ConstraintActuator::sPyGetDamp, METH_NOARGS, (PY_METHODCHAR)GetDamp_doc}, {"setRotDamp", (PyCFunction) KX_ConstraintActuator::sPySetRotDamp, METH_VARARGS, (PY_METHODCHAR)SetRotDamp_doc}, @@ -609,17 +616,49 @@ PyMethodDef KX_ConstraintActuator::Methods[] = { {"getRayLength", (PyCFunction) KX_ConstraintActuator::sPyGetMax, METH_NOARGS, (PY_METHODCHAR)GetRayLength_doc}, {"setLimit", (PyCFunction) KX_ConstraintActuator::sPySetLimit, METH_VARARGS, (PY_METHODCHAR)SetLimit_doc}, {"getLimit", (PyCFunction) KX_ConstraintActuator::sPyGetLimit, METH_NOARGS, (PY_METHODCHAR)GetLimit_doc}, + // <-- {NULL,NULL} //Sentinel }; PyAttributeDef KX_ConstraintActuator::Attributes[] = { + KX_PYATTRIBUTE_INT_RW("damp",0,100,true,KX_ConstraintActuator,m_posDampTime), + KX_PYATTRIBUTE_INT_RW("rotDamp",0,100,true,KX_ConstraintActuator,m_rotDampTime), + KX_PYATTRIBUTE_FLOAT_ARRAY_RW_CHECK("direction",-MAXFLOAT,MAXFLOAT,KX_ConstraintActuator,m_refDirection,3,pyattr_check_direction), + KX_PYATTRIBUTE_INT_RW("option",0,0xFFFF,false,KX_ConstraintActuator,m_option), + KX_PYATTRIBUTE_INT_RW("time",0,1000,true,KX_ConstraintActuator,m_activeTime), + KX_PYATTRIBUTE_STRING_RW("property",0,32,true,KX_ConstraintActuator,m_property), + KX_PYATTRIBUTE_FLOAT_RW("min",-MAXFLOAT,MAXFLOAT,KX_ConstraintActuator,m_minimumBound), + KX_PYATTRIBUTE_FLOAT_RW("distance",-MAXFLOAT,MAXFLOAT,KX_ConstraintActuator,m_minimumBound), + KX_PYATTRIBUTE_FLOAT_RW("max",-MAXFLOAT,MAXFLOAT,KX_ConstraintActuator,m_maximumBound), + KX_PYATTRIBUTE_FLOAT_RW("rayLength",0,2000.f,KX_ConstraintActuator,m_maximumBound), + KX_PYATTRIBUTE_INT_RW("limit",KX_ConstraintActuator::KX_ACT_CONSTRAINT_NODEF+1,KX_ConstraintActuator::KX_ACT_CONSTRAINT_MAX-1,false,KX_ConstraintActuator,m_locrot), { NULL } //Sentinel }; -PyObject* KX_ConstraintActuator::py_getattro(PyObject *attr) { +PyObject* KX_ConstraintActuator::py_getattro(PyObject *attr) +{ py_getattro_up(SCA_IActuator); } +int KX_ConstraintActuator::py_setattro(PyObject *attr, PyObject* value) +{ + py_setattro_up(SCA_IActuator); +} + + +int KX_ConstraintActuator::pyattr_check_direction(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_ConstraintActuator* act = static_cast(self); + MT_Vector3 dir(act->m_refDirection); + MT_Scalar len = dir.length(); + if (MT_fuzzyZero(len)) { + PyErr_SetString(PyExc_ValueError, "Invalid direction"); + return 1; + } + act->m_refDirVector = dir/len; + return 0; +} + /* 2. setDamp */ const char KX_ConstraintActuator::SetDamp_doc[] = "setDamp(duration)\n" @@ -629,6 +668,7 @@ const char KX_ConstraintActuator::SetDamp_doc[] = PyObject* KX_ConstraintActuator::PySetDamp(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setDamp()", "the damp property"); int dampArg; if(!PyArg_ParseTuple(args, "i", &dampArg)) { return NULL; @@ -644,6 +684,7 @@ const char KX_ConstraintActuator::GetDamp_doc[] = "getDamp()\n" "\tReturns the damping parameter.\n"; PyObject* KX_ConstraintActuator::PyGetDamp(PyObject* self){ + ShowDeprecationWarning("getDamp()", "the damp property"); return PyInt_FromLong(m_posDampTime); } @@ -656,6 +697,7 @@ const char KX_ConstraintActuator::SetRotDamp_doc[] = PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setRotDamp()", "the rotDamp property"); int dampArg; if(!PyArg_ParseTuple(args, "i", &dampArg)) { return NULL; @@ -671,6 +713,7 @@ const char KX_ConstraintActuator::GetRotDamp_doc[] = "getRotDamp()\n" "\tReturns the damping time for application of the constraint.\n"; PyObject* KX_ConstraintActuator::PyGetRotDamp(PyObject* self){ + ShowDeprecationWarning("getRotDamp()", "the rotDamp property"); return PyInt_FromLong(m_rotDampTime); } @@ -682,6 +725,7 @@ const char KX_ConstraintActuator::SetDirection_doc[] = PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setDirection()", "the direction property"); float x, y, z; MT_Scalar len; MT_Vector3 dir; @@ -697,7 +741,10 @@ PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, std::cout << "Invalid direction" << std::endl; return NULL; } - m_refDirection = dir/len; + m_refDirVector = dir/len; + m_refDirection[0] = x/len; + m_refDirection[1] = y/len; + m_refDirection[2] = z/len; Py_RETURN_NONE; } @@ -706,6 +753,7 @@ const char KX_ConstraintActuator::GetDirection_doc[] = "getDirection()\n" "\tReturns the reference direction of the orientation constraint as a 3-tuple.\n"; PyObject* KX_ConstraintActuator::PyGetDirection(PyObject* self){ + ShowDeprecationWarning("getDirection()", "the direction property"); PyObject *retVal = PyList_New(3); PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_refDirection[0])); @@ -727,6 +775,7 @@ const char KX_ConstraintActuator::SetOption_doc[] = PyObject* KX_ConstraintActuator::PySetOption(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setOption()", "the option property"); int option; if(!PyArg_ParseTuple(args, "i", &option)) { return NULL; @@ -741,6 +790,7 @@ const char KX_ConstraintActuator::GetOption_doc[] = "getOption()\n" "\tReturns the option parameter.\n"; PyObject* KX_ConstraintActuator::PyGetOption(PyObject* self){ + ShowDeprecationWarning("getOption()", "the option property"); return PyInt_FromLong(m_option); } @@ -754,6 +804,7 @@ const char KX_ConstraintActuator::SetTime_doc[] = PyObject* KX_ConstraintActuator::PySetTime(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setTime()", "the time property"); int t; if(!PyArg_ParseTuple(args, "i", &t)) { return NULL; @@ -770,6 +821,7 @@ const char KX_ConstraintActuator::GetTime_doc[] = "getTime()\n" "\tReturns the time parameter.\n"; PyObject* KX_ConstraintActuator::PyGetTime(PyObject* self){ + ShowDeprecationWarning("getTime()", "the time property"); return PyInt_FromLong(m_activeTime); } @@ -782,15 +834,15 @@ const char KX_ConstraintActuator::SetProperty_doc[] = PyObject* KX_ConstraintActuator::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setProperty()", "the 'property' property"); char *property; if (!PyArg_ParseTuple(args, "s", &property)) { return NULL; } if (property == NULL) { - m_property[0] = 0; + m_property = ""; } else { - strncpy(m_property, property, sizeof(m_property)); - m_property[sizeof(m_property)-1] = 0; + m_property = property; } Py_RETURN_NONE; @@ -800,7 +852,8 @@ const char KX_ConstraintActuator::GetProperty_doc[] = "getProperty()\n" "\tReturns the property parameter.\n"; PyObject* KX_ConstraintActuator::PyGetProperty(PyObject* self){ - return PyString_FromString(m_property); + ShowDeprecationWarning("getProperty()", "the 'property' property"); + return PyString_FromString(m_property.Ptr()); } /* 4. setDistance */ @@ -817,6 +870,7 @@ const char KX_ConstraintActuator::SetMin_doc[] = PyObject* KX_ConstraintActuator::PySetMin(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setMin() or setDistance()", "the min or distance property"); float minArg; if(!PyArg_ParseTuple(args, "f", &minArg)) { return NULL; @@ -845,6 +899,7 @@ const char KX_ConstraintActuator::GetMin_doc[] = "\tReturns the lower value of the interval to which the value\n" "\tis clipped.\n"; PyObject* KX_ConstraintActuator::PyGetMin(PyObject* self) { + ShowDeprecationWarning("getMin() or getDistance()", "the min or distance property"); return PyFloat_FromDouble(m_minimumBound); } @@ -862,6 +917,7 @@ const char KX_ConstraintActuator::SetMax_doc[] = PyObject* KX_ConstraintActuator::PySetMax(PyObject* self, PyObject* args, PyObject* kwds){ + ShowDeprecationWarning("setMax() or setRayLength()", "the max or rayLength property"); float maxArg; if(!PyArg_ParseTuple(args, "f", &maxArg)) { return NULL; @@ -890,6 +946,7 @@ const char KX_ConstraintActuator::GetMax_doc[] = "\tReturns the upper value of the interval to which the value\n" "\tis clipped.\n"; PyObject* KX_ConstraintActuator::PyGetMax(PyObject* self) { + ShowDeprecationWarning("getMax() or getRayLength()", "the max or rayLength property"); return PyFloat_FromDouble(m_maximumBound); } @@ -915,6 +972,7 @@ const char KX_ConstraintActuator::SetLimit_doc[] = PyObject* KX_ConstraintActuator::PySetLimit(PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setLimit()", "the limit property"); int locrotArg; if(!PyArg_ParseTuple(args, "i", &locrotArg)) { return NULL; @@ -929,6 +987,7 @@ const char KX_ConstraintActuator::GetLimit_doc[] = "getLimit()\n" "\tReturns the type of constraint.\n"; PyObject* KX_ConstraintActuator::PyGetLimit(PyObject* self) { + ShowDeprecationWarning("setLimit()", "the limit property"); return PyInt_FromLong(m_locrot); } diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h index 193400fbf2b..7ad6e043c49 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.h +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h @@ -56,7 +56,8 @@ protected: // sinus of maximum angle float m_maximumSine; // reference direction - MT_Vector3 m_refDirection; + float m_refDirection[3]; + MT_Vector3 m_refDirVector; // same as m_refDirection // locrotxyz choice (pick one): only one choice allowed at a time! int m_locrot; // active time of actuator @@ -65,7 +66,7 @@ protected: // option int m_option; // property to check - char m_property[32]; + STR_String m_property; // hit object KX_GameObject* m_hitObject; @@ -143,6 +144,10 @@ protected: /* --------------------------------------------------------------------- */ virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject* value); + + static int pyattr_check_direction(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_check_min(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); KX_PYMETHOD_DOC(KX_ConstraintActuator,SetDamp); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetDamp); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 4ad9853f9c4..7ed83465c49 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1000,6 +1000,12 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_CONSTRAINTACT_ORIX, KX_ConstraintActuator::KX_ACT_CONSTRAINT_ORIX); KX_MACRO_addTypesToDict(d, KX_CONSTRAINTACT_ORIY, KX_ConstraintActuator::KX_ACT_CONSTRAINT_ORIY); KX_MACRO_addTypesToDict(d, KX_CONSTRAINTACT_ORIZ, KX_ConstraintActuator::KX_ACT_CONSTRAINT_ORIZ); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHPX, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHPX); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHPY, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHPY); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHPZ, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHPZ); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHNX, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHNX); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHNY, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHNY); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_FHNZ, KX_ConstraintActuator::KX_ACT_CONSTRAINT_FHNZ); /* 4. Ipo actuator, simple part */ KX_MACRO_addTypesToDict(d, KX_IPOACT_PLAY, KX_IpoActuator::KX_ACT_IPO_PLAY); @@ -1160,6 +1166,12 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_STATE_OP_CLR, KX_StateActuator::OP_CLR); KX_MACRO_addTypesToDict(d, KX_STATE_OP_NEG, KX_StateActuator::OP_NEG); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_NORMAL, KX_ConstraintActuator::KX_ACT_CONSTRAINT_NORMAL); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_MATERIAL, KX_ConstraintActuator::KX_ACT_CONSTRAINT_MATERIAL); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_PERMANENT, KX_ConstraintActuator::KX_ACT_CONSTRAINT_PERMANENT); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_DISTANCE, KX_ConstraintActuator::KX_ACT_CONSTRAINT_DISTANCE); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_LOCAL, KX_ConstraintActuator::KX_ACT_CONSTRAINT_LOCAL); + KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_DOROTFH, KX_ConstraintActuator::KX_ACT_CONSTRAINT_DOROTFH); // Check for errors if (PyErr_Occurred()) diff --git a/source/gameengine/PyDoc/KX_ConstraintActuator.py b/source/gameengine/PyDoc/KX_ConstraintActuator.py index 7c7ad5aa0fa..a30b859548b 100644 --- a/source/gameengine/PyDoc/KX_ConstraintActuator.py +++ b/source/gameengine/PyDoc/KX_ConstraintActuator.py @@ -5,6 +5,75 @@ from SCA_IActuator import * class KX_ConstraintActuator(SCA_IActuator): """ A constraint actuator limits the position, rotation, distance or orientation of an object. + + Properties: + + @ivar damp: time constant of the constraint expressed in frame (not use by Force field constraint) + @type damp: integer + + @ivar rotDamp: time constant for the rotation expressed in frame (only for the distance constraint) + 0 = use damp for rotation as well + @type rotDamp: integer + + @ivar direction: the reference direction in world coordinate for the orientation constraint + @type direction: 3-tuple of float: [x,y,z] + + @ivar option: Binary combination of the following values: + Applicable to Distance constraint: + KX_ACT_CONSTRAINT_NORMAL ( 64) : Activate alignment to surface + KX_ACT_CONSTRAINT_DISTANCE ( 512) : Activate distance control + KX_ACT_CONSTRAINT_LOCAL (1024) : direction of the ray is along the local axis + Applicable to Force field constraint: + KX_ACT_CONSTRAINT_DOROTFH (2048) : Force field act on rotation as well + Applicable to both: + KX_ACT_CONSTRAINT_MATERIAL ( 128) : Detect material rather than property + KX_ACT_CONSTRAINT_PERMANENT ( 256) : No deactivation if ray does not hit target + @type option: integer + + @ivar time: activation time of the actuator. The actuator disables itself after this many frame. + If set to 0, the actuator is not limited in time. + @type time: integer + + @ivar property: the name of the property or material for the ray detection of the distance constraint. + @type property: string + + @ivar min: The lower bound of the constraint + For the rotation and orientation constraint, it represents radiant + @type min: float + + @ivar distance: the target distance of the distance constraint + @type distance: float + + @ivar max: the upper bound of the constraint. + For rotation and orientation constraints, it represents radiant. + @type max: float + + @ivar rayLength: the length of the ray of the distance constraint. + @type rayLength: float + + @ivar limit: type of constraint, use one of the following constant: + KX_ACT_CONSTRAINT_LOCX ( 1) : limit X coord + KX_ACT_CONSTRAINT_LOCY ( 2) : limit Y coord + KX_ACT_CONSTRAINT_LOCZ ( 3) : limit Z coord + KX_ACT_CONSTRAINT_ROTX ( 4) : limit X rotation + KX_ACT_CONSTRAINT_ROTY ( 5) : limit Y rotation + KX_ACT_CONSTRAINT_ROTZ ( 6) : limit Z rotation + KX_ACT_CONSTRAINT_DIRPX ( 7) : set distance along positive X axis + KX_ACT_CONSTRAINT_DIRPY ( 8) : set distance along positive Y axis + KX_ACT_CONSTRAINT_DIRPZ ( 9) : set distance along positive Z axis + KX_ACT_CONSTRAINT_DIRNX (10) : set distance along negative X axis + KX_ACT_CONSTRAINT_DIRNY (11) : set distance along negative Y axis + KX_ACT_CONSTRAINT_DIRNZ (12) : set distance along negative Z axis + KX_ACT_CONSTRAINT_ORIX (13) : set orientation of X axis + KX_ACT_CONSTRAINT_ORIY (14) : set orientation of Y axis + KX_ACT_CONSTRAINT_ORIZ (15) : set orientation of Z axis + KX_ACT_CONSTRAINT_FHPX (16) : set force field along positive X axis + KX_ACT_CONSTRAINT_FHPY (17) : set force field along positive Y axis + KX_ACT_CONSTRAINT_FHPZ (18) : set force field along positive Z axis + KX_ACT_CONSTRAINT_FHNX (19) : set force field along negative X axis + KX_ACT_CONSTRAINT_FHNY (20) : set force field along negative Y axis + KX_ACT_CONSTRAINT_FHNZ (21) : set force field along negative Z axis + @type limit: integer """ def setDamp(time): """ diff --git a/source/gameengine/PyDoc/KX_StateActuator.py b/source/gameengine/PyDoc/KX_StateActuator.py index fb6ae5a3621..fe3669d3809 100644 --- a/source/gameengine/PyDoc/KX_StateActuator.py +++ b/source/gameengine/PyDoc/KX_StateActuator.py @@ -5,9 +5,26 @@ from SCA_IActuator import * class KX_StateActuator(SCA_IActuator): """ State actuator changes the state mask of parent object. + + Property: + + @ivar operation: type of bit operation to be applied on object state mask. + You can use one of the following constant: + KX_STATE_OP_CPY (0) : Copy state mask + KX_STATE_OP_SET (1) : Add bits to state mask + KX_STATE_OP_CLR (2) : Substract bits to state mask + KX_STATE_OP_NEG (3) : Invert bits to state mask + @type operation: integer + + @ivar mask: value that defines the bits that will be modified by the operation. + The bits that are 1 in the mask will be updated in the object state, + the bits that are 0 are will be left unmodified expect for the Copy operation + which copies the mask to the object state + @type mask: integer """ def setOperation(op): """ + DEPRECATED: Use the operation property instead. Set the type of bit operation to be applied on object state mask. Use setMask() to specify the bits that will be modified. @@ -16,6 +33,7 @@ class KX_StateActuator(SCA_IActuator): """ def setMask(mask): """ + DEPRECATED: Use the mask property instead. Set the value that defines the bits that will be modified by the operation. The bits that are 1 in the value will be updated in the object state, the bits that are 0 are will be left unmodified expect for the Copy operation From 6121d4b9fe188919c3c7f971a66c421d7eb86478 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Thu, 9 Apr 2009 23:43:25 +0000 Subject: [PATCH 131/201] Particle effector falloff maxdist etc. didn't work like it was supposed to. --- source/blender/blenkernel/intern/effect.c | 24 +++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index a6514ae7b87..cca5d68167e 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -298,24 +298,22 @@ static float wind_func(struct RNG *rng, float strength) return ret; } - +/* maxdist: zero effect from this distance outwards (if usemax) */ +/* mindist: full effect up to this distance (if usemin) */ +/* power: falloff with formula 1/r^power */ static float falloff_func(float fac, int usemin, float mindist, int usemax, float maxdist, float power) { - if(!usemin) - mindist= 0.0f; + /* first quick checks */ + if(usemax && fac > maxdist) + return 0.0f; - if(fac < mindist) { + if(usemin && fac < mindist) return 1.0f; - } - else if(usemax) { - if(fac>maxdist || (maxdist-mindist)<=0.0f) - return 0.0f; - fac= (fac-mindist)/(maxdist-mindist); - return 1.0f - (float)pow((double)fac, (double)power); - } - else - return pow((double)1.0f+fac-mindist, (double)-power); + if(!usemin) + mindist = 0.0; + + return pow((double)1.0+fac-mindist, (double)-power); } static float falloff_func_dist(PartDeflect *pd, float fac) From 4ff661c98985179bbfea89b3b23d9add13f85cb9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Apr 2009 14:09:44 +0000 Subject: [PATCH 132/201] X3D Import was broken because some arguments from VRML were missing. --- release/scripts/import_web3d.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/release/scripts/import_web3d.py b/release/scripts/import_web3d.py index 87a259cbe56..0564257730e 100644 --- a/release/scripts/import_web3d.py +++ b/release/scripts/import_web3d.py @@ -1332,7 +1332,9 @@ class x3dNode(vrmlNode): # Other funcs operate from vrml, but this means we can wrap XML fields, still use nice utility funcs # getFieldAsArray getFieldAsBool etc - def getFieldName(self, field): + def getFieldName(self, field, ancestry, AS_CHILD=False): + # ancestry and AS_CHILD are ignored, only used for VRML now + self_real = self.getRealNode() # incase we're an instance field_xml = self.x3dNode.getAttributeNode(field) if field_xml: From a412ce0702101628ac827d53465354c05fed7927 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 10 Apr 2009 14:33:52 +0000 Subject: [PATCH 133/201] strip indentation from lines of OBJ files. OBJ's from VMD's molecular visualization program had this. --- release/scripts/import_obj.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/scripts/import_obj.py b/release/scripts/import_obj.py index 42cdac4dc35..493354601a6 100644 --- a/release/scripts/import_obj.py +++ b/release/scripts/import_obj.py @@ -537,6 +537,7 @@ def get_float_func(filepath): ''' file= open(filepath, 'rU') for line in file: #.xreadlines(): + line = line.lstrip() if line.startswith('v'): # vn vt v if ',' in line: return lambda f: float(f.replace(',', '.')) @@ -590,6 +591,7 @@ def load_obj(filepath, CLAMP_SIZE= 0.0, CREATE_FGONS= True, CREATE_SMOOTH_GROUPS time_sub= sys.time() file= open(filepath, 'rU') for line in file: #.xreadlines(): + line = line.lstrip() # rare cases there is white space at the start of the line if line.startswith('v '): line_split= line.split() From 2fff90bbb4a922f454c15dbf2d6215bd4d8c519c Mon Sep 17 00:00:00 2001 From: Andre Susano Pinto Date: Fri, 10 Apr 2009 16:45:19 +0000 Subject: [PATCH 134/201] Added function name to many of the PyArg_ParseTuple calls in gameengine This way python raises more useful messages. --- .../Converter/BL_ActionActuator.cpp | 24 ++++++------- .../Converter/BL_ShapeActionActuator.cpp | 20 +++++------ source/gameengine/Expressions/Value.cpp | 2 +- .../GameLogic/SCA_ActuatorSensor.cpp | 2 +- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 6 ++-- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 2 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 10 +++--- .../GameLogic/SCA_JoystickSensor.cpp | 8 ++--- .../GameLogic/SCA_KeyboardSensor.cpp | 6 ++-- .../GameLogic/SCA_PropertyActuator.cpp | 4 +-- .../GameLogic/SCA_PropertySensor.cpp | 6 ++-- .../GameLogic/SCA_PythonController.cpp | 2 +- .../GameLogic/SCA_RandomActuator.cpp | 22 ++++++------ .../gameengine/GameLogic/SCA_RandomSensor.cpp | 2 +- source/gameengine/Ketsji/BL_Shader.cpp | 34 +++++++++---------- .../KXNetwork/KX_NetworkMessageActuator.cpp | 8 ++--- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 2 +- source/gameengine/Ketsji/KX_CDActuator.cpp | 2 +- source/gameengine/Ketsji/KX_Camera.cpp | 2 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 10 +++--- .../Ketsji/KX_ConstraintActuator.cpp | 18 +++++----- source/gameengine/Ketsji/KX_GameActuator.cpp | 2 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 16 ++++----- source/gameengine/Ketsji/KX_MeshProxy.cpp | 10 +++--- .../gameengine/Ketsji/KX_ObjectActuator.cpp | 22 ++++++------ .../gameengine/Ketsji/KX_ParentActuator.cpp | 2 +- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 8 ++--- source/gameengine/Ketsji/KX_PolyProxy.cpp | 2 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 8 ++--- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 6 ++-- .../Ketsji/KX_SCA_DynamicActuator.cpp | 2 +- source/gameengine/Ketsji/KX_Scene.cpp | 2 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 8 ++--- source/gameengine/Ketsji/KX_SoundActuator.cpp | 16 ++++----- source/gameengine/Ketsji/KX_StateActuator.cpp | 4 +-- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 6 ++-- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 24 ++++++------- .../Ketsji/KX_VisibilityActuator.cpp | 2 +- 38 files changed, 166 insertions(+), 166 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 8d7624db5d4..960eafda230 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -573,7 +573,7 @@ PyObject* BL_ActionActuator::PySetAction(PyObject* self, char *string; int reset = 1; - if (PyArg_ParseTuple(args,"s|i",&string, &reset)) + if (PyArg_ParseTuple(args,"s|i:setAction",&string, &reset)) { bAction *action; @@ -608,7 +608,7 @@ PyObject* BL_ActionActuator::PySetStart(PyObject* self, float start; - if (PyArg_ParseTuple(args,"f",&start)) + if (PyArg_ParseTuple(args,"f:setStart",&start)) { m_startframe = start; } @@ -631,7 +631,7 @@ PyObject* BL_ActionActuator::PySetEnd(PyObject* self, float end; - if (PyArg_ParseTuple(args,"f",&end)) + if (PyArg_ParseTuple(args,"f:setEnd",&end)) { m_endframe = end; } @@ -655,7 +655,7 @@ PyObject* BL_ActionActuator::PySetBlendin(PyObject* self, float blendin; - if (PyArg_ParseTuple(args,"f",&blendin)) + if (PyArg_ParseTuple(args,"f:setBlendin",&blendin)) { m_blendin = blendin; } @@ -680,7 +680,7 @@ PyObject* BL_ActionActuator::PySetBlendtime(PyObject* self, float blendframe; - if (PyArg_ParseTuple(args,"f",&blendframe)) + if (PyArg_ParseTuple(args,"f:setBlendtime",&blendframe)) { m_blendframe = blendframe * m_blendin; if (m_blendframe<0) @@ -709,7 +709,7 @@ PyObject* BL_ActionActuator::PySetPriority(PyObject* self, int priority; - if (PyArg_ParseTuple(args,"i",&priority)) + if (PyArg_ParseTuple(args,"i:setPriority",&priority)) { m_priority = priority; } @@ -732,7 +732,7 @@ PyObject* BL_ActionActuator::PySetFrame(PyObject* self, float frame; - if (PyArg_ParseTuple(args,"f",&frame)) + if (PyArg_ParseTuple(args,"f:setFrame",&frame)) { m_localtime = frame; if (m_localtimeob_type == &CListValue::Type) diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 32fd566983a..0d35b26d604 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -610,7 +610,7 @@ PyObject* BL_ShapeActionActuator::PySetAction(PyObject* self, char *string; int reset = 1; - if (PyArg_ParseTuple(args,"s|i",&string, &reset)) + if (PyArg_ParseTuple(args,"s|i:setAction",&string, &reset)) { bAction *action; @@ -644,7 +644,7 @@ PyObject* BL_ShapeActionActuator::PySetStart(PyObject* self, ShowDeprecationWarning("setStart()", "the start property"); float start; - if (PyArg_ParseTuple(args,"f",&start)) + if (PyArg_ParseTuple(args,"f:setStart",&start)) { m_startframe = start; } @@ -666,7 +666,7 @@ PyObject* BL_ShapeActionActuator::PySetEnd(PyObject* self, ShowDeprecationWarning("setEnd()", "the end property"); float end; - if (PyArg_ParseTuple(args,"f",&end)) + if (PyArg_ParseTuple(args,"f:setEnd",&end)) { m_endframe = end; } @@ -689,7 +689,7 @@ PyObject* BL_ShapeActionActuator::PySetBlendin(PyObject* self, ShowDeprecationWarning("setBlendin()", "the blendin property"); float blendin; - if (PyArg_ParseTuple(args,"f",&blendin)) + if (PyArg_ParseTuple(args,"f:setBlendin",&blendin)) { m_blendin = blendin; } @@ -713,7 +713,7 @@ PyObject* BL_ShapeActionActuator::PySetBlendtime(PyObject* self, ShowDeprecationWarning("setBlendtime()", "the blendTime property"); float blendframe; - if (PyArg_ParseTuple(args,"f",&blendframe)) + if (PyArg_ParseTuple(args,"f:setBlendtime",&blendframe)) { m_blendframe = blendframe * m_blendin; if (m_blendframe<0.f) @@ -741,7 +741,7 @@ PyObject* BL_ShapeActionActuator::PySetPriority(PyObject* self, ShowDeprecationWarning("setPriority()", "the priority property"); int priority; - if (PyArg_ParseTuple(args,"i",&priority)) + if (PyArg_ParseTuple(args,"i:setPriority",&priority)) { m_priority = priority; } @@ -778,7 +778,7 @@ PyObject* BL_ShapeActionActuator::PySetFrame(PyObject* self, ShowDeprecationWarning("setFrame()", "the frame property"); float frame; - if (PyArg_ParseTuple(args,"f",&frame)) + if (PyArg_ParseTuple(args,"f:setFrame",&frame)) { m_localtime = frame; if (m_localtimeGetJoystickDevice(m_joyindex); int index; - if(!PyArg_ParseTuple(args, "i", &index)){ + if(!PyArg_ParseTuple(args, "i:getButtonStatus", &index)){ return NULL; } if(joy && index >= 0 && index < joy->GetNumberOfButtons()) { @@ -530,7 +530,7 @@ const char SCA_JoystickSensor::SetHat_doc[] = PyObject* SCA_JoystickSensor::PySetHat( PyObject* self, PyObject* args ) { ShowDeprecationWarning("setHat()", "the hat property"); int hat,hatflag; - if(!PyArg_ParseTuple(args, "ii", &hat, &hatflag)){ + if(!PyArg_ParseTuple(args, "ii:setHat", &hat, &hatflag)){ return NULL; } m_hat = hat; diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index ecdf889124d..0bf19360b15 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -428,7 +428,7 @@ PyObject* SCA_KeyboardSensor::PySetKey(PyObject* self, PyObject* args, PyObject* ShowDeprecationWarning("setKey()", "the key property"); int keyCode; - if(!PyArg_ParseTuple(args, "i", &keyCode)) { + if(!PyArg_ParseTuple(args, "i:setKey", &keyCode)) { return NULL; } @@ -460,7 +460,7 @@ PyObject* SCA_KeyboardSensor::PySetHold1(PyObject* self, PyObject* args, PyObjec ShowDeprecationWarning("setHold1()", "the hold1 property"); int keyCode; - if(!PyArg_ParseTuple(args, "i", &keyCode)) { + if(!PyArg_ParseTuple(args, "i:setHold1", &keyCode)) { return NULL; } @@ -492,7 +492,7 @@ PyObject* SCA_KeyboardSensor::PySetHold2(PyObject* self, PyObject* args, PyObjec ShowDeprecationWarning("setHold2()", "the hold2 property"); int keyCode; - if(!PyArg_ParseTuple(args, "i", &keyCode)) { + if(!PyArg_ParseTuple(args, "i:setHold2", &keyCode)) { return NULL; } diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index fa8763a3932..444c616870d 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -279,7 +279,7 @@ PyObject* SCA_PropertyActuator::PySetProperty(PyObject* self, PyObject* args, Py ShowDeprecationWarning("setProperty()", "the 'property' property"); /* Check whether the name exists first ! */ char *nameArg; - if (!PyArg_ParseTuple(args, "s", &nameArg)) { + if (!PyArg_ParseTuple(args, "s:setProperty", &nameArg)) { return NULL; } @@ -316,7 +316,7 @@ PyObject* SCA_PropertyActuator::PySetValue(PyObject* self, PyObject* args, PyObj { ShowDeprecationWarning("setValue()", "the value property"); char *valArg; - if(!PyArg_ParseTuple(args, "s", &valArg)) { + if(!PyArg_ParseTuple(args, "s:setValue", &valArg)) { return NULL; } diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index 164e94b6597..9ae7be16b12 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -382,7 +382,7 @@ PyObject* SCA_PropertySensor::PySetType(PyObject* self, PyObject* args, PyObject ShowDeprecationWarning("setType()", "the type property"); int typeArg; - if (!PyArg_ParseTuple(args, "i", &typeArg)) { + if (!PyArg_ParseTuple(args, "i:setType", &typeArg)) { return NULL; } @@ -417,7 +417,7 @@ PyObject* SCA_PropertySensor::PySetProperty(PyObject* self, PyObject* args, PyOb /* on the fly? */ char *propNameArg = NULL; - if (!PyArg_ParseTuple(args, "s", &propNameArg)) { + if (!PyArg_ParseTuple(args, "s:setProperty", &propNameArg)) { return NULL; } @@ -455,7 +455,7 @@ PyObject* SCA_PropertySensor::PySetValue(PyObject* self, PyObject* args, PyObjec /* We know that the property exists, or is NULL. */ char *propValArg = NULL; - if(!PyArg_ParseTuple(args, "s", &propValArg)) { + if(!PyArg_ParseTuple(args, "s:setValue", &propValArg)) { return NULL; } STR_String oldval = m_checkpropval; diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 3c2a1d09f82..0e6b9d1e8f1 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -205,7 +205,7 @@ PyObject* SCA_PythonController::sPyAddActiveActuator( PyObject* ob1; int activate; - if (!PyArg_ParseTuple(args, "Oi", &ob1,&activate)) + if (!PyArg_ParseTuple(args, "Oi:addActiveActuator", &ob1,&activate)) return NULL; SCA_IActuator* actu = LinkedActuatorFromPy(ob1); diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index b1c0c7fec99..d5d993c4ba6 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -410,7 +410,7 @@ const char SCA_RandomActuator::SetSeed_doc[] = PyObject* SCA_RandomActuator::PySetSeed(PyObject* self, PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setSeed()", "the seed property"); long seedArg; - if(!PyArg_ParseTuple(args, "i", &seedArg)) { + if(!PyArg_ParseTuple(args, "i:setSeed", &seedArg)) { return NULL; } @@ -468,7 +468,7 @@ const char SCA_RandomActuator::SetProperty_doc[] = PyObject* SCA_RandomActuator::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setProperty()", "the 'property' property"); char *nameArg; - if (!PyArg_ParseTuple(args, "s", &nameArg)) { + if (!PyArg_ParseTuple(args, "s:setProperty", &nameArg)) { return NULL; } @@ -500,7 +500,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setBoolConst, "\tSet this generator to produce a constant boolean value.\n") { int paraArg; - if(!PyArg_ParseTuple(args, "i", ¶Arg)) { + if(!PyArg_ParseTuple(args, "i:setBoolConst", ¶Arg)) { return NULL; } @@ -526,7 +526,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setBoolBernouilli, "\tReturn false value * 100%% of the time.\n") { float paraArg; - if(!PyArg_ParseTuple(args, "f", ¶Arg)) { + if(!PyArg_ParseTuple(args, "f:setBoolBernouilli", ¶Arg)) { return NULL; } @@ -542,7 +542,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntConst, "\tAlways return value\n") { int paraArg; - if(!PyArg_ParseTuple(args, "i", ¶Arg)) { + if(!PyArg_ParseTuple(args, "i:setIntConst", ¶Arg)) { return NULL; } @@ -560,7 +560,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntUniform, "\tupper_bound. The boundaries are included.\n") { int paraArg1, paraArg2; - if(!PyArg_ParseTuple(args, "ii", ¶Arg1, ¶Arg2)) { + if(!PyArg_ParseTuple(args, "ii:setIntUniform", ¶Arg1, ¶Arg2)) { return NULL; } @@ -579,7 +579,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntPoisson, "\tnumber of tries needed to achieve succes.\n") { float paraArg; - if(!PyArg_ParseTuple(args, "f", ¶Arg)) { + if(!PyArg_ParseTuple(args, "f:setIntPoisson", ¶Arg)) { return NULL; } @@ -595,7 +595,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatConst, "\tAlways return value\n") { float paraArg; - if(!PyArg_ParseTuple(args, "f", ¶Arg)) { + if(!PyArg_ParseTuple(args, "f:setFloatConst", ¶Arg)) { return NULL; } @@ -613,7 +613,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatUniform, "\tupper_bound.\n") { float paraArg1, paraArg2; - if(!PyArg_ParseTuple(args, "ff", ¶Arg1, ¶Arg2)) { + if(!PyArg_ParseTuple(args, "ff:setFloatUniform", ¶Arg1, ¶Arg2)) { return NULL; } @@ -632,7 +632,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNormal, "\tdeviation from the mean is characterized by standard_deviation.\n") { float paraArg1, paraArg2; - if(!PyArg_ParseTuple(args, "ff", ¶Arg1, ¶Arg2)) { + if(!PyArg_ParseTuple(args, "ff:setFloatNormal", ¶Arg1, ¶Arg2)) { return NULL; } @@ -650,7 +650,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential, "\tis characterized by half_life.\n") { float paraArg; - if(!PyArg_ParseTuple(args, "f", ¶Arg)) { + if(!PyArg_ParseTuple(args, "f:setFloatNegativeExponential", ¶Arg)) { return NULL; } diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index fe4d88e2797..3179c8522f9 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -185,7 +185,7 @@ const char SCA_RandomSensor::SetSeed_doc[] = PyObject* SCA_RandomSensor::PySetSeed(PyObject* self, PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setSeed()", "the seed property"); long seedArg; - if(!PyArg_ParseTuple(args, "i", &seedArg)) { + if(!PyArg_ParseTuple(args, "i:setSeed", &seedArg)) { return NULL; } diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index c82a9979fe1..aae4fd74a08 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -807,7 +807,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSource," setSource(vertexProgram, fragmentProg } char *v,*f; int apply=0; - if( PyArg_ParseTuple(args, "ssi", &v, &f, &apply) ) + if( PyArg_ParseTuple(args, "ssi:setSource", &v, &f, &apply) ) { vertProg = v; fragProg = f; @@ -890,7 +890,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSampler, "setSampler(name, index)" ) const char *uniform=""; int index=-1; - if(PyArg_ParseTuple(args, "si", &uniform, &index)) + if(PyArg_ParseTuple(args, "si:setSampler", &uniform, &index)) { int loc = GetUniformLocation(uniform); if(loc != -1) { @@ -915,7 +915,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSampler, "setSampler(name, index)" ) KX_PYMETHODDEF_DOC( BL_Shader, setNumberOfPasses, "setNumberOfPasses( max-pass )" ) { int pass = 1; - if(!PyArg_ParseTuple(args, "i", &pass)) + if(!PyArg_ParseTuple(args, "i:setNumberOfPasses", &pass)) return NULL; mPass = 1; @@ -931,7 +931,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform1f, "setUniform1f(name, fx)" ) const char *uniform=""; float value=0; - if(PyArg_ParseTuple(args, "sf", &uniform, &value )) + if(PyArg_ParseTuple(args, "sf:setUniform1f", &uniform, &value )) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -955,7 +955,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform2f , "setUniform2f(name, fx, fy)") } const char *uniform=""; float array[2]={ 0,0 }; - if(PyArg_ParseTuple(args, "sff", &uniform, &array[0],&array[1] )) + if(PyArg_ParseTuple(args, "sff:setUniform2f", &uniform, &array[0],&array[1] )) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -979,7 +979,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform3f, "setUniform3f(name, fx,fy,fz) ") } const char *uniform=""; float array[3]={0,0,0}; - if(PyArg_ParseTuple(args, "sfff", &uniform, &array[0],&array[1],&array[2])) + if(PyArg_ParseTuple(args, "sfff:setUniform3f", &uniform, &array[0],&array[1],&array[2])) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1004,7 +1004,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform4f, "setUniform4f(name, fx,fy,fz, fw) " } const char *uniform=""; float array[4]={0,0,0,0}; - if(PyArg_ParseTuple(args, "sffff", &uniform, &array[0],&array[1],&array[2], &array[3])) + if(PyArg_ParseTuple(args, "sffff:setUniform4f", &uniform, &array[0],&array[1],&array[2], &array[3])) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1028,7 +1028,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform1i, "setUniform1i(name, ix)" ) } const char *uniform=""; int value=0; - if(PyArg_ParseTuple(args, "si", &uniform, &value )) + if(PyArg_ParseTuple(args, "si:setUniform1i", &uniform, &value )) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1052,7 +1052,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform2i , "setUniform2i(name, ix, iy)") } const char *uniform=""; int array[2]={ 0,0 }; - if(PyArg_ParseTuple(args, "sii", &uniform, &array[0],&array[1] )) + if(PyArg_ParseTuple(args, "sii:setUniform2i", &uniform, &array[0],&array[1] )) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1077,7 +1077,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform3i, "setUniform3i(name, ix,iy,iz) ") const char *uniform=""; int array[3]={0,0,0}; - if(PyArg_ParseTuple(args, "siii", &uniform, &array[0],&array[1],&array[2])) + if(PyArg_ParseTuple(args, "siii:setUniform3i", &uniform, &array[0],&array[1],&array[2])) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1100,7 +1100,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform4i, "setUniform4i(name, ix,iy,iz, iw) " } const char *uniform=""; int array[4]={0,0,0, 0}; - if(PyArg_ParseTuple(args, "siiii", &uniform, &array[0],&array[1],&array[2], &array[3] )) + if(PyArg_ParseTuple(args, "siiii:setUniform4i", &uniform, &array[0],&array[1],&array[2], &array[3] )) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1125,7 +1125,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv , "setUniformfv( float (list2 or lis PyObject *listPtr =0; float array_data[4] = {0.f,0.f,0.f,0.f}; - if(PyArg_ParseTuple(args, "sO", &uniform, &listPtr)) + if(PyArg_ParseTuple(args, "sO:setUniformfv", &uniform, &listPtr)) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1194,7 +1194,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( int (list2 or list3 PyObject *listPtr =0; int array_data[4] = {0,0,0,0}; - if(PyArg_ParseTuple(args, "sO", &uniform, &listPtr)) + if(PyArg_ParseTuple(args, "sO:setUniformiv", &uniform, &listPtr)) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1273,7 +1273,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix4, const char *uniform=""; PyObject *matrix=0; int transp=1; // MT_ is row major so transpose by default.... - if(PyArg_ParseTuple(args, "sO|i",&uniform, &matrix,&transp)) + if(PyArg_ParseTuple(args, "sO|i:setUniformMatrix4",&uniform, &matrix,&transp)) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1311,7 +1311,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformMatrix3, const char *uniform=""; PyObject *matrix=0; int transp=1; // MT_ is row major so transpose by default.... - if(PyArg_ParseTuple(args, "sO|i",&uniform, &matrix,&transp)) + if(PyArg_ParseTuple(args, "sO|i:setUniformMatrix3",&uniform, &matrix,&transp)) { int loc = GetUniformLocation(uniform); if(loc != -1) @@ -1338,7 +1338,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setAttrib, "setAttrib(enum)" ) Py_RETURN_NONE; } int attr=0; - if(PyArg_ParseTuple(args, "i", &attr )) { + if(PyArg_ParseTuple(args, "i:setAttrib", &attr )) { if(mShader==0) { PyErr_Format(PyExc_ValueError, "invalid shader object"); return NULL; @@ -1360,7 +1360,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformDef, "setUniformDef(name, enum)" ) const char *uniform=""; int nloc=0; - if(PyArg_ParseTuple(args, "si",&uniform, &nloc)) + if(PyArg_ParseTuple(args, "si:setUniformDef",&uniform, &nloc)) { int loc = GetUniformLocation(uniform); if(loc != -1) diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 72edde6ef24..d6d59692745 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -171,7 +171,7 @@ PyObject* KX_NetworkMessageActuator::PySetToPropName( ShowDeprecationWarning("setToProp()", "the propName property"); char* ToPropName; - if (PyArg_ParseTuple(args, "s", &ToPropName)) { + if (PyArg_ParseTuple(args, "s:setToPropName", &ToPropName)) { m_toPropName = ToPropName; } else { @@ -190,7 +190,7 @@ PyObject* KX_NetworkMessageActuator::PySetSubject( ShowDeprecationWarning("setSubject()", "the subject property"); char* Subject; - if (PyArg_ParseTuple(args, "s", &Subject)) { + if (PyArg_ParseTuple(args, "s:setSubject", &Subject)) { m_subject = Subject; } else { @@ -209,7 +209,7 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType( ShowDeprecationWarning("setBodyType()", "the usePropBody property"); int BodyType; - if (PyArg_ParseTuple(args, "i", &BodyType)) { + if (PyArg_ParseTuple(args, "i:setBodyType", &BodyType)) { m_bPropBody = (BodyType != 0); } else { @@ -228,7 +228,7 @@ PyObject* KX_NetworkMessageActuator::PySetBody( ShowDeprecationWarning("setBody()", "the body property"); char* Body; - if (PyArg_ParseTuple(args, "s", &Body)) { + if (PyArg_ParseTuple(args, "s:setBody", &Body)) { m_body = Body; } else { diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index bd137196ac6..0e417dde5d2 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -897,7 +897,7 @@ static unsigned int GL_array[11] = { KX_PYMETHODDEF_DOC( KX_BlenderMaterial, setBlending , "setBlending( GameLogic.src, GameLogic.dest)") { unsigned int b[2]; - if(PyArg_ParseTuple(args, "ii", &b[0], &b[1])) + if(PyArg_ParseTuple(args, "ii:setBlending", &b[0], &b[1])) { bool value_found[2] = {false, false}; for(int i=0; i<11; i++) diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index 8e889fb4129..c3d28656159 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -293,7 +293,7 @@ PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwd { float gain = 1.0; ShowDeprecationWarning("setGain()", "the volume property"); - if (!PyArg_ParseTuple(args, "f", &gain)) + if (!PyArg_ParseTuple(args, "f:setGain", &gain)) return NULL; SND_CDObject::Instance()->SetGain(gain); diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index 339abb73531..8032e939a50 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -562,7 +562,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, sphereInsideFrustum, { PyObject *pycenter; float radius; - if (PyArg_ParseTuple(args, "Of", &pycenter, &radius)) + if (PyArg_ParseTuple(args, "Of:sphereInsideFrustum", &pycenter, &radius)) { MT_Point3 center; if (PyVecTo(pycenter, center)) diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 4db24a6e365..0118e490773 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -440,7 +440,7 @@ PyObject* KX_CameraActuator::PyGetObject(PyObject* self, PyObject* args) ShowDeprecationWarning("getObject()", "the object property"); - if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + if (!PyArg_ParseTuple(args, "|i:getObject", &ret_name_only)) return NULL; if (!m_ob) @@ -496,7 +496,7 @@ PyObject* KX_CameraActuator::PySetMin(PyObject* self, { ShowDeprecationWarning("setMin()", "the min property"); float min; - if(PyArg_ParseTuple(args,"f", &min)) + if(PyArg_ParseTuple(args,"f:setMin", &min)) { m_minHeight = min; Py_RETURN_NONE; @@ -524,7 +524,7 @@ PyObject* KX_CameraActuator::PySetMax(PyObject* self, { ShowDeprecationWarning("getMax()", "the max property"); float max; - if(PyArg_ParseTuple(args,"f", &max)) + if(PyArg_ParseTuple(args,"f:setMax", &max)) { m_maxHeight = max; Py_RETURN_NONE; @@ -552,7 +552,7 @@ PyObject* KX_CameraActuator::PySetHeight(PyObject* self, { ShowDeprecationWarning("getHeight()", "the height property"); float height; - if(PyArg_ParseTuple(args,"f", &height)) + if(PyArg_ParseTuple(args,"f:setHeight", &height)) { m_height = height; Py_RETURN_NONE; @@ -570,7 +570,7 @@ PyObject* KX_CameraActuator::PySetXY(PyObject* self, { ShowDeprecationWarning("setXY()", "the xy property"); int value; - if(PyArg_ParseTuple(args,"i", &value)) + if(PyArg_ParseTuple(args,"i:setXY", &value)) { m_x = value != 0; Py_RETURN_NONE; diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index b41435e71a1..3b8b4a93fd6 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -670,7 +670,7 @@ PyObject* KX_ConstraintActuator::PySetDamp(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setDamp()", "the damp property"); int dampArg; - if(!PyArg_ParseTuple(args, "i", &dampArg)) { + if(!PyArg_ParseTuple(args, "i:setDamp", &dampArg)) { return NULL; } @@ -699,7 +699,7 @@ PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setRotDamp()", "the rotDamp property"); int dampArg; - if(!PyArg_ParseTuple(args, "i", &dampArg)) { + if(!PyArg_ParseTuple(args, "i:setRotDamp", &dampArg)) { return NULL; } @@ -730,7 +730,7 @@ PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, MT_Scalar len; MT_Vector3 dir; - if(!PyArg_ParseTuple(args, "(fff)", &x, &y, &z)) { + if(!PyArg_ParseTuple(args, "(fff):setDirection", &x, &y, &z)) { return NULL; } dir[0] = x; @@ -777,7 +777,7 @@ PyObject* KX_ConstraintActuator::PySetOption(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setOption()", "the option property"); int option; - if(!PyArg_ParseTuple(args, "i", &option)) { + if(!PyArg_ParseTuple(args, "i:setOption", &option)) { return NULL; } @@ -806,7 +806,7 @@ PyObject* KX_ConstraintActuator::PySetTime(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setTime()", "the time property"); int t; - if(!PyArg_ParseTuple(args, "i", &t)) { + if(!PyArg_ParseTuple(args, "i:setTime", &t)) { return NULL; } @@ -836,7 +836,7 @@ PyObject* KX_ConstraintActuator::PySetProperty(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setProperty()", "the 'property' property"); char *property; - if (!PyArg_ParseTuple(args, "s", &property)) { + if (!PyArg_ParseTuple(args, "s:setProperty", &property)) { return NULL; } if (property == NULL) { @@ -872,7 +872,7 @@ PyObject* KX_ConstraintActuator::PySetMin(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setMin() or setDistance()", "the min or distance property"); float minArg; - if(!PyArg_ParseTuple(args, "f", &minArg)) { + if(!PyArg_ParseTuple(args, "f:setMin", &minArg)) { return NULL; } @@ -919,7 +919,7 @@ PyObject* KX_ConstraintActuator::PySetMax(PyObject* self, PyObject* kwds){ ShowDeprecationWarning("setMax() or setRayLength()", "the max or rayLength property"); float maxArg; - if(!PyArg_ParseTuple(args, "f", &maxArg)) { + if(!PyArg_ParseTuple(args, "f:setMax", &maxArg)) { return NULL; } @@ -974,7 +974,7 @@ PyObject* KX_ConstraintActuator::PySetLimit(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setLimit()", "the limit property"); int locrotArg; - if(!PyArg_ParseTuple(args, "i", &locrotArg)) { + if(!PyArg_ParseTuple(args, "i:setLimit", &locrotArg)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index c9060486d44..cef874900a6 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -286,7 +286,7 @@ PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* k ShowDeprecationWarning("setFile()", "the file property"); - if (!PyArg_ParseTuple(args, "s", &new_file)) + if (!PyArg_ParseTuple(args, "s:setFile", &new_file)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 1dc5471e77a..644f8ac8113 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -503,7 +503,7 @@ PyObject* KX_IpoActuator::PySet(PyObject* self, int forceToggle; int modenum; int startFrame, stopFrame; - if(!PyArg_ParseTuple(args, "siii", &mode, &startFrame, + if(!PyArg_ParseTuple(args, "siii:set", &mode, &startFrame, &stopFrame, &forceToggle)) { return NULL; } @@ -542,7 +542,7 @@ PyObject* KX_IpoActuator::PySetProperty(PyObject* self, /* mode is implicit here, but not supported yet... */ /* args: property */ char *propertyName; - if(!PyArg_ParseTuple(args, "s", &propertyName)) { + if(!PyArg_ParseTuple(args, "s:setProperty", &propertyName)) { return NULL; } @@ -563,7 +563,7 @@ PyObject* KX_IpoActuator::PySetStart(PyObject* self, ShowDeprecationWarning("setStart()", "the startFrame property"); float startArg; - if(!PyArg_ParseTuple(args, "f", &startArg)) { + if(!PyArg_ParseTuple(args, "f:setStart", &startArg)) { return NULL; } @@ -590,7 +590,7 @@ PyObject* KX_IpoActuator::PySetEnd(PyObject* self, PyObject* kwds) { ShowDeprecationWarning("setEnd()", "the endFrame property"); float endArg; - if(!PyArg_ParseTuple(args, "f", &endArg)) { + if(!PyArg_ParseTuple(args, "f:setEnd", &endArg)) { return NULL; } @@ -618,7 +618,7 @@ PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self, ShowDeprecationWarning("setIpoAsForce()", "the useIpoAsForce property"); int boolArg; - if (!PyArg_ParseTuple(args, "i", &boolArg)) { + if (!PyArg_ParseTuple(args, "i:setIpoAsForce", &boolArg)) { return NULL; } @@ -648,7 +648,7 @@ PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self, ShowDeprecationWarning("setIpoAdd()", "the useIpoAdd property"); int boolArg; - if (!PyArg_ParseTuple(args, "i", &boolArg)) { + if (!PyArg_ParseTuple(args, "i:setIpoAdd", &boolArg)) { return NULL; } @@ -678,7 +678,7 @@ PyObject* KX_IpoActuator::PySetType(PyObject* self, ShowDeprecationWarning("setType()", "the type property"); int typeArg; - if (!PyArg_ParseTuple(args, "i", &typeArg)) { + if (!PyArg_ParseTuple(args, "i:setType", &typeArg)) { return NULL; } @@ -711,7 +711,7 @@ PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* self, ShowDeprecationWarning("setForceIpoActsLocal()", "the useIpoLocal property"); int boolArg; - if (!PyArg_ParseTuple(args, "i", &boolArg)) { + if (!PyArg_ParseTuple(args, "i:setForceIpoActsLocal", &boolArg)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 7b58c8b288a..bcda4a8e3c4 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -150,7 +150,7 @@ PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* self, int matid= 1; STR_String matname; - if (PyArg_ParseTuple(args,"i",&matid)) + if (PyArg_ParseTuple(args,"i:getMaterialName",&matid)) { matname = m_meshobj->GetMaterialName(matid); } @@ -170,7 +170,7 @@ PyObject* KX_MeshProxy::PyGetTextureName(PyObject* self, int matid= 1; STR_String matname; - if (PyArg_ParseTuple(args,"i",&matid)) + if (PyArg_ParseTuple(args,"i:getTextureName",&matid)) { matname = m_meshobj->GetTextureName(matid); } @@ -190,7 +190,7 @@ PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* self, int length = 0; - if (!PyArg_ParseTuple(args,"i",&matid)) + if (!PyArg_ParseTuple(args,"i:getVertexArrayLength",&matid)) return NULL; @@ -215,7 +215,7 @@ PyObject* KX_MeshProxy::PyGetVertex(PyObject* self, int matindex= 1; PyObject* vertexob = NULL; - if (PyArg_ParseTuple(args,"ii",&matindex,&vertexindex)) + if (PyArg_ParseTuple(args,"ii:getVertex",&matindex,&vertexindex)) { RAS_TexVert* vertex = m_meshobj->GetVertex(matindex,vertexindex); if (vertex) @@ -238,7 +238,7 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* self, int polyindex= 1; PyObject* polyob = NULL; - if (!PyArg_ParseTuple(args,"i",&polyindex)) + if (!PyArg_ParseTuple(args,"i:getPolygon",&polyindex)) return NULL; if (polyindex<0 || polyindex >= m_meshobj->NumPolygons()) diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index a343eeb71cc..0ea051723dc 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -362,7 +362,7 @@ PyObject* KX_ObjectActuator::PySetForce(PyObject* self, { float vecArg[3]; int bToggle = 0; - if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if (!PyArg_ParseTuple(args, "fffi:setForce", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -391,7 +391,7 @@ PyObject* KX_ObjectActuator::PySetTorque(PyObject* self, { float vecArg[3]; int bToggle = 0; - if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if (!PyArg_ParseTuple(args, "fffi:setTorque", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -420,7 +420,7 @@ PyObject* KX_ObjectActuator::PySetDLoc(PyObject* self, { float vecArg[3]; int bToggle = 0; - if(!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if(!PyArg_ParseTuple(args, "fffi:setDLoc", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -449,7 +449,7 @@ PyObject* KX_ObjectActuator::PySetDRot(PyObject* self, { float vecArg[3]; int bToggle = 0; - if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if (!PyArg_ParseTuple(args, "fffi:setDRot", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -477,7 +477,7 @@ PyObject* KX_ObjectActuator::PySetLinearVelocity(PyObject* self, PyObject* kwds) { float vecArg[3]; int bToggle = 0; - if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if (!PyArg_ParseTuple(args, "fffi:setLinearVelocity", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -505,7 +505,7 @@ PyObject* KX_ObjectActuator::PySetAngularVelocity(PyObject* self, PyObject* kwds) { float vecArg[3]; int bToggle = 0; - if (!PyArg_ParseTuple(args, "fffi", &vecArg[0], &vecArg[1], + if (!PyArg_ParseTuple(args, "fffi:setAngularVelocity", &vecArg[0], &vecArg[1], &vecArg[2], &bToggle)) { return NULL; } @@ -520,7 +520,7 @@ PyObject* KX_ObjectActuator::PySetDamping(PyObject* self, PyObject* args, PyObject* kwds) { int damping = 0; - if (!PyArg_ParseTuple(args, "i", &damping) || damping < 0 || damping > 1000) { + if (!PyArg_ParseTuple(args, "i:setDamping", &damping) || damping < 0 || damping > 1000) { return NULL; } m_damping = damping; @@ -549,7 +549,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitX(PyObject* self, { float vecArg[2]; int bToggle = 0; - if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { + if(!PyArg_ParseTuple(args, "ffi:setForceLimitX", &vecArg[0], &vecArg[1], &bToggle)) { return NULL; } m_drot[0] = vecArg[0]; @@ -576,7 +576,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitY(PyObject* self, { float vecArg[2]; int bToggle = 0; - if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { + if(!PyArg_ParseTuple(args, "ffi:setForceLimitY", &vecArg[0], &vecArg[1], &bToggle)) { return NULL; } m_drot[1] = vecArg[0]; @@ -603,7 +603,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitZ(PyObject* self, { float vecArg[2]; int bToggle = 0; - if(!PyArg_ParseTuple(args, "ffi", &vecArg[0], &vecArg[1], &bToggle)) { + if(!PyArg_ParseTuple(args, "ffi:setForceLimitZ", &vecArg[0], &vecArg[1], &bToggle)) { return NULL; } m_drot[2] = vecArg[0]; @@ -629,7 +629,7 @@ PyObject* KX_ObjectActuator::PySetPID(PyObject* self, PyObject* kwds) { float vecArg[3]; - if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) { + if (!PyArg_ParseTuple(args, "fff:setPID", &vecArg[0], &vecArg[1], &vecArg[2])) { return NULL; } m_torque.setValue(vecArg); diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 32c279b2be1..d0d441e2c1c 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -252,7 +252,7 @@ PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args) ShowDeprecationWarning("getObject()", "the object property"); - if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + if (!PyArg_ParseTuple(args, "|i:getObject", &ret_name_only)) return NULL; if (!m_ob) diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 3bef85e7f93..9da86193622 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -56,7 +56,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* self, PyObject* kwds) { float x,y,z; - if (PyArg_ParseTuple(args,"fff",&x,&y,&z)) + if (PyArg_ParseTuple(args,"fff:setPosition",&x,&y,&z)) { m_ctrl->setPosition(x,y,z); } @@ -73,7 +73,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* self, { float x,y,z; int local; - if (PyArg_ParseTuple(args,"fffi",&x,&y,&z,&local)) + if (PyArg_ParseTuple(args,"fffi:setLinearVelocity",&x,&y,&z,&local)) { m_ctrl->SetLinearVelocity(x,y,z,local != 0); } @@ -89,7 +89,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self, { float x,y,z; int local; - if (PyArg_ParseTuple(args,"fffi",&x,&y,&z,&local)) + if (PyArg_ParseTuple(args,"fffi:setAngularVelocity",&x,&y,&z,&local)) { m_ctrl->SetAngularVelocity(x,y,z,local != 0); } @@ -104,7 +104,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self, PyObject* kwds) { int active; - if (PyArg_ParseTuple(args,"i",&active)) + if (PyArg_ParseTuple(args,"i:setActive",&active)) { m_ctrl->SetActive(active!=0); } diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index 39eb6225864..1e6f49ead2e 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -238,7 +238,7 @@ KX_PYMETHODDEF_DOC(KX_PolyProxy, getVertexIndex, "Note: getVertexIndex(3) on a triangle polygon returns 0\n") { int index; - if (!PyArg_ParseTuple(args,"i",&index)) + if (!PyArg_ParseTuple(args,"i:getVertexIndex",&index)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index e66d9d60db8..56a1daa7544 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -244,7 +244,7 @@ int KX_PolygonMaterial::py_setattro(PyObject *attr, PyObject *value) KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setCustomMaterial, "setCustomMaterial(material)") { PyObject *material; - if (PyArg_ParseTuple(args, "O", &material)) + if (PyArg_ParseTuple(args, "O:setCustomMaterial", &material)) { if (m_pymaterial) { Py_DECREF(m_pymaterial); @@ -260,7 +260,7 @@ KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setCustomMaterial, "setCustomMaterial(mat KX_PYMETHODDEF_DOC(KX_PolygonMaterial, updateTexture, "updateTexture(tface, rasty)") { PyObject *pyrasty, *pytface; - if (PyArg_ParseTuple(args, "O!O!", &PyCObject_Type, &pytface, &PyCObject_Type, &pyrasty)) + if (PyArg_ParseTuple(args, "O!O!:updateTexture", &PyCObject_Type, &pytface, &PyCObject_Type, &pyrasty)) { MTFace *tface = (MTFace*) PyCObject_AsVoidPtr(pytface); RAS_IRasterizer *rasty = (RAS_IRasterizer*) PyCObject_AsVoidPtr(pyrasty); @@ -276,7 +276,7 @@ KX_PYMETHODDEF_DOC(KX_PolygonMaterial, updateTexture, "updateTexture(tface, rast KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setTexture, "setTexture(tface)") { PyObject *pytface; - if (PyArg_ParseTuple(args, "O!", &PyCObject_Type, &pytface)) + if (PyArg_ParseTuple(args, "O!:setTexture", &PyCObject_Type, &pytface)) { MTFace *tface = (MTFace*) PyCObject_AsVoidPtr(pytface); GPU_set_tpage(tface); @@ -289,7 +289,7 @@ KX_PYMETHODDEF_DOC(KX_PolygonMaterial, setTexture, "setTexture(tface)") KX_PYMETHODDEF_DOC(KX_PolygonMaterial, activate, "activate(rasty, cachingInfo)") { PyObject *pyrasty, *pyCachingInfo; - if (PyArg_ParseTuple(args, "O!O!", &PyCObject_Type, &pyrasty, &PyCObject_Type, &pyCachingInfo)) + if (PyArg_ParseTuple(args, "O!O!:activate", &PyCObject_Type, &pyrasty, &PyCObject_Type, &pyCachingInfo)) { RAS_IRasterizer *rasty = static_cast(PyCObject_AsVoidPtr(pyrasty)); TCachingInfo *cachingInfo = static_cast(PyCObject_AsVoidPtr(pyCachingInfo)); diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index a59d8417f26..65b654ccba4 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -341,7 +341,7 @@ PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self, PyObject* args) ShowDeprecationWarning("getObject()", "the object property"); - if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + if (!PyArg_ParseTuple(args, "|i:getObject", &ret_name_only)) return NULL; if (!m_OriginalObject) @@ -389,7 +389,7 @@ PyObject* KX_SCA_AddObjectActuator::PySetLinearVelocity(PyObject* self, PyObject ShowDeprecationWarning("setLinearVelocity()", "the linearVelocity property"); float vecArg[3]; - if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) + if (!PyArg_ParseTuple(args, "fff:setLinearVelocity", &vecArg[0], &vecArg[1], &vecArg[2])) return NULL; m_linear_velocity[0] = vecArg[0]; @@ -432,7 +432,7 @@ PyObject* KX_SCA_AddObjectActuator::PySetAngularVelocity(PyObject* self, PyObjec ShowDeprecationWarning("setAngularVelocity()", "the angularVelocity property"); float vecArg[3]; - if (!PyArg_ParseTuple(args, "fff", &vecArg[0], &vecArg[1], &vecArg[2])) + if (!PyArg_ParseTuple(args, "fff:setAngularVelocity", &vecArg[0], &vecArg[1], &vecArg[2])) return NULL; m_angular_velocity[0] = vecArg[0]; diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index aaa87e407ba..e03b153d813 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -116,7 +116,7 @@ KX_PYMETHODDEF_DOC(KX_SCA_DynamicActuator, setOperation, ShowDeprecationWarning("setOperation()", "the operation property"); int dyn_operation; - if (!PyArg_ParseTuple(args, "i", &dyn_operation)) + if (!PyArg_ParseTuple(args, "i:setOperation", &dyn_operation)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 0bd7d7270e1..30fed561519 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1697,7 +1697,7 @@ KX_PYMETHODDEF_DOC(KX_Scene, addObject, int time = 0; - if (!PyArg_ParseTuple(args, "OO|i", &pyob, &pyother, &time)) + if (!PyArg_ParseTuple(args, "OO|i:addObject", &pyob, &pyother, &time)) return NULL; if (!ConvertPythonToGameObject(pyob, &ob, false) diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 1753c6570e9..2d3022a68f7 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -344,7 +344,7 @@ PyObject* KX_SceneActuator::PySetUseRestart(PyObject* self, ShowDeprecationWarning("setUseRestart()", "(no replacement)"); int boolArg; - if (!PyArg_ParseTuple(args, "i", &boolArg)) + if (!PyArg_ParseTuple(args, "i:setUseRestart", &boolArg)) { return NULL; } @@ -383,7 +383,7 @@ PyObject* KX_SceneActuator::PySetScene(PyObject* self, /* one argument: a scene, ignore the rest */ char *scene_name; - if(!PyArg_ParseTuple(args, "s", &scene_name)) + if(!PyArg_ParseTuple(args, "s:setScene", &scene_name)) { return NULL; } @@ -421,7 +421,7 @@ PyObject* KX_SceneActuator::PySetCamera(PyObject* self, { ShowDeprecationWarning("setCamera()", "the camera property"); PyObject *cam; - if (PyArg_ParseTuple(args, "O!", &KX_Camera::Type, &cam)) + if (PyArg_ParseTuple(args, "O!:setCamera", &KX_Camera::Type, &cam)) { if (m_camera) m_camera->UnregisterActuator(this); @@ -434,7 +434,7 @@ PyObject* KX_SceneActuator::PySetCamera(PyObject* self, /* one argument: a scene, ignore the rest */ char *camName; - if(!PyArg_ParseTuple(args, "s", &camName)) + if(!PyArg_ParseTuple(args, "s:setCamera", &camName)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index ecc3b574079..6381c43e1c6 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -620,7 +620,7 @@ PyObject* KX_SoundActuator::PySetGain(PyObject* self, PyObject* args, PyObject* { ShowDeprecationWarning("setGain()", "the volume property"); float gain = 1.0; - if (!PyArg_ParseTuple(args, "f", &gain)) + if (!PyArg_ParseTuple(args, "f:setGain", &gain)) return NULL; if (m_soundObject) @@ -646,7 +646,7 @@ PyObject* KX_SoundActuator::PySetPitch(PyObject* self, PyObject* args, PyObject* { ShowDeprecationWarning("setPitch()", "the pitch property"); float pitch = 1.0; - if (!PyArg_ParseTuple(args, "f", &pitch)) + if (!PyArg_ParseTuple(args, "f:setPitch", &pitch)) return NULL; if (m_soundObject) @@ -672,7 +672,7 @@ PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* self, PyObject* args, P { ShowDeprecationWarning("setRollOffFactor()", "the rollOffFactor property"); float rollofffactor = 1.0; - if (!PyArg_ParseTuple(args, "f", &rollofffactor)) + if (!PyArg_ParseTuple(args, "f:setRollOffFactor", &rollofffactor)) return NULL; if (m_soundObject) @@ -698,7 +698,7 @@ PyObject* KX_SoundActuator::PySetLooping(PyObject* self, PyObject* args, PyObjec { ShowDeprecationWarning("setLooping()", "the looping property"); bool looping = 1; - if (!PyArg_ParseTuple(args, "i", &looping)) + if (!PyArg_ParseTuple(args, "i:setLooping", &looping)) return NULL; if (m_soundObject) @@ -728,7 +728,7 @@ PyObject* KX_SoundActuator::PySetPosition(PyObject* self, PyObject* args, PyObje pos[1] = 0.0; pos[2] = 0.0; - if (!PyArg_ParseTuple(args, "fff", &pos[0], &pos[1], &pos[2])) + if (!PyArg_ParseTuple(args, "fff:setPosition", &pos[0], &pos[1], &pos[2])) return NULL; if (m_soundObject) @@ -747,7 +747,7 @@ PyObject* KX_SoundActuator::PySetVelocity(PyObject* self, PyObject* args, PyObje vel[1] = 0.0; vel[2] = 0.0; - if (!PyArg_ParseTuple(args, "fff", &vel[0], &vel[1], &vel[2])) + if (!PyArg_ParseTuple(args, "fff:setVelocity", &vel[0], &vel[1], &vel[2])) return NULL; if (m_soundObject) @@ -772,7 +772,7 @@ PyObject* KX_SoundActuator::PySetOrientation(PyObject* self, PyObject* args, PyO ori[2][1] = 0.0; ori[2][2] = 1.0; - if (!PyArg_ParseTuple(args, "fffffffff", &ori[0][0], &ori[0][1], &ori[0][2], &ori[1][0], &ori[1][1], &ori[1][2], &ori[2][0], &ori[2][1], &ori[2][2])) + if (!PyArg_ParseTuple(args, "fffffffff:setOrientation", &ori[0][0], &ori[0][1], &ori[0][2], &ori[1][0], &ori[1][1], &ori[1][2], &ori[2][0], &ori[2][1], &ori[2][2])) return NULL; if (m_soundObject) @@ -786,7 +786,7 @@ PyObject* KX_SoundActuator::PySetType(PyObject* self, PyObject* args, PyObject* int typeArg; ShowDeprecationWarning("setType()", "the type property"); - if (!PyArg_ParseTuple(args, "i", &typeArg)) { + if (!PyArg_ParseTuple(args, "i:setType", &typeArg)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index e9e3c091ef3..a251a987935 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -179,7 +179,7 @@ KX_StateActuator::PySetOperation(PyObject* self, ShowDeprecationWarning("setOperation()", "the operation property"); int oper; - if(!PyArg_ParseTuple(args, "i", &oper)) { + if(!PyArg_ParseTuple(args, "i:setOperation", &oper)) { return NULL; } @@ -205,7 +205,7 @@ KX_StateActuator::PySetMask(PyObject* self, ShowDeprecationWarning("setMask()", "the mask property"); int mask; - if(!PyArg_ParseTuple(args, "i", &mask)) { + if(!PyArg_ParseTuple(args, "i:setMask", &mask)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index c90ce06b916..29c6a21b0b3 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -551,7 +551,7 @@ PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args) ShowDeprecationWarning("getObject()", "the object property"); - if (!PyArg_ParseTuple(args, "|i", &ret_name_only)) + if (!PyArg_ParseTuple(args, "|i:getObject", &ret_name_only)) return NULL; if (!m_object) @@ -575,7 +575,7 @@ PyObject* KX_TrackToActuator::PySetTime(PyObject* self, PyObject* args, PyObject ShowDeprecationWarning("setTime()", "the timer property"); int timeArg; - if (!PyArg_ParseTuple(args, "i", &timeArg)) + if (!PyArg_ParseTuple(args, "i:setTime", &timeArg)) { return NULL; } @@ -623,7 +623,7 @@ PyObject* KX_TrackToActuator::PySetUse3D(PyObject* self, PyObject* args, PyObjec ShowDeprecationWarning("setTime()", "the use3D property"); int boolArg; - if (!PyArg_ParseTuple(args, "i", &boolArg)) { + if (!PyArg_ParseTuple(args, "i:setUse3D", &boolArg)) { return NULL; } diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 6afea4d3227..315b60922b7 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -46,7 +46,7 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self, int hasSteering; - if (PyArg_ParseTuple(args,"OOOOffi",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering)) + if (PyArg_ParseTuple(args,"OOOOffi:addWheel",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering)) { KX_GameObject* gameOb = (KX_GameObject*) wheelGameObject; @@ -89,7 +89,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self, int wheelIndex; - if (PyArg_ParseTuple(args,"i",&wheelIndex)) + if (PyArg_ParseTuple(args,"i:getWheelPosition",&wheelIndex)) { float position[3]; m_vehicle->GetWheelPosition(wheelIndex,position[0],position[1],position[2]); @@ -104,7 +104,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self, PyObject* kwds) { int wheelIndex; - if (PyArg_ParseTuple(args,"i",&wheelIndex)) + if (PyArg_ParseTuple(args,"i:getWheelRotation",&wheelIndex)) { return PyFloat_FromDouble(m_vehicle->GetWheelRotation(wheelIndex)); } @@ -116,7 +116,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self, PyObject* kwds) { int wheelIndex; - if (PyArg_ParseTuple(args,"i",&wheelIndex)) + if (PyArg_ParseTuple(args,"i:getWheelOrientationQuaternion",&wheelIndex)) { float orn[4]; m_vehicle->GetWheelOrientationQuaternion(wheelIndex,orn[0],orn[1],orn[2],orn[3]); @@ -153,7 +153,7 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self, float force; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&force,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:applyEngineForce",&force,&wheelIndex)) { force *= -1.f;//someone reverse some conventions inside Bullet (axle winding) m_vehicle->ApplyEngineForce(force,wheelIndex); @@ -171,7 +171,7 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self, float wheelFriction; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&wheelFriction,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setTyreFriction",&wheelFriction,&wheelIndex)) { m_vehicle->SetWheelFriction(wheelFriction,wheelIndex); } @@ -188,7 +188,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self, float suspensionStiffness; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&suspensionStiffness,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setSuspensionStiffness",&suspensionStiffness,&wheelIndex)) { m_vehicle->SetSuspensionStiffness(suspensionStiffness,wheelIndex); } @@ -205,7 +205,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self, float suspensionDamping; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&suspensionDamping,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setSuspensionDamping",&suspensionDamping,&wheelIndex)) { m_vehicle->SetSuspensionDamping(suspensionDamping,wheelIndex); } else { @@ -221,7 +221,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self, float suspensionCompression; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&suspensionCompression,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setSuspensionCompression",&suspensionCompression,&wheelIndex)) { m_vehicle->SetSuspensionCompression(suspensionCompression,wheelIndex); } else { @@ -237,7 +237,7 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self, float rollInfluence; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&rollInfluence,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setRollInfluence",&rollInfluence,&wheelIndex)) { m_vehicle->SetRollInfluence(rollInfluence,wheelIndex); } @@ -255,7 +255,7 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self, float braking; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&braking,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:applyBraking",&braking,&wheelIndex)) { m_vehicle->ApplyBraking(braking,wheelIndex); } @@ -275,7 +275,7 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self, float steeringValue; int wheelIndex; - if (PyArg_ParseTuple(args,"fi",&steeringValue,&wheelIndex)) + if (PyArg_ParseTuple(args,"fi:setSteeringValue",&steeringValue,&wheelIndex)) { m_vehicle->SetSteeringValue(steeringValue,wheelIndex); } diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 18277245d17..1ee2169adc4 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -159,7 +159,7 @@ KX_VisibilityActuator::PySetVisible(PyObject* self, int vis; ShowDeprecationWarning("SetVisible()", "the visible property"); - if(!PyArg_ParseTuple(args, "i", &vis)) { + if(!PyArg_ParseTuple(args, "i:setVisible", &vis)) { return NULL; } From c1cf50be7947cf46c7675cd867b7121b56eae0e3 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 10 Apr 2009 19:40:21 +0000 Subject: [PATCH 135/201] Mesh effector surface option: - Most mesh particle effectors can now have their effection point taken per particle as the nearest point on the mesh surface. - This is activated with the "surface" button in the effector field panel. - Activating the option adds a "surface" entry to the modifier stack where the state of the mesh is read from. For an example of usage see http://www.youtube.com/watch?v=3XkO1EAmJks. --- source/blender/blenkernel/intern/modifier.c | 84 +++++++++++++++++++ .../blenkernel/intern/particle_system.c | 33 +++++++- source/blender/blenloader/intern/readfile.c | 6 ++ source/blender/makesdna/DNA_modifier_types.h | 9 ++ source/blender/makesdna/DNA_object_force.h | 1 + source/blender/src/buttons_editing.c | 12 ++- source/blender/src/buttons_object.c | 43 +++++++++- 7 files changed, 178 insertions(+), 10 deletions(-) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index d182e3124fc..1068950d0d6 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6016,6 +6016,82 @@ static void collisionModifier_deformVerts( } + +/* Surface */ + +static void surfaceModifier_initData(ModifierData *md) +{ + SurfaceModifierData *surmd = (SurfaceModifierData*) md; + + surmd->bvhtree = NULL; +} + +static void surfaceModifier_freeData(ModifierData *md) +{ + SurfaceModifierData *surmd = (SurfaceModifierData*) md; + + if (surmd) + { + if(surmd->bvhtree) { + free_bvhtree_from_mesh(surmd->bvhtree); + MEM_freeN(surmd->bvhtree); + } + + surmd->dm->release(surmd->dm); + + surmd->bvhtree = NULL; + surmd->dm = NULL; + } +} + +static int surfaceModifier_dependsOnTime(ModifierData *md) +{ + return 1; +} + +static void surfaceModifier_deformVerts( + ModifierData *md, Object *ob, DerivedMesh *derivedData, + float (*vertexCos)[3], int numVerts) +{ + SurfaceModifierData *surmd = (SurfaceModifierData*) md; + DerivedMesh *dm = NULL; + float current_time = 0; + unsigned int numverts = 0, i = 0; + + if(surmd->dm) + surmd->dm->release(surmd->dm); + + /* if possible use/create DerivedMesh */ + if(derivedData) surmd->dm = CDDM_copy(derivedData); + else if(ob->type==OB_MESH) surmd->dm = CDDM_from_mesh(ob->data, ob); + + if(!ob->pd) + { + printf("surfaceModifier_deformVerts: Should not happen!\n"); + return; + } + + if(surmd->dm) + { + CDDM_apply_vert_coords(surmd->dm, vertexCos); + CDDM_calc_normals(surmd->dm); + + numverts = surmd->dm->getNumVerts ( surmd->dm ); + + /* convert to global coordinates */ + for(i = 0; iobmat, CDDM_get_vert(surmd->dm, i)->co); + + if(surmd->bvhtree) + free_bvhtree_from_mesh(surmd->bvhtree); + else + surmd->bvhtree = MEM_callocN(sizeof(BVHTreeFromMesh), "BVHTreeFromMesh"); + + bvhtree_from_mesh_faces(surmd->bvhtree, surmd->dm, 0.0, 2, 6); + } +} + + /* Boolean */ static void booleanModifier_copyData(ModifierData *md, ModifierData *target) @@ -8217,6 +8293,14 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->deformVerts = collisionModifier_deformVerts; // mti->copyData = collisionModifier_copyData; + mti = INIT_TYPE(Surface); + mti->type = eModifierTypeType_OnlyDeform; + mti->initData = surfaceModifier_initData; + mti->flags = eModifierTypeFlag_AcceptsMesh; + mti->dependsOnTime = surfaceModifier_dependsOnTime; + mti->freeData = surfaceModifier_freeData; + mti->deformVerts = surfaceModifier_deformVerts; + mti = INIT_TYPE(Boolean); mti->type = eModifierTypeType_Nonconstructive; mti->flags = eModifierTypeFlag_AcceptsMesh diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 0ffdd11c37a..bbf62d033bf 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -77,6 +77,7 @@ #include "BKE_mesh.h" #include "BKE_modifier.h" #include "BKE_scene.h" +#include "BKE_bvhutils.h" #include "PIL_time.h" @@ -2447,7 +2448,6 @@ void psys_end_effectors(ParticleSystem *psys) if(ec->rng) rng_free(ec->rng); - } BLI_freelistN(lb); @@ -2544,6 +2544,7 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P ParticleData *epa; ParticleKey estate; PartDeflect *pd; + SurfaceModifierData *surmd = NULL; ListBase *lb=&psys->effectors; ParticleEffectorCache *ec; float distance, vec_to_part[3]; @@ -2571,8 +2572,34 @@ void do_effectors(int pa_no, ParticleData *pa, ParticleKey *state, Object *ob, P if(psys->part->type!=PART_HAIR && psys->part->integrator) where_is_object_time(eob,cfra); - /* use center of object for distance calculus */ - VecSubf(vec_to_part, state->co, eob->obmat[3]); + if(pd && pd->flag&PFIELD_SURFACE) { + surmd = (SurfaceModifierData *)modifiers_findByType ( eob, eModifierType_Surface ); + } + if(surmd) { + /* closest point in the object surface is an effector */ + BVHTreeNearest nearest; + float velocity[3]; + + nearest.index = -1; + nearest.dist = FLT_MAX; + + /* using velocity corrected location allows for easier sliding over effector surface */ + VecCopyf(velocity, state->vel); + VecMulf(velocity, psys_get_timestep(psys->part)); + VecAddf(vec_to_part, state->co, velocity); + + BLI_bvhtree_find_nearest(surmd->bvhtree->tree, vec_to_part, &nearest, surmd->bvhtree->nearest_callback, surmd->bvhtree); + + if(nearest.index != -1) { + VecSubf(vec_to_part, state->co, nearest.co); + } + else + vec_to_part[0] = vec_to_part[1] = vec_to_part[2] = 0.0f; + } + else + /* use center of object for distance calculus */ + VecSubf(vec_to_part, state->co, eob->obmat[3]); + distance = VecLength(vec_to_part); falloff=effector_falloff(pd,eob->obmat[2],vec_to_part); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 06c8370bde2..63dd1e8e6cb 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3207,6 +3207,12 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) collmd->mfaces = NULL; } + else if (md->type==eModifierType_Surface) { + SurfaceModifierData *surmd = (SurfaceModifierData*) md; + + surmd->dm = NULL; + surmd->bvhtree = NULL; + } else if (md->type==eModifierType_Hook) { HookModifierData *hmd = (HookModifierData*) md; diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index ae07434a37f..077481dfa6e 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -39,6 +39,7 @@ typedef enum ModifierType { eModifierType_Fluidsim, eModifierType_Mask, eModifierType_SimpleDeform, + eModifierType_Surface, NUM_MODIFIER_TYPES } ModifierType; @@ -418,6 +419,14 @@ typedef struct CollisionModifierData { struct BVHTree *bvhtree; /* bounding volume hierarchy for this cloth object */ } CollisionModifierData; +typedef struct SurfaceModifierData { + ModifierData modifier; + + struct DerivedMesh *dm; + + struct BVHTreeFromMesh *bvhtree; /* bounding volume hierarchy of the mesh faces */ +} SurfaceModifierData; + typedef enum { eBooleanModifierOp_Intersect, eBooleanModifierOp_Union, diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 21c5242a703..49435000820 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -225,6 +225,7 @@ typedef struct SoftBody { #define PFIELD_USEMAXR 512 #define PFIELD_USEMINR 1024 #define PFIELD_TEX_ROOTCO 2048 +#define PFIELD_SURFACE 4096 /* pd->falloff */ #define PFIELD_FALL_SPHERE 0 diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 8b249815b6f..2ec30bfa864 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -1031,7 +1031,7 @@ static uiBlock *modifiers_add_menu(void *ob_v) /* Only allow adding through appropriate other interfaces */ if(ELEM3(i, eModifierType_Softbody, eModifierType_Hook, eModifierType_ParticleSystem)) continue; - if(ELEM3(i, eModifierType_Cloth, eModifierType_Collision, eModifierType_Fluidsim)) continue; + if(ELEM4(i, eModifierType_Cloth, eModifierType_Collision, eModifierType_Surface, eModifierType_Fluidsim)) continue; if((mti->flags&eModifierTypeFlag_AcceptsCVs) || (ob->type==OB_MESH && (mti->flags&eModifierTypeFlag_AcceptsMesh))) { @@ -1771,7 +1771,7 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco uiDefBut(block, TEX, B_MODIFIER_REDRAW, "", x+10, y-1, buttonWidth-60, 19, md->name, 0.0, sizeof(md->name)-1, 0.0, 0.0, "Modifier name"); /* Softbody not allowed in this situation, enforce! */ - if ((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) { + if (((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect)) && (md->type!=eModifierType_Surface)) { uiDefIconButBitI(block, TOG, eModifierMode_Render, B_MODIFIER_RECALC, ICON_SCENE, x+10+buttonWidth-60, y-1, 19, 19,&md->mode, 0, 0, 1, 0, "Enable modifier during rendering"); but= uiDefIconButBitI(block, TOG, eModifierMode_Realtime, B_MODIFIER_RECALC, VICON_VIEW3D, x+10+buttonWidth-40, y-1, 19, 19,&md->mode, 0, 0, 1, 0, "Enable modifier during interactive display"); if (mti->flags&eModifierTypeFlag_SupportsEditmode) { @@ -1813,7 +1813,7 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco // deletion over the deflection panel // fluid particle modifier can't be deleted here - if(md->type!=eModifierType_Fluidsim && md->type!=eModifierType_Collision && !modifier_is_fluid_particles(md)) + if(md->type!=eModifierType_Fluidsim && md->type!=eModifierType_Collision && md->type!=eModifierType_Surface && !modifier_is_fluid_particles(md)) { but = uiDefIconBut(block, BUT, B_MODIFIER_RECALC, VICON_X, x+width-70+40, y, 16, 16, NULL, 0.0, 0.0, 0.0, 0.0, "Delete modifier"); uiButSetFunc(but, modifiers_del, ob, md); @@ -1884,6 +1884,8 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco height = 31; } else if (md->type==eModifierType_Collision) { height = 31; + } else if (md->type==eModifierType_Surface) { + height = 31; } else if (md->type==eModifierType_Fluidsim) { height = 31; } else if (md->type==eModifierType_Boolean) { @@ -1924,7 +1926,7 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco y -= 18; - if (!isVirtual && (md->type!=eModifierType_Collision)) { + if (!isVirtual && (md->type!=eModifierType_Collision) && (md->type!=eModifierType_Surface)) { uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE); /* only here obdata, the rest of modifiers is ob level */ uiBlockBeginAlign(block); @@ -2369,6 +2371,8 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco } else if (md->type==eModifierType_Collision) { uiDefBut(block, LABEL, 1, "See Collision panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, ""); + } else if (md->type==eModifierType_Surface) { + uiDefBut(block, LABEL, 1, "See Fields panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, ""); } else if (md->type==eModifierType_Fluidsim) { uiDefBut(block, LABEL, 1, "See Fluidsim panel.", lx, (cy-=19), buttonWidth,19, NULL, 0.0, 0.0, 0, 0, ""); } else if (md->type==eModifierType_Boolean) { diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 5c41390b150..7fc504ba8d3 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -3340,6 +3340,35 @@ static void object_panel_collision(Object *ob) } } } +static void object_surface__enabletoggle ( void *ob_v, void *arg2 ) +{ + Object *ob = ob_v; + PartDeflect *pd= ob->pd; + ModifierData *md = modifiers_findByType ( ob, eModifierType_Surface ); + + if(!md) + { + if(pd && (pd->flag & PFIELD_SURFACE) + && ELEM5(pd->forcefield,PFIELD_HARMONIC,PFIELD_FORCE,PFIELD_HARMONIC,PFIELD_CHARGE,PFIELD_LENNARDJ)) + { + md = modifier_new ( eModifierType_Surface ); + BLI_addtail ( &ob->modifiers, md ); + DAG_scene_sort(G.scene); + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); + allqueue(REDRAWBUTSEDIT, 0); + allqueue(REDRAWVIEW3D, 0); + } + } + else if(!pd || !(pd->flag & PFIELD_SURFACE) + || ELEM5(pd->forcefield,PFIELD_HARMONIC,PFIELD_FORCE,PFIELD_HARMONIC,PFIELD_CHARGE,PFIELD_LENNARDJ)) + { + DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA); + BLI_remlink ( &ob->modifiers, md ); + modifier_free ( md ); + DAG_scene_sort(G.scene); + allqueue(REDRAWBUTSEDIT, 0); + } +} static void object_panel_fields(Object *ob) { uiBlock *block; @@ -3425,9 +3454,12 @@ static void object_panel_fields(Object *ob) } if(ob->particlesystem.first) - uiDefButS(block, MENU, B_FIELD_DEP, menustr, 80,180,70,20, &pd->forcefield, 0.0, 0.0, 0, 0, tipstr); + but = uiDefButS(block, MENU, B_FIELD_DEP, menustr, 80,180,70,20, &pd->forcefield, 0.0, 0.0, 0, 0, tipstr); else - uiDefButS(block, MENU, B_FIELD_DEP, menustr, 10,180,140,20, &pd->forcefield, 0.0, 0.0, 0, 0, tipstr); + but = uiDefButS(block, MENU, B_FIELD_DEP, menustr, 10,180,140,20, &pd->forcefield, 0.0, 0.0, 0, 0, tipstr); + + if(!particles) + uiButSetFunc(but, object_surface__enabletoggle, ob, NULL); uiBlockEndAlign(block); uiDefBut(block, LABEL, 0, "",160,180,150,2, NULL, 0.0, 0, 0, 0, ""); @@ -3472,7 +3504,12 @@ static void object_panel_fields(Object *ob) } else if(particles==0 && ELEM(pd->forcefield,PFIELD_VORTEX,PFIELD_WIND)==0){ //uiDefButF(block, NUM, B_FIELD_CHANGE, "Distance: ", 10,20,140,20, &pd->f_dist, 0, 1000.0, 10, 0, "Falloff power (real gravitational fallof = 2)"); - uiDefButBitS(block, TOG, PFIELD_PLANAR, B_FIELD_CHANGE, "Planar", 10,15,140,20, &pd->flag, 0.0, 0, 0, 0, "Create planar field"); + uiDefButBitS(block, TOG, PFIELD_PLANAR, B_FIELD_CHANGE, "Planar", 10,35,140,20, &pd->flag, 0.0, 0, 0, 0, "Create planar field"); + } + + if(particles==0 && ELEM5(pd->forcefield,PFIELD_HARMONIC,PFIELD_FORCE,PFIELD_HARMONIC,PFIELD_CHARGE,PFIELD_LENNARDJ)) { + but = uiDefButBitS(block, TOG, PFIELD_SURFACE, B_FIELD_CHANGE, "Surface", 10,15,140,20, &pd->flag, 0.0, 0, 0, 0, "Use closest point on surface"); + uiButSetFunc(but, object_surface__enabletoggle, ob, NULL); } uiBlockEndAlign(block); From 48514b3d52dd642a2e759dca635ff69505a7f767 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Fri, 10 Apr 2009 21:07:32 +0000 Subject: [PATCH 136/201] Fix for: [#18499] Particle size can only be set in steps of 0.1 - Some button settings were wrong. --- source/blender/src/buttons_object.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 7fc504ba8d3..7161bc8c266 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -4428,11 +4428,11 @@ static void object_panel_particle_extra(Object *ob) buty-=buth; /* size changes must create a recalc event always so that sizes are updated properly */ - uiDefButF(block, NUM, B_PART_RECALC, "Size:", butx,(buty-=buth),butw,buth, &part->size, 0.01, 100, 10, 1, "The size of the particles"); - uiDefButF(block, NUM, B_PART_RECALC, "Rand:", butx,(buty-=buth),butw,buth, &part->randsize, 0.0, 1.0, 10, 1, "Give the particle size a random variation"); + uiDefButF(block, NUM, B_PART_RECALC, "Size:", butx,(buty-=buth),butw,buth, &part->size, 0.001, 100, 10, 0, "The size of the particles"); + uiDefButF(block, NUM, B_PART_RECALC, "Rand:", butx,(buty-=buth),butw,buth, &part->randsize, 0.0, 1.0, 10, 0, "Give the particle size a random variation"); uiDefButBitI(block, TOG, PART_SIZEMASS, B_PART_RECALC, "Mass from size", butx,(buty-=buth),butw,buth, &part->flag, 0, 0, 0, 0, "Multiply mass with particle size"); - uiDefButF(block, NUM, B_PART_RECALC, "Mass:", butx,(buty-=buth),butw,buth, &part->mass, 0.01, 100, 10, 1, "Specify the mass of the particles"); + uiDefButF(block, NUM, B_PART_RECALC, "Mass:", butx,(buty-=buth),butw,buth, &part->mass, 0.001, 100, 10, 0, "Specify the mass of the particles"); } /* copy from buttons_shading.c */ static void autocomplete_uv(char *str, void *arg_v) @@ -4936,8 +4936,8 @@ static void object_panel_particle_system(Object *ob) } if(part->type!=PART_HAIR) { - uiDefButF(block, NUM, B_PART_INIT, "Life:", butx,(buty-=buth),butw,buth, &part->lifetime, 1.0, MAXFRAMEF, 100, 1, "Specify the life span of the particles"); - uiDefButF(block, NUM, B_PART_INIT, "Rand:", butx,(buty-=buth),butw,buth, &part->randlife, 0.0, 1.0, 10, 1, "Give the particle life a random variation"); + uiDefButF(block, NUM, B_PART_INIT, "Life:", butx,(buty-=buth),butw,buth, &part->lifetime, 1.0, MAXFRAMEF, 100, 0, "Specify the life span of the particles"); + uiDefButF(block, NUM, B_PART_INIT, "Rand:", butx,(buty-=buth),butw,buth, &part->randlife, 0.0, 1.0, 10, 0, "Give the particle life a random variation"); } uiBlockEndAlign(block); From 37e53b2e1f8107cb8ddbee2d67bf984a70a71276 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 11 Apr 2009 15:59:11 +0000 Subject: [PATCH 137/201] bugfix from Moguri, AddReplica wasnt setting the light layer from the parent --- source/gameengine/Ketsji/KX_Scene.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 30fed561519..7842076de66 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -91,6 +91,8 @@ #include "CcdPhysicsController.h" #endif +#include "KX_Light.h" + void* KX_SceneReplicationFunc(SG_IObject* node,void* gameobj,void* scene) { KX_GameObject* replica = ((KX_Scene*)scene)->AddNodeReplicaObject(node,(KX_GameObject*)gameobj); @@ -741,6 +743,12 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level) (*git)->Relink(&m_map_gameobject_to_replica); // add the object in the layer of the parent (*git)->SetLayer(groupobj->GetLayer()); + // If the object was a light, we need to update it's RAS_LightObject as well + if ((*git)->IsLight()) + { + KX_LightObject* lightobj = static_cast(*git); + lightobj->GetLightData()->m_layer = groupobj->GetLayer(); + } } // replicate crosslinks etc. between logic bricks @@ -841,6 +849,12 @@ SCA_IObject* KX_Scene::AddReplicaObject(class CValue* originalobject, (*git)->Relink(&m_map_gameobject_to_replica); // add the object in the layer of the parent (*git)->SetLayer(parentobj->GetLayer()); + // If the object was a light, we need to update it's RAS_LightObject as well + if ((*git)->IsLight()) + { + KX_LightObject* lightobj = static_cast(*git); + lightobj->GetLightData()->m_layer = parentobj->GetLayer(); + } } // replicate crosslinks etc. between logic bricks From 4cd088b1059afa2e7b998c184b2c9deecd4be4a9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 11 Apr 2009 20:58:09 +0000 Subject: [PATCH 138/201] BGE Py API - setting the scene attributes would always add to the scenes custom dictionary. - new CListValue method from_id(id) so you can store a Game Objects id and use it to get the game object back. ob_id = id(gameOb) ... gameOb = scene.objects.from_id(ob_id) This is useful because names are not always unique. --- source/gameengine/Expressions/ListValue.cpp | 29 ++++++++++++++++++++ source/gameengine/Expressions/ListValue.h | 1 + source/gameengine/Expressions/PyObjectPlus.h | 15 +++++----- source/gameengine/Ketsji/KX_Scene.cpp | 6 ++-- source/gameengine/Ketsji/KX_Scene.h | 21 ++++++++++++++ source/gameengine/PyDoc/CListValue.py | 22 ++++++++++++++- 6 files changed, 81 insertions(+), 13 deletions(-) diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index d0aec645468..16b4fbef6b7 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -233,6 +233,7 @@ PyMethodDef CListValue::Methods[] = { {"reverse", (PyCFunction)CListValue::sPyreverse,METH_NOARGS}, {"index", (PyCFunction)CListValue::sPyindex,METH_O}, {"count", (PyCFunction)CListValue::sPycount,METH_O}, + {"from_id", (PyCFunction)CListValue::sPyfrom_id,METH_O}, {NULL,NULL} //Sentinel }; @@ -502,6 +503,34 @@ PyObject* CListValue::Pycount(PyObject* self, PyObject* value) +PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) +{ +#if SIZEOF_VOID_P <= SIZEOF_LONG +#define BGE_ID_TYPE unsigned long + BGE_ID_TYPE id= PyLong_AsUnsignedLong(value); +#else +#define BGE_ID_TYPE unsigned long long + BGE_ID_TYPE id= PyLong_FromUnsignedLongLong(value); +#endif + + if (id==-1 && PyErr_Occurred()) + return NULL; + + int numelem = GetCount(); + for (int i=0;i(static_cast(m_pValueArray[i])) == id) + return GetValue(i); + + } + PyErr_SetString(PyExc_IndexError, "from_id(#), id not found in CValueList"); + return NULL; + +} + +#undef BGE_ID_TYPE + + /* --------------------------------------------------------------------- * Some stuff taken from the header * --------------------------------------------------------------------- */ diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h index 1c01c2d221d..6f70acb9367 100644 --- a/source/gameengine/Expressions/ListValue.h +++ b/source/gameengine/Expressions/ListValue.h @@ -71,6 +71,7 @@ public: KX_PYMETHOD_NOARGS(CListValue,reverse); KX_PYMETHOD_O(CListValue,index); KX_PYMETHOD_O(CListValue,count); + KX_PYMETHOD_O(CListValue,from_id); private: diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 786ca1fdc4f..42168461634 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -404,9 +404,9 @@ public: // }; // decref method virtual PyObject *py_getattro(PyObject *attr); // py_getattro method - static PyObject *py_base_getattro(PyObject * PyObj, PyObject *attr) // This should be the entry in Type. + static PyObject *py_base_getattro(PyObject * self, PyObject *attr) // This should be the entry in Type. { - return ((PyObjectPlus*) PyObj)->py_getattro(attr); + return ((PyObjectPlus*) self)->py_getattro(attr); } static PyObject* py_get_attrdef(void *self, const PyAttributeDef *attrdef); @@ -419,13 +419,12 @@ public: virtual int py_delattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method - static int py_base_setattro(PyObject *PyObj, // This should be the entry in Type. - PyObject *attr, - PyObject *value) - { + static int py_base_setattro(PyObject *self, PyObject *attr, PyObject *value) // the PyType should reference this + { if (value==NULL) - return ((PyObjectPlus*) PyObj)->py_delattro(attr); - return ((PyObjectPlus*) PyObj)->py_setattro(attr, value); + return ((PyObjectPlus*) self)->py_delattro(attr); + + return ((PyObjectPlus*) self)->py_setattro(attr, value); } virtual PyObject *py_repr(void); // py_repr method diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 7842076de66..2f7c1b77794 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1588,7 +1588,7 @@ PyTypeObject KX_Scene::Type = { py_base_repr, 0,0,0,0,0,0, py_base_getattro, - py_base_setattro, + py_base_setattro_scene, /* unlike almost all other types we need out own because user attributes are supported */ 0,0,0,0,0,0,0,0,0, Methods }; @@ -1669,11 +1669,9 @@ int KX_Scene::py_delattro(PyObject *attr) return 0; } +/* py_base_setattro_scene deals with setting the dict, it will run if this returns an error */ int KX_Scene::py_setattro(PyObject *attr, PyObject *pyvalue) { - if (!PyDict_SetItem(m_attrlist, attr, pyvalue)) - return 0; - return PyObjectPlus::py_setattro(attr, pyvalue); } diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index 9f05ddf70c2..1bdfbd45d20 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -590,6 +590,27 @@ public: /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int py_base_setattro_scene(PyObject * self, PyObject *attr, PyObject *value) + { + if (value==NULL) + return ((PyObjectPlus*) self)->py_delattro(attr); + + int ret= ((PyObjectPlus*) self)->py_setattro(attr, value); + + if (ret) { + if (!PyDict_SetItem(((KX_Scene *) self)->m_attrlist, attr, value)) { + PyErr_Clear(); + ret= 0; + } + else { + ret= -1; + } + } + + return ret; + } + + virtual PyObject* py_getattro(PyObject *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */ virtual int py_setattro(PyObject *attr, PyObject *pyvalue); diff --git a/source/gameengine/PyDoc/CListValue.py b/source/gameengine/PyDoc/CListValue.py index 33e77395c86..e9fc4215bb6 100644 --- a/source/gameengine/PyDoc/CListValue.py +++ b/source/gameengine/PyDoc/CListValue.py @@ -33,7 +33,27 @@ class CListValue: # (PyObjectPlus) @rtype: integer @return: The index of the value in the list. """ - def reverse(val): + def reverse(): """ Reverse the order of the list. + """ + def from_id(id): + """ + This is a funtion especially for the game engine to return a value with a spesific id. + + Since object names are not always unique, the id of an object can be used to get an object from the CValueList. + + Example. + + C{myObID = id(gameObject)} + + C{...} + + C{ob= scene.objects.from_id(myObID)} + + Where myObID is an int or long from the id function. + + This has the advantage that you can store the id in places you could not store a gameObject. + + Warning: the id is derived from a memory location and will be different each time the game engine starts. """ \ No newline at end of file From 33170295c8a2f3eb815b6086f47147113fd3de13 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 06:41:01 +0000 Subject: [PATCH 139/201] use long long rather then int for storing game logic properties. There were also some problems with int to python conversion - assigning a PyLong to a KX_GameObject from python would raise an error - PyLong were coerced into floats when used with internal CValue arithmetic Changes... - PyLong is converted into CIntValue for coercing and assigning from python - CValue's generic GetNumber() function returns a double rather then a float. - Print an error when a PyType cant be coerced into a CValue Tested with python, expressions and property sensor. --- source/gameengine/Expressions/BoolValue.cpp | 4 ++-- source/gameengine/Expressions/BoolValue.h | 2 +- source/gameengine/Expressions/ConstExpr.cpp | 2 +- source/gameengine/Expressions/ConstExpr.h | 2 +- source/gameengine/Expressions/EmptyValue.cpp | 2 +- source/gameengine/Expressions/EmptyValue.h | 2 +- source/gameengine/Expressions/ErrorValue.cpp | 2 +- source/gameengine/Expressions/ErrorValue.h | 2 +- source/gameengine/Expressions/FloatValue.cpp | 4 ++-- source/gameengine/Expressions/FloatValue.h | 2 +- source/gameengine/Expressions/InputParser.cpp | 8 ++++--- source/gameengine/Expressions/InputParser.h | 2 ++ source/gameengine/Expressions/IntValue.cpp | 21 +++++++++++-------- source/gameengine/Expressions/IntValue.h | 12 ++++++----- source/gameengine/Expressions/ListValue.cpp | 2 +- source/gameengine/Expressions/ListValue.h | 2 +- source/gameengine/Expressions/StringValue.cpp | 2 +- source/gameengine/Expressions/StringValue.h | 2 +- source/gameengine/Expressions/Value.cpp | 19 ++++++++++------- source/gameengine/Expressions/Value.h | 2 +- source/gameengine/Expressions/VectorValue.cpp | 2 +- source/gameengine/Expressions/VectorValue.h | 2 +- source/gameengine/Expressions/VoidValue.h | 2 +- .../GameLogic/SCA_ExpressionController.cpp | 2 +- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 2 +- source/gameengine/GameLogic/SCA_ILogicBrick.h | 2 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 2 +- source/gameengine/GameLogic/SCA_ISensor.h | 2 +- source/gameengine/Ketsji/KX_GameObject.cpp | 2 +- source/gameengine/Ketsji/KX_GameObject.h | 2 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 2 +- source/gameengine/Ketsji/KX_MeshProxy.h | 2 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 2 +- source/gameengine/Ketsji/KX_PolyProxy.h | 2 +- source/gameengine/Ketsji/KX_VertexProxy.cpp | 2 +- source/gameengine/Ketsji/KX_VertexProxy.h | 2 +- 36 files changed, 70 insertions(+), 58 deletions(-) diff --git a/source/gameengine/Expressions/BoolValue.cpp b/source/gameengine/Expressions/BoolValue.cpp index cadb34d7e8f..13c870b68e5 100644 --- a/source/gameengine/Expressions/BoolValue.cpp +++ b/source/gameengine/Expressions/BoolValue.cpp @@ -181,9 +181,9 @@ ret: the bool stored in the object -float CBoolValue::GetNumber() +double CBoolValue::GetNumber() { - return (float)m_bool; + return (double)m_bool; } diff --git a/source/gameengine/Expressions/BoolValue.h b/source/gameengine/Expressions/BoolValue.h index 6c4d964249f..9352b9d4b92 100644 --- a/source/gameengine/Expressions/BoolValue.h +++ b/source/gameengine/Expressions/BoolValue.h @@ -33,7 +33,7 @@ public: CBoolValue(bool innie, STR_String name, AllocationTYPE alloctype = CValue::HEAPVALUE); virtual const STR_String& GetText(); - virtual float GetNumber(); + virtual double GetNumber(); bool GetBool(); virtual void SetValue(CValue* newval); diff --git a/source/gameengine/Expressions/ConstExpr.cpp b/source/gameengine/Expressions/ConstExpr.cpp index e33ba091ac4..6b64be9c9a9 100644 --- a/source/gameengine/Expressions/ConstExpr.cpp +++ b/source/gameengine/Expressions/ConstExpr.cpp @@ -84,7 +84,7 @@ void CConstExpr::ClearModified() -float CConstExpr::GetNumber() +double CConstExpr::GetNumber() { return -1; } diff --git a/source/gameengine/Expressions/ConstExpr.h b/source/gameengine/Expressions/ConstExpr.h index e27ece52a83..b117140fe70 100644 --- a/source/gameengine/Expressions/ConstExpr.h +++ b/source/gameengine/Expressions/ConstExpr.h @@ -32,7 +32,7 @@ public: //bool IsInside(float x,float y,float z,bool bBorderInclude=true); bool NeedsRecalculated(); void ClearModified(); - virtual float GetNumber(); + virtual double GetNumber(); virtual CValue* Calculate(); CConstExpr(CValue* constval); CConstExpr(); diff --git a/source/gameengine/Expressions/EmptyValue.cpp b/source/gameengine/Expressions/EmptyValue.cpp index c2b60e590a4..f72ddc47096 100644 --- a/source/gameengine/Expressions/EmptyValue.cpp +++ b/source/gameengine/Expressions/EmptyValue.cpp @@ -76,7 +76,7 @@ this object -float CEmptyValue::GetNumber() +double CEmptyValue::GetNumber() { return 0; } diff --git a/source/gameengine/Expressions/EmptyValue.h b/source/gameengine/Expressions/EmptyValue.h index b9cca0e57e5..fb6b4a477a6 100644 --- a/source/gameengine/Expressions/EmptyValue.h +++ b/source/gameengine/Expressions/EmptyValue.h @@ -27,7 +27,7 @@ public: virtual ~CEmptyValue(); virtual const STR_String & GetText(); - virtual float GetNumber(); + virtual double GetNumber(); CListValue* GetPolySoup(); virtual double* GetVector3(bool bGetTransformedVec=false); bool IsInside(CValue* testpoint,bool bBorderInclude=true); diff --git a/source/gameengine/Expressions/ErrorValue.cpp b/source/gameengine/Expressions/ErrorValue.cpp index e52be4c8021..651a772db19 100644 --- a/source/gameengine/Expressions/ErrorValue.cpp +++ b/source/gameengine/Expressions/ErrorValue.cpp @@ -99,7 +99,7 @@ ret: a new object containing the result of applying operator op to val and -float CErrorValue::GetNumber() +double CErrorValue::GetNumber() { return -1; } diff --git a/source/gameengine/Expressions/ErrorValue.h b/source/gameengine/Expressions/ErrorValue.h index 16e608ca01a..5b5795196ba 100644 --- a/source/gameengine/Expressions/ErrorValue.h +++ b/source/gameengine/Expressions/ErrorValue.h @@ -23,7 +23,7 @@ class CErrorValue : public CPropValue public: virtual const STR_String & GetText(); - virtual float GetNumber(); + virtual double GetNumber(); CErrorValue(); CErrorValue(STR_String errmsg); virtual ~CErrorValue(); diff --git a/source/gameengine/Expressions/FloatValue.cpp b/source/gameengine/Expressions/FloatValue.cpp index 460eaa73f35..212a55fe457 100644 --- a/source/gameengine/Expressions/FloatValue.cpp +++ b/source/gameengine/Expressions/FloatValue.cpp @@ -278,7 +278,7 @@ ret: the float stored in the object -float CFloatValue::GetNumber() +double CFloatValue::GetNumber() { return m_float; } @@ -287,7 +287,7 @@ float CFloatValue::GetNumber() void CFloatValue::SetValue(CValue* newval) { - m_float = newval->GetNumber(); + m_float = (float)newval->GetNumber(); SetModified(true); } diff --git a/source/gameengine/Expressions/FloatValue.h b/source/gameengine/Expressions/FloatValue.h index 33f05f1d7f2..41f70b5c54c 100644 --- a/source/gameengine/Expressions/FloatValue.h +++ b/source/gameengine/Expressions/FloatValue.h @@ -28,7 +28,7 @@ public: virtual const STR_String & GetText(); void Configure(CValue* menuvalue); - virtual float GetNumber(); + virtual double GetNumber(); virtual void SetValue(CValue* newval); float GetFloat(); void SetFloat(float fl); diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp index 94663c4a365..677bbb36d70 100644 --- a/source/gameengine/Expressions/InputParser.cpp +++ b/source/gameengine/Expressions/InputParser.cpp @@ -319,12 +319,14 @@ void CParser::NextSym() } } +#if 0 int CParser::MakeInt() { // returns the integer representation of the value in the global // variable const_as_string // pre: const_as_string contains only numercal chars return atoi(const_as_string); } +#endif STR_String CParser::Symbol2Str(int s) { // returns a string representation of of symbol s, @@ -436,8 +438,8 @@ CExpression *CParser::Ex(int i) { break; case inttype: { - int temp; - temp = atoi(const_as_string); + cInt temp; + temp = strtoll(const_as_string, NULL, 10); /* atoi is for int only */ e1 = new CConstExpr(new CIntValue(temp)); break; } @@ -580,7 +582,7 @@ float CParser::GetFloat(STR_String txt) CExpression* expr = ProcessText(txt); if (expr) { val = expr->Calculate(); - result=val->GetNumber(); + result=(float)val->GetNumber(); diff --git a/source/gameengine/Expressions/InputParser.h b/source/gameengine/Expressions/InputParser.h index f51c473ba18..3d517222639 100644 --- a/source/gameengine/Expressions/InputParser.h +++ b/source/gameengine/Expressions/InputParser.h @@ -94,7 +94,9 @@ private: void CharRep(); void GrabString(int start); void NextSym(); +#if 0 /* not used yet */ int MakeInt(); +#endif STR_String Symbol2Str(int s); void Term(int s); int Priority(int optor); diff --git a/source/gameengine/Expressions/IntValue.cpp b/source/gameengine/Expressions/IntValue.cpp index fb586cb4979..4e86f7bf789 100644 --- a/source/gameengine/Expressions/IntValue.cpp +++ b/source/gameengine/Expressions/IntValue.cpp @@ -42,10 +42,10 @@ effect: constructs a new CIntValue -CIntValue::CIntValue(int innie) +CIntValue::CIntValue(cInt innie) /* pre: -effect: constructs a new CIntValue containing int innie +effect: constructs a new CIntValue containing cInt innie */ { m_int = innie; @@ -54,7 +54,7 @@ effect: constructs a new CIntValue containing int innie -CIntValue::CIntValue(int innie,STR_String name,AllocationTYPE alloctype) +CIntValue::CIntValue(cInt innie,STR_String name,AllocationTYPE alloctype) { m_int = innie; SetName(name); @@ -280,10 +280,10 @@ this object -int CIntValue::GetInt() +cInt CIntValue::GetInt() /* pre: -ret: the int stored in the object +ret: the cInt stored in the object */ { return m_int; @@ -291,7 +291,7 @@ ret: the int stored in the object -float CIntValue::GetNumber() +double CIntValue::GetNumber() { return (float) m_int; } @@ -302,7 +302,7 @@ const STR_String & CIntValue::GetText() { if (!m_pstrRep) m_pstrRep=new STR_String(); - m_pstrRep->Format("%d",m_int); + m_pstrRep->Format("%lld",m_int); return *m_pstrRep; } @@ -321,7 +321,7 @@ CValue* CIntValue::GetReplica() { void CIntValue::SetValue(CValue* newval) { - m_int = (int)newval->GetNumber(); + m_int = (cInt)newval->GetNumber(); SetModified(true); } @@ -329,5 +329,8 @@ void CIntValue::SetValue(CValue* newval) PyObject* CIntValue::ConvertValueToPython() { - return PyInt_FromLong(m_int); + if((m_int > INT_MIN) && (m_int < INT_MAX)) + return PyInt_FromLong(m_int); + else + return PyLong_FromLongLong(m_int); } diff --git a/source/gameengine/Expressions/IntValue.h b/source/gameengine/Expressions/IntValue.h index 4fdc1089857..0f3a38b274b 100644 --- a/source/gameengine/Expressions/IntValue.h +++ b/source/gameengine/Expressions/IntValue.h @@ -18,18 +18,20 @@ #include "Value.h" +typedef long long cInt; + class CIntValue : public CPropValue { //PLUGIN_DECLARE_SERIAL (CIntValue,CValue) public: virtual const STR_String& GetText(); - virtual float GetNumber(); + virtual double GetNumber(); - int GetInt(); + cInt GetInt(); CIntValue(); - CIntValue(int innie); - CIntValue(int innie, + CIntValue(cInt innie); + CIntValue(cInt innie, STR_String name, AllocationTYPE alloctype=CValue::HEAPVALUE); @@ -51,7 +53,7 @@ protected: virtual ~CIntValue(); private: - int m_int; + cInt m_int; STR_String* m_pstrRep; }; diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 16b4fbef6b7..0f163ad07c1 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -561,7 +561,7 @@ void CListValue::Add(CValue* value) -float CListValue::GetNumber() +double CListValue::GetNumber() { return -1; } diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h index 6f70acb9367..cf2976c2bbb 100644 --- a/source/gameengine/Expressions/ListValue.h +++ b/source/gameengine/Expressions/ListValue.h @@ -36,7 +36,7 @@ public: virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue* val); - virtual float GetNumber(); + virtual double GetNumber(); virtual CValue* GetReplica(); public: diff --git a/source/gameengine/Expressions/StringValue.cpp b/source/gameengine/Expressions/StringValue.cpp index 1ef8c5629a0..2b3c62c411e 100644 --- a/source/gameengine/Expressions/StringValue.cpp +++ b/source/gameengine/Expressions/StringValue.cpp @@ -113,7 +113,7 @@ this object -float CStringValue::GetNumber() +double CStringValue::GetNumber() { return -1; } diff --git a/source/gameengine/Expressions/StringValue.h b/source/gameengine/Expressions/StringValue.h index b824d4ef86d..16575ed7ffa 100644 --- a/source/gameengine/Expressions/StringValue.h +++ b/source/gameengine/Expressions/StringValue.h @@ -33,7 +33,7 @@ public: /// CValue implementation virtual bool IsEqual(const STR_String & other); virtual const STR_String & GetText(); - virtual float GetNumber(); + virtual double GetNumber(); virtual CValue* Calc(VALUE_OPERATOR op, CValue *val); virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index a631d58d21a..47f0686c4c3 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -86,20 +86,17 @@ int MyPyCompare (PyObject* v,PyObject* w) int cvalue_coerce(PyObject** pv,PyObject** pw) { if (PyInt_Check(*pw)) { - double db = (double)PyInt_AsLong(*pw); - *pw = new CIntValue((int) db); + *pw = new CIntValue((cInt)PyInt_AsLong(*pw)); Py_INCREF(*pv); return 0; } else if (PyLong_Check(*pw)) { - double db = PyLong_AsDouble(*pw); - *pw = new CFloatValue(db); + *pw = new CIntValue((cInt)PyLong_AsLongLong(*pw)); Py_INCREF(*pv); return 0; } else if (PyFloat_Check(*pw)) { - double db = PyFloat_AsDouble(*pw); - *pw = new CFloatValue(db); + *pw = new CFloatValue((float)PyFloat_AsDouble(*pw)); Py_INCREF(*pv); return 0; } else if (PyString_Check(*pw)) { @@ -108,6 +105,8 @@ int cvalue_coerce(PyObject** pv,PyObject** pw) Py_INCREF(*pv); return 0; } + + PyErr_SetString(PyExc_TypeError, "unable to coerce python type to cvalue"); return 1; /* Can't do it */ } @@ -402,7 +401,7 @@ float CValue::GetPropertyNumber(const STR_String& inName,float defnumber) { CValue *property = GetProperty(inName); if (property) - return property->GetNumber(); + return property->GetNumber(); else return defnumber; } @@ -757,7 +756,11 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) } else if (PyInt_Check(pyobj)) { - vallie = new CIntValue( (int)PyInt_AS_LONG(pyobj) ); + vallie = new CIntValue( (cInt)PyInt_AS_LONG(pyobj) ); + } else + if (PyLong_Check(pyobj)) + { + vallie = new CIntValue( (cInt)PyLong_AsLongLong(pyobj) ); } else if (PyString_Check(pyobj)) { diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index 7a2816a9778..4cdc80dc9bd 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -306,7 +306,7 @@ public: virtual void SetColorOperator(VALUE_OPERATOR op); virtual const STR_String & GetText() = 0; - virtual float GetNumber() = 0; + virtual double GetNumber() = 0; double* ZeroVector() { return m_sZeroVec; }; virtual double* GetVector3(bool bGetTransformedVec = false); diff --git a/source/gameengine/Expressions/VectorValue.cpp b/source/gameengine/Expressions/VectorValue.cpp index bea6902eba8..497a50b90e7 100644 --- a/source/gameengine/Expressions/VectorValue.cpp +++ b/source/gameengine/Expressions/VectorValue.cpp @@ -156,7 +156,7 @@ this object return ret; } -float CVectorValue::GetNumber() +double CVectorValue::GetNumber() { return m_vec[KX_X]; } diff --git a/source/gameengine/Expressions/VectorValue.h b/source/gameengine/Expressions/VectorValue.h index 5d9b2a98891..99bf0abb11b 100644 --- a/source/gameengine/Expressions/VectorValue.h +++ b/source/gameengine/Expressions/VectorValue.h @@ -32,7 +32,7 @@ public: void SetVector(double newvec[]); void Configure(CValue* menuvalue); virtual double* GetVector3(bool bGetTransformedVec=false); - virtual float GetNumber(); + virtual double GetNumber(); CValue* Calc(VALUE_OPERATOR op, CValue *val) { return val->CalcFinal(VALUE_VECTOR_TYPE, op, this); diff --git a/source/gameengine/Expressions/VoidValue.h b/source/gameengine/Expressions/VoidValue.h index 4bde0254787..10a6ff9ad3d 100644 --- a/source/gameengine/Expressions/VoidValue.h +++ b/source/gameengine/Expressions/VoidValue.h @@ -47,7 +47,7 @@ public: /// Value -> String or number virtual const STR_String & GetText(); // Get string description of void value (unimplemented) - virtual float GetNumber() { return -1; } + virtual double GetNumber() { return -1; } /// Value calculation virtual CValue* Calc(VALUE_OPERATOR op, CValue *val); diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.cpp b/source/gameengine/GameLogic/SCA_ExpressionController.cpp index 8ed46beb7f3..352a39a6fea 100644 --- a/source/gameengine/GameLogic/SCA_ExpressionController.cpp +++ b/source/gameengine/GameLogic/SCA_ExpressionController.cpp @@ -109,7 +109,7 @@ void SCA_ExpressionController::Trigger(SCA_LogicManager* logicmgr) printf(value->GetText()); } else { - float num = value->GetNumber(); + float num = (float)value->GetNumber(); expressionresult = !MT_fuzzyZero(num); } value->Release(); diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 900975b9f15..46e132c65fc 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -123,7 +123,7 @@ const STR_String& SCA_ILogicBrick::GetText() -float SCA_ILogicBrick::GetNumber() +double SCA_ILogicBrick::GetNumber() { return -1; } diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index c098f9dfd8a..20fa3c2d687 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -69,7 +69,7 @@ public: virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); virtual const STR_String & GetText(); - virtual float GetNumber(); + virtual double GetNumber(); virtual STR_String GetName(); virtual void SetName(STR_String name); virtual void ReplicaSetName(STR_String name); diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index bb1f73bf7f9..3c21cf66e09 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -105,7 +105,7 @@ void SCA_ISensor::SetLevel(bool lvl) { } -float SCA_ISensor::GetNumber() { +double SCA_ISensor::GetNumber() { return IsPositiveTrigger(); } diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index cfc95682089..18d630fce0e 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -113,7 +113,7 @@ public: virtual void RegisterToManager(); virtual void UnregisterToManager(); - virtual float GetNumber(); + virtual double GetNumber(); /** Stop sensing for a while. */ void Suspend(); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 13e839d9d2e..f5bf868dd59 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -164,7 +164,7 @@ const STR_String & KX_GameObject::GetText() -float KX_GameObject::GetNumber() +double KX_GameObject::GetNumber() { return 0; } diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index f4d35faaeb6..58f2c56c1da 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -208,7 +208,7 @@ public: /** * Inherited from CValue -- does nothing! */ - float + double GetNumber( ); diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index bcda4a8e3c4..e7f562bda8e 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -120,7 +120,7 @@ CValue* KX_MeshProxy::Calc(VALUE_OPERATOR op, CValue *val) { return NULL;} CValue* KX_MeshProxy::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val) { return NULL;} const STR_String & KX_MeshProxy::GetText() {return m_meshobj->GetName();}; -float KX_MeshProxy::GetNumber() { return -1;} +double KX_MeshProxy::GetNumber() { return -1;} STR_String KX_MeshProxy::GetName() { return m_meshobj->GetName();} void KX_MeshProxy::SetName(STR_String name) { }; CValue* KX_MeshProxy::GetReplica() { return NULL;} diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index 56a6dfcac42..3b72099eebb 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -46,7 +46,7 @@ public: virtual CValue* Calc(VALUE_OPERATOR op, CValue *val) ; virtual CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); virtual const STR_String & GetText(); - virtual float GetNumber(); + virtual double GetNumber(); virtual RAS_MeshObject* GetMesh() { return m_meshobj; } virtual STR_String GetName(); virtual void SetName(STR_String name); // Set the name of the value diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index 1e6f49ead2e..e102ca4e0e6 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -177,7 +177,7 @@ CValue* KX_PolyProxy::Calc(VALUE_OPERATOR, CValue *) { return NULL;} CValue* KX_PolyProxy::CalcFinal(VALUE_DATA_TYPE, VALUE_OPERATOR, CValue *) { return NULL;} STR_String sPolyName="polygone"; const STR_String & KX_PolyProxy::GetText() {return sPolyName;}; -float KX_PolyProxy::GetNumber() { return -1;} +double KX_PolyProxy::GetNumber() { return -1;} STR_String KX_PolyProxy::GetName() { return sPolyName;} void KX_PolyProxy::SetName(STR_String) { }; CValue* KX_PolyProxy::GetReplica() { return NULL;} diff --git a/source/gameengine/Ketsji/KX_PolyProxy.h b/source/gameengine/Ketsji/KX_PolyProxy.h index a549d9841cc..275e65da810 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.h +++ b/source/gameengine/Ketsji/KX_PolyProxy.h @@ -45,7 +45,7 @@ public: CValue* Calc(VALUE_OPERATOR op, CValue *val) ; CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); const STR_String & GetText(); - float GetNumber(); + double GetNumber(); STR_String GetName(); void SetName(STR_String name); // Set the name of the value void ReplicaSetName(STR_String name); diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index f3e9bbf86b1..bb12f405332 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -332,7 +332,7 @@ CValue* KX_VertexProxy::Calc(VALUE_OPERATOR, CValue *) { return NULL;} CValue* KX_VertexProxy::CalcFinal(VALUE_DATA_TYPE, VALUE_OPERATOR, CValue *) { return NULL;} STR_String sVertexName="vertex"; const STR_String & KX_VertexProxy::GetText() {return sVertexName;}; -float KX_VertexProxy::GetNumber() { return -1;} +double KX_VertexProxy::GetNumber() { return -1;} STR_String KX_VertexProxy::GetName() { return sVertexName;} void KX_VertexProxy::SetName(STR_String) { }; CValue* KX_VertexProxy::GetReplica() { return NULL;} diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h index 26772fc7d60..67a15d96768 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.h +++ b/source/gameengine/Ketsji/KX_VertexProxy.h @@ -46,7 +46,7 @@ public: CValue* Calc(VALUE_OPERATOR op, CValue *val) ; CValue* CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); const STR_String & GetText(); - float GetNumber(); + double GetNumber(); STR_String GetName(); void SetName(STR_String name); // Set the name of the value void ReplicaSetName(STR_String name); From 55d2b184ec1b2c1adfe182ead937cedae1a8208d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 07:24:04 +0000 Subject: [PATCH 140/201] added "toggle" an option for the property actuator. much less hassle then setting up a property sensor and 2 assignment actuators, or through python. --- source/blender/makesdna/DNA_actuator_types.h | 1 + source/blender/src/buttons_logic.c | 9 +++++++-- .../GameLogic/SCA_PropertyActuator.cpp | 17 +++++++++++++++++ .../gameengine/GameLogic/SCA_PropertyActuator.h | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 48432b8c6e2..2252126b46c 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -357,6 +357,7 @@ typedef struct FreeCamera { #define ACT_PROP_ASSIGN 0 #define ACT_PROP_ADD 1 #define ACT_PROP_COPY 2 +#define ACT_PROP_TOGGLE 3 /* constraint flag */ #define ACT_CONST_LOCX 1 diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 56879f80198..1f604aa8480 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -1970,12 +1970,17 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh pa= act->data; - str= "Type %t|Assign %x0|Add %x1|Copy %x2"; + str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle%x3"; uiDefButI(block, MENU, B_REDR, str, xco+30,yco-24,width-60, 19, &pa->type, 0, 31, 0, 0, "Type"); uiDefBut(block, TEX, 1, "Prop: ", xco+30,yco-44,width-60, 19, pa->name, 0, 31, 0, 0, "Property name"); - if(pa->type==ACT_PROP_COPY) { + + if(pa->type==ACT_PROP_TOGGLE) { + /* no ui */ + ysize -= 22; + } + else if(pa->type==ACT_PROP_COPY) { uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-64, (width-20)/2, 19, &(pa->ob), "Copy from this Object"); uiDefBut(block, TEX, 1, "Prop: ", xco+10+(width-20)/2, yco-64, (width-20)/2, 19, pa->value, 0, 31, 0, 0, "Copy this property"); } diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 444c616870d..37df8a5c401 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -135,6 +135,23 @@ bool SCA_PropertyActuator::Update() } break; } + case KX_ACT_PROP_TOGGLE: + { + + CValue* newval; + CValue* oldprop = propowner->GetProperty(m_propname); + if (oldprop) + { + newval = new CBoolValue((oldprop->GetNumber()==0.0) ? true:false); + oldprop->SetValue(newval); + } else + { /* as not been assigned, evaluate as false, so assign true */ + newval = new CBoolValue(true); + propowner->SetProperty(m_propname,newval); + } + newval->Release(); + break; + } default: { diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.h b/source/gameengine/GameLogic/SCA_PropertyActuator.h index 6a975716ed0..bb841cf88ad 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.h +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.h @@ -43,6 +43,7 @@ class SCA_PropertyActuator : public SCA_IActuator KX_ACT_PROP_ASSIGN, KX_ACT_PROP_ADD, KX_ACT_PROP_COPY, + KX_ACT_PROP_TOGGLE, KX_ACT_PROP_MAX }; From 5b306b7541bfc60342b70bcc55456d5c453a294a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 09:56:30 +0000 Subject: [PATCH 141/201] BGE Python API added defines PY_SET_ATTR_FAIL, PY_SET_ATTR_MISSING and PY_SET_ATTR_SUCCESS This is useful when objects that have user defined attributes (GameObject and Scene) When calling setattr on the parent, a return value of PY_SET_ATTR_FAIL means the attribute exists but failed to be set, so don't set the custom attribute. --- .../gameengine/Expressions/PyObjectPlus.cpp | 6 ++-- source/gameengine/Expressions/PyObjectPlus.h | 14 ++++++-- source/gameengine/Expressions/Value.cpp | 4 +-- .../Ketsji/KX_ConstraintWrapper.cpp | 2 +- source/gameengine/Ketsji/KX_Light.cpp | 22 ++++++------ source/gameengine/Ketsji/KX_Scene.h | 8 ++--- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 2 +- source/gameengine/Ketsji/KX_VertexProxy.cpp | 36 +++++++++---------- 8 files changed, 52 insertions(+), 42 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 4526f8f649b..33335ebef3e 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -137,7 +137,7 @@ int PyObjectPlus::py_setattro(PyObject *attr, PyObject* value) //return PyObject::py_setattro(attr,value); //cerr << "Unknown attribute" << endl; PyErr_SetString(PyExc_AttributeError, "attribute cant be set"); - return 1; + return PY_SET_ATTR_MISSING; } PyObject *PyObjectPlus::py_get_attrdef(void *self, const PyAttributeDef *attrdef) @@ -699,13 +699,13 @@ int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) { PyErr_SetString(PyExc_AttributeError, "property is read-only"); - return 1; + return PY_SET_ATTR_FAIL; } return py_set_attrdef(self, attrdef, value); } } - return -1; + return PY_SET_ATTR_MISSING; } #endif diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 42168461634..f61b9f8d0b8 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -124,6 +124,16 @@ static inline void Py_Fatal(const char *M) { return NULL; +/* + * nonzero values are an error for setattr + * however because of the nested lookups we need to know if the errors + * was because the attribute didnt exits of if there was some problem setting the value + */ + +#define PY_SET_ATTR_FAIL 1 +#define PY_SET_ATTR_MISSING -1 +#define PY_SET_ATTR_SUCCESS 0 + #define py_setattro_up(Parent) \ PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ \ @@ -132,14 +142,14 @@ static inline void Py_Fatal(const char *M) { const PyAttributeDef* attrdef= reinterpret_cast(PyCObject_AsVoidPtr(descr)); \ if (attrdef->m_access == KX_PYATTRIBUTE_RO) { \ PyErr_Format(PyExc_AttributeError, "\"%s\" is read only", PyString_AsString(attr)); \ - return -1; \ + return PY_SET_ATTR_FAIL; \ } \ else { \ return py_set_attrdef((void *)this, attrdef, value); \ } \ } else { \ PyErr_Format(PyExc_AttributeError, "\"%s\" cannot be set", PyString_AsString(attr)); \ - return -1; \ + return PY_SET_ATTR_FAIL; \ } \ } else { \ PyErr_Clear(); \ diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 47f0686c4c3..f1e367d6e59 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -804,11 +804,11 @@ int CValue::py_setattro(PyObject *attr, PyObject* pyobj) vallie->Release(); } else { - return 1; /* ConvertPythonToValue sets the error message */ + return PY_SET_ATTR_FAIL; /* ConvertPythonToValue sets the error message */ } //PyObjectPlus::py_setattro(attr,value); - return 0; + return PY_SET_ATTR_SUCCESS; }; PyObject* CValue::ConvertKeysToPython( void ) diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index edd6e991e9f..6f4d970c568 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -101,7 +101,7 @@ PyObject* KX_ConstraintWrapper::py_getattro(PyObject *attr) int KX_ConstraintWrapper::py_setattro(PyObject *attr,PyObject* pyobj) { int result = 1; - + /* what the heck is this supposed to do?, needs attention */ if (PyList_Check(pyobj)) { result = 0; diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index f996f86d751..059345ea8de 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -225,14 +225,14 @@ int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) if (!strcmp(attr_str, "layer")) { m_lightobj.m_layer = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "type")) { if (value >= RAS_LightObject::LIGHT_SPOT && value <= RAS_LightObject::LIGHT_NORMAL) m_lightobj.m_type = (RAS_LightObject::LightType) value; - return 0; + return PY_SET_ATTR_SUCCESS; } } @@ -242,37 +242,37 @@ int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) if (!strcmp(attr_str, "energy")) { m_lightobj.m_energy = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "distance")) { m_lightobj.m_distance = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "lin_attenuation")) { m_lightobj.m_att1 = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "quad_attenuation")) { m_lightobj.m_att2 = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "spotsize")) { m_lightobj.m_spotsize = value; - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "spotblend")) { m_lightobj.m_spotblend = value; - return 0; + return PY_SET_ATTR_SUCCESS; } } @@ -286,16 +286,16 @@ int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) m_lightobj.m_red = color[0]; m_lightobj.m_green = color[1]; m_lightobj.m_blue = color[2]; - return 0; + return PY_SET_ATTR_SUCCESS; } - return 1; + return PY_SET_ATTR_FAIL; } } if (!strcmp(attr_str, "SPOT") || !strcmp(attr_str, "SUN") || !strcmp(attr_str, "NORMAL")) { PyErr_Format(PyExc_RuntimeError, "Attribute %s is read only.", attr_str); - return 1; + return PY_SET_ATTR_FAIL; } return KX_GameObject::py_setattro(attr, pyvalue); diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index 1bdfbd45d20..b70c6d3e8d3 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -597,13 +597,13 @@ public: int ret= ((PyObjectPlus*) self)->py_setattro(attr, value); - if (ret) { - if (!PyDict_SetItem(((KX_Scene *) self)->m_attrlist, attr, value)) { + if (ret==PY_SET_ATTR_MISSING) { + if (PyDict_SetItem(((KX_Scene *) self)->m_attrlist, attr, value)==0) { PyErr_Clear(); - ret= 0; + ret= PY_SET_ATTR_SUCCESS; } else { - ret= -1; + ret= PY_SET_ATTR_FAIL; } } diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 315b60922b7..98f5a1ea87d 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -331,7 +331,7 @@ PyObject* KX_VehicleWrapper::py_getattro(PyObject *attr) int KX_VehicleWrapper::py_setattro(PyObject *attr,PyObject* pyobj) { - + /* TODO - strange setattr, needs updating */ PyTypeObject* type = pyobj->ob_type; int result = 1; diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index bb12f405332..6a160dff7b7 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -171,9 +171,9 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) { m_vertex->SetXYZ(vec); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } - return 1; + return PY_SET_ATTR_FAIL; } if (!strcmp(attr_str, "UV")) @@ -183,9 +183,9 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) { m_vertex->SetUV(vec); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } - return 1; + return PY_SET_ATTR_FAIL; } if (!strcmp(attr_str, "color") || !strcmp(attr_str, "colour")) @@ -195,9 +195,9 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) { m_vertex->SetRGBA(vec); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } - return 1; + return PY_SET_ATTR_FAIL; } if (!strcmp(attr_str, "normal")) @@ -207,9 +207,9 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) { m_vertex->SetNormal(vec); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } - return 1; + return PY_SET_ATTR_FAIL; } } @@ -223,7 +223,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) pos.x() = val; m_vertex->SetXYZ(pos); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "y")) @@ -231,7 +231,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) pos.y() = val; m_vertex->SetXYZ(pos); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "z")) @@ -239,7 +239,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) pos.z() = val; m_vertex->SetXYZ(pos); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } // uv @@ -249,7 +249,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) uv[0] = val; m_vertex->SetUV(uv); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "v")) @@ -257,7 +257,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) uv[1] = val; m_vertex->SetUV(uv); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } // uv @@ -275,7 +275,7 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) uv[1] = val; m_vertex->SetUV2(uv); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } // col @@ -287,28 +287,28 @@ int KX_VertexProxy::py_setattro(PyObject *attr, PyObject *pyvalue) cp[0] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "g")) { cp[1] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "b")) { cp[2] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } if (!strcmp(attr_str, "a")) { cp[3] = (unsigned char) val; m_vertex->SetRGBA(icol); m_mesh->SetMeshModified(true); - return 0; + return PY_SET_ATTR_SUCCESS; } } From ee24c829b56ebddb47ae2bcfe30db5d857610450 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 10:56:36 +0000 Subject: [PATCH 142/201] need strtoll defined as _strtoi64 to build on windows --- source/gameengine/Expressions/InputParser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp index 677bbb36d70..181cd6f3907 100644 --- a/source/gameengine/Expressions/InputParser.cpp +++ b/source/gameengine/Expressions/InputParser.cpp @@ -39,7 +39,8 @@ #include "IfExpr.h" #if defined(WIN32) || defined(WIN64) -#define strcasecmp _stricmp +#define strcasecmp _stricmp +#define strtoll _strtoi64 #endif /* Def WIN32 or Def WIN64 */ #define NUM_PRIORITY 6 From 332032fb9925091da49efa2e9c3653bdb3e68cba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 14:22:51 +0000 Subject: [PATCH 143/201] BGE Python API Support for assigning any Type to a KX_GameObject so you can do... gameOb.follow = otherGameOb gameOb[otherGameOb] = distanceTo gameOb["path"] = [(x,y,x), (x,y,x)] del gameOb[mesh] * types that cannot be converted into CValue types are written into the KX_GameObject dict * the KX_GameObject dict is only initialized when needed * Python properties in this dict cannot be accessed by logic bricks * dir(ob) and ob.getPropertyNames() return items from both CValue and Py dictionary properties. Also found that CType was converting python lists to CType Lists but very buggy, would crash after printing the list most times. Use python lists instead since logic bricks dont deal with lists. --- source/gameengine/Expressions/PyObjectPlus.h | 5 +- source/gameengine/Expressions/Value.cpp | 29 +++- source/gameengine/Ketsji/KX_GameObject.cpp | 159 ++++++++++++++----- source/gameengine/Ketsji/KX_GameObject.h | 119 +++++++++++++- source/gameengine/Ketsji/KX_Scene.h | 1 + 5 files changed, 263 insertions(+), 50 deletions(-) diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index f61b9f8d0b8..ea26ea1d201 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -130,9 +130,10 @@ static inline void Py_Fatal(const char *M) { * was because the attribute didnt exits of if there was some problem setting the value */ +#define PY_SET_ATTR_COERCE_FAIL 2 #define PY_SET_ATTR_FAIL 1 -#define PY_SET_ATTR_MISSING -1 -#define PY_SET_ATTR_SUCCESS 0 +#define PY_SET_ATTR_MISSING -1 +#define PY_SET_ATTR_SUCCESS 0 #define py_setattro_up(Parent) \ PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index f1e367d6e59..b8b7a05aa64 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -719,7 +719,8 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) { CValue* vallie = NULL; - + /* refcounting is broking here! - this crashes anyway, just store a python list for KX_GameObject */ +#if 0 if (PyList_Check(pyobj)) { CListValue* listval = new CListValue(); @@ -750,6 +751,7 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) } } else +#endif if (PyFloat_Check(pyobj)) { vallie = new CFloatValue( (float)PyFloat_AsDouble(pyobj) ); @@ -790,21 +792,34 @@ int CValue::py_delattro(PyObject *attr) int CValue::py_setattro(PyObject *attr, PyObject* pyobj) { + char *attr_str= PyString_AsString(attr); + CValue* oldprop = GetProperty(attr_str); + CValue* vallie = ConvertPythonToValue(pyobj); if (vallie) { - char *attr_str= PyString_AsString(attr); - CValue* oldprop = GetProperty(attr_str); - if (oldprop) oldprop->SetValue(vallie); else SetProperty(attr_str, vallie); vallie->Release(); - } else - { - return PY_SET_ATTR_FAIL; /* ConvertPythonToValue sets the error message */ + } + else { + // ConvertPythonToValue sets the error message + // must return missing so KX_GameObect knows this + // attribute was not a function or bult in attribute, + // + // CValue attributes override internal attributes + // so if it exists as a CValue attribute already, + // assume your trying to set it to a differnt CValue attribute + // otherwise return PY_SET_ATTR_MISSING so children + // classes know they can set it without conflict + + if (GetProperty(attr_str)) + return PY_SET_ATTR_COERCE_FAIL; /* failed to set an existing attribute */ + else + return PY_SET_ATTR_MISSING; /* allow the KX_GameObject dict to set */ } //PyObjectPlus::py_setattro(attr,value); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index f5bf868dd59..817afedd205 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -97,7 +97,8 @@ KX_GameObject::KX_GameObject( m_pPhysicsEnvironment(NULL), m_xray(false), m_pHitObject(NULL), - m_isDeformable(false) + m_isDeformable(false), + m_attrlist(NULL) { m_ignore_activity_culling = false; m_pClient_info = new KX_ClientObjectInfo(this, KX_ClientObjectInfo::ACTOR); @@ -139,6 +140,10 @@ KX_GameObject::~KX_GameObject() { delete m_pGraphicController; } + + if (m_attrlist) { + Py_DECREF(m_attrlist); + } } @@ -323,6 +328,9 @@ void KX_GameObject::ProcessReplica(KX_GameObject* replica) replica->m_pClient_info = new KX_ClientObjectInfo(*m_pClient_info); replica->m_pClient_info->m_gameobject = replica; replica->m_state = 0; + if(m_attrlist) + replica->m_attrlist= PyDict_Copy(m_attrlist); + } @@ -1138,69 +1146,124 @@ PyObject* KX_GameObject::PyGetPosition(PyObject* self) Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) { - return (static_cast(self_v))->GetPropertyCount(); + KX_GameObject* self= static_cast(self_v); + Py_ssize_t len= self->GetPropertyCount(); + if(self->m_attrlist) + len += PyDict_Size(self->m_attrlist); + return len; } PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) { KX_GameObject* self= static_cast(self_v); - const char *attr= PyString_AsString(item); + const char *attr_str= PyString_AsString(item); CValue* resultattr; PyObject* pyconvert; - - if(attr==NULL) { - PyErr_SetString(PyExc_TypeError, "KX_GameObject key but a string"); + /* first see if the attributes a string and try get the cvalue attribute */ + if(attr_str && (resultattr=self->GetProperty(attr_str))) { + pyconvert = resultattr->ConvertValueToPython(); + return pyconvert ? pyconvert:resultattr; + } + /* no CValue attribute, try get the python only m_attrlist attribute */ + else if (self->m_attrlist && (pyconvert=PyDict_GetItem(self->m_attrlist, item))) { + + if (attr_str) + PyErr_Clear(); + Py_INCREF(pyconvert); + return pyconvert; + } + else { + if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" does not exist", attr_str); + else PyErr_SetString(PyExc_KeyError, "KX_GameObject key does not exist"); return NULL; } - - resultattr = self->GetProperty(attr); - - if(resultattr==NULL) { - PyErr_SetString(PyExc_KeyError, "KX_GameObject key does not exist"); - return NULL; - } - - pyconvert = resultattr->ConvertValueToPython(); - - return pyconvert ? pyconvert:resultattr; + } int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) { KX_GameObject* self= static_cast(self_v); - const char *attr= PyString_AsString(key); - - if(attr==NULL) { - PyErr_SetString(PyExc_TypeError, "KX_GameObject key but a string"); - return 1; - } + const char *attr_str= PyString_AsString(key); + if(attr_str==NULL) + PyErr_Clear(); if (val==NULL) { /* del ob["key"] */ - if (self->RemoveProperty(attr)==false) { - PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not found", attr); - return 1; + int del= 0; + + /* try remove both just incase */ + if(attr_str) + del |= (self->RemoveProperty(attr_str)==true) ? 1:0; + + if(self->m_attrlist) + del |= (PyDict_DelItem(self->m_attrlist, key)==0) ? 1:0; + + if (del==0) { + if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not found", attr_str); + else PyErr_SetString(PyExc_KeyError, "KX_GameObject key not found"); + return -1; + } + else if (self->m_attrlist) { + PyErr_Clear(); /* PyDict_DelItem sets an error when it fails */ } } else { /* ob["key"] = value */ - CValue* vallie = self->ConvertPythonToValue(val); + int set= 0; - if(vallie==NULL) - return 1; /* ConvertPythonToValue sets the error */ + /* as CValue */ + if(attr_str) + { + CValue* vallie = self->ConvertPythonToValue(val); + + if(vallie) + { + CValue* oldprop = self->GetProperty(attr_str); + + if (oldprop) + oldprop->SetValue(vallie); + else + self->SetProperty(attr_str, vallie); + + vallie->Release(); + set= 1; + + /* try remove dict value to avoid double ups */ + if (self->m_attrlist){ + if (PyDict_DelItem(self->m_attrlist, key) != 0) + PyErr_Clear(); + } + } + else { + PyErr_Clear(); + } + } - CValue* oldprop = self->GetProperty(attr); + if(set==0) + { + if (self->m_attrlist==NULL) /* lazy init */ + self->m_attrlist= PyDict_New(); + + + if(PyDict_SetItem(self->m_attrlist, key, val)==0) + { + if(attr_str) + self->RemoveProperty(attr_str); /* overwrite the CValue if it exists */ + set= 1; + } + else { + if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not be added to internal dictionary", attr_str); + else PyErr_SetString(PyExc_KeyError, "KX_GameObject key not be added to internal dictionary"); + } + } - if (oldprop) - oldprop->SetValue(vallie); - else - self->SetProperty(attr, vallie); + if(set==0) + return -1; /* pythons error value */ - vallie->Release(); } - return 0; + return 0; /* success */ } @@ -1223,9 +1286,11 @@ PyTypeObject KX_GameObject::Type = { 0, 0, py_base_repr, - 0,0,0,0,0,0, - py_base_getattro, - py_base_setattro, + 0,0, + &Mapping, + 0,0,0, + py_base_getattro_gameobject, + py_base_setattro_gameobject, 0,0,0,0,0,0,0,0,0, Methods }; @@ -1533,6 +1598,10 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ Py_DECREF(list); + /* Add m_attrlist if we have it */ + if(self->m_attrlist) + PyDict_Update(dict, self->m_attrlist); + return dict; } @@ -2042,7 +2111,17 @@ PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self) PyObject* KX_GameObject::PyGetPropertyNames(PyObject* self) { - return ConvertKeysToPython(); + PyObject *list= ConvertKeysToPython(); + + if(m_attrlist) { + PyObject *key, *value; + Py_ssize_t pos = 0; + + while (PyDict_Next(m_attrlist, &pos, &key, &value)) { + PyList_Append(list, key); + } + } + return list; } KX_PYMETHODDEF_DOC_O(KX_GameObject, getDistanceTo, diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 58f2c56c1da..172272150c0 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -103,6 +103,26 @@ protected: public: bool m_isDeformable; + // Python attributes that wont convert into CValue + // + // there are 2 places attributes can be stored, in the CValue, + // where attributes are converted into BGE's CValue types + // these can be used with property actuators + // + // For the python API, For types that cannot be converted into CValues (lists, dicts, GameObjects) + // these will be put into "m_attrlist", logic bricks cannot access them. + // + // rules for setting attributes. + // + // * there should NEVER be a CValue and a m_attrlist attribute with matching names. get/sets make sure of this. + // * if CValue conversion fails, use a PyObject in "m_attrlist" + // * when assigning a value, first see if it can be a CValue, if it can remove the "m_attrlist" and set the CValue + // + + PyObject* m_attrlist; + + + virtual void /* This function should be virtual - derived classed override it */ Relink( GEN_Map *map @@ -768,11 +788,108 @@ public: /** * @section Python interface functions. */ - + virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method virtual PyObject* py_repr(void) { return PyString_FromString(GetName().ReadPtr()); } + /* we need our own getattr and setattr types */ + /* See m_attrlist definition for rules on how this works */ + static PyObject *py_base_getattro_gameobject(PyObject * self, PyObject *attr) + { + PyObject *object= ((KX_GameObject *) self)->py_getattro(attr); + + if (object==NULL && ((KX_GameObject *) self)->m_attrlist) { + /* backup the exception incase the attr doesnt exist in the dict either */ + PyObject *err_type, *err_value, *err_tb; + PyErr_Fetch(&err_type, &err_value, &err_tb); + + object= PyDict_GetItem(((KX_GameObject *) self)->m_attrlist, attr); + if (object) { + Py_INCREF(object); + + PyErr_Clear(); + Py_XDECREF( err_type ); + Py_XDECREF( err_value ); + Py_XDECREF( err_tb ); + } + else { + PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ + } + } + return object; + } + + static int py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value) + { + int ret; + + /* Delete the item */ + if (value==NULL) + { + ret= ((PyObjectPlus*) self)->py_delattro(attr); + + if (ret != 0) /* CValue attribute failed, try KX_GameObject m_attrlist dict */ + { + if (((KX_GameObject *) self)->m_attrlist) + { + /* backup the exception incase the attr doesnt exist in the dict either */ + PyObject *err_type, *err_value, *err_tb; + PyErr_Fetch(&err_type, &err_value, &err_tb); + + if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) == 0) + { + ret= 0; + PyErr_Clear(); + Py_XDECREF( err_type ); + Py_XDECREF( err_value ); + Py_XDECREF( err_tb ); + } + else { + PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ + } + } + } + return ret; + } + + + ret= ((PyObjectPlus*) self)->py_setattro(attr, value); + + if (ret==PY_SET_ATTR_SUCCESS) { + /* remove attribute in our own dict to avoid double ups */ + if (((KX_GameObject *) self)->m_attrlist) { + if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) != 0) + PyErr_Clear(); + } + } + + if (ret==PY_SET_ATTR_COERCE_FAIL) { + /* CValue attribute exists, remove and add dict value */ + ((KX_GameObject *) self)->RemoveProperty(STR_String(PyString_AsString(attr))); + ret= PY_SET_ATTR_MISSING; + } + + if (ret==PY_SET_ATTR_MISSING) { + /* Lazy initialization */ + if (((KX_GameObject *) self)->m_attrlist==NULL) + ((KX_GameObject *) self)->m_attrlist = PyDict_New(); + + if (PyDict_SetItem(((KX_GameObject *) self)->m_attrlist, attr, value)==0) { + PyErr_Clear(); + ret= PY_SET_ATTR_SUCCESS; + } + else { + PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_GameObject internal dictionary"); + ret= PY_SET_ATTR_FAIL; + } + } + + return ret; + } + + + KX_PYMETHOD_NOARGS(KX_GameObject,GetPosition); KX_PYMETHOD_O(KX_GameObject,SetPosition); KX_PYMETHOD_O(KX_GameObject,SetWorldPosition); diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index b70c6d3e8d3..55e7afa4957 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -603,6 +603,7 @@ public: ret= PY_SET_ATTR_SUCCESS; } else { + PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_Scenes internal dictionary"); ret= PY_SET_ATTR_FAIL; } } From 17f35293ee9d83605db7d73e7213d206d507a587 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 16:10:43 +0000 Subject: [PATCH 144/201] PropertyActuator toggle option didnt run when the Value field was empty. --- source/blender/src/buttons_logic.c | 2 +- .../GameLogic/SCA_PropertyActuator.cpp | 40 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 1f604aa8480..97f07c7553c 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -1970,7 +1970,7 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh pa= act->data; - str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle%x3"; + str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle (bool/int/float/timer)%x3"; uiDefButI(block, MENU, B_REDR, str, xco+30,yco-24,width-60, 19, &pa->type, 0, 31, 0, 0, "Type"); uiDefBut(block, TEX, 1, "Prop: ", xco+30,yco-44,width-60, 19, pa->name, 0, 31, 0, 0, "Property name"); diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 37df8a5c401..359ab8adac6 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -77,11 +77,25 @@ bool SCA_PropertyActuator::Update() CParser parser; parser.SetContext( propowner->AddRef()); - CExpression* userexpr = parser.ProcessText(m_exprtxt); - if (userexpr) + CExpression* userexpr= NULL; + + if (m_type==KX_ACT_PROP_TOGGLE) { - - + /* dont use */ + CValue* newval; + CValue* oldprop = propowner->GetProperty(m_propname); + if (oldprop) + { + newval = new CBoolValue((oldprop->GetNumber()==0.0) ? true:false); + oldprop->SetValue(newval); + } else + { /* as not been assigned, evaluate as false, so assign true */ + newval = new CBoolValue(true); + propowner->SetProperty(m_propname,newval); + } + newval->Release(); + } + else if (userexpr = parser.ProcessText(m_exprtxt)) { switch (m_type) { @@ -135,23 +149,7 @@ bool SCA_PropertyActuator::Update() } break; } - case KX_ACT_PROP_TOGGLE: - { - - CValue* newval; - CValue* oldprop = propowner->GetProperty(m_propname); - if (oldprop) - { - newval = new CBoolValue((oldprop->GetNumber()==0.0) ? true:false); - oldprop->SetValue(newval); - } else - { /* as not been assigned, evaluate as false, so assign true */ - newval = new CBoolValue(true); - propowner->SetProperty(m_propname,newval); - } - newval->Release(); - break; - } + /* case KX_ACT_PROP_TOGGLE: */ /* accounted for above, no need for userexpr */ default: { From 5b942b9d5b4e45de872ecceff8ccccfe2c94bbef Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 17:07:40 +0000 Subject: [PATCH 145/201] [#18516] Particle children API for python (Complete). from Alberto Santos (dnakhain) ---- This patch complete previous one that I submit with new variables relationated with Particle System children (With variables related to Rough, Kink and Branch). --- source/blender/python/api2_2x/Particle.c | 505 +++++++++++++++--- source/blender/python/api2_2x/doc/Particle.py | 32 ++ 2 files changed, 475 insertions(+), 62 deletions(-) diff --git a/source/blender/python/api2_2x/Particle.c b/source/blender/python/api2_2x/Particle.c index c3f2e0f89c0..a7db8290c62 100644 --- a/source/blender/python/api2_2x/Particle.c +++ b/source/blender/python/api2_2x/Particle.c @@ -152,6 +152,38 @@ static int Part_setChildSize( BPy_PartSys * self, PyObject * args ); static PyObject *Part_getChildSize( BPy_PartSys * self ); static int Part_setChildRandom( BPy_PartSys * self, PyObject * args ); static PyObject *Part_getChildRandom( BPy_PartSys * self ); +static int Part_setChildRough1( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRough1( BPy_PartSys * self ); +static int Part_setChildRough1Size( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRough1Size( BPy_PartSys * self ); +static int Part_setChildRough2( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRough2( BPy_PartSys * self ); +static int Part_setChildRough2Size( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRough2Size( BPy_PartSys * self ); +static int Part_setChildRough2Thres( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRough2Thres( BPy_PartSys * self ); +static int Part_setChildRoughE( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRoughE( BPy_PartSys * self ); +static int Part_setChildRoughEShape( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildRoughEShape( BPy_PartSys * self ); +static int Part_setChildKink( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildKink( BPy_PartSys * self ); +static int Part_setChildKinkAxis( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildKinkAxis( BPy_PartSys * self ); +static int Part_setChildKinkFreq( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildKinkFreq( BPy_PartSys * self ); +static int Part_setChildKinkShape( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildKinkShape( BPy_PartSys * self ); +static int Part_setChildKinkAmp( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildKinkAmp( BPy_PartSys * self ); +static int Part_setChildBranch( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildBranch( BPy_PartSys * self ); +static int Part_setChildBranchAnim( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildBranchAnim( BPy_PartSys * self ); +static int Part_setChildBranchSymm( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildBranchSymm( BPy_PartSys * self ); +static int Part_setChildBranchThre( BPy_PartSys * self, PyObject * args ); +static PyObject *Part_getChildBranchThre( BPy_PartSys * self ); /*****************************************************************************/ /* Python Effect_Type callback function prototypes: */ @@ -371,6 +403,70 @@ static PyGetSetDef BPy_ParticleSys_getseters[] = { (getter)Part_getChildRandom, (setter)Part_setChildRandom, "Random variation to the size of the child particles", NULL}, + {"childRough1", + (getter)Part_getChildRough1, (setter)Part_setChildRough1, + "Amount of location dependant rough", + NULL}, + {"childRough1Size", + (getter)Part_getChildRough1Size, (setter)Part_setChildRough1Size, + "Size of location dependant rough", + NULL}, + {"childRough2", + (getter)Part_getChildRough2, (setter)Part_setChildRough2, + "Amount of random rough", + NULL}, + {"childRough2Size", + (getter)Part_getChildRough2Size, (setter)Part_setChildRough2Size, + "Size of random rough", + NULL}, + {"childRough2Thresh", + (getter)Part_getChildRough2Thres, (setter)Part_setChildRough2Thres, + "Amount of particles left untouched by random rough", + NULL}, + {"childRoughE", + (getter)Part_getChildRoughE, (setter)Part_setChildRoughE, + "Amount of end point rough", + NULL}, + {"childRoughEShape", + (getter)Part_getChildRoughEShape, (setter)Part_setChildRoughEShape, + "Shape of end point rough", + NULL}, + {"childKink", + (getter)Part_getChildKink, (setter)Part_setChildKink, + "Type of periodic offset on the path (Particle.CHILDKINK[ 'BRAID' | 'WAVE' | 'RADIAL' | 'CURL' | 'NOTHING' ])", + NULL}, + {"childKinkAxis", + (getter)Part_getChildKinkAxis, (setter)Part_setChildKinkAxis, + "Which axis to use for offset (Particle.CHILDKINKAXIS[ 'Z' | 'Y' | 'X' ])", + NULL}, + {"childKinkFreq", + (getter)Part_getChildKinkFreq, (setter)Part_setChildKinkFreq, + "The frequency of the offset (1/total length)", + NULL}, + {"childKinkShape", + (getter)Part_getChildKinkShape, (setter)Part_setChildKinkShape, + "Adjust the offset to the beginning/end", + NULL}, + {"childKinkAmp", + (getter)Part_getChildKinkAmp, (setter)Part_setChildKinkAmp, + "The amplitude of the offset", + NULL}, + {"childBranch", + (getter)Part_getChildBranch, (setter)Part_setChildBranch, + "Branch child paths from eachother", + NULL}, + {"childBranchAnim", + (getter)Part_getChildBranchAnim, (setter)Part_setChildBranchAnim, + "Animate branching", + NULL}, + {"childBranchSymm", + (getter)Part_getChildBranchSymm, (setter)Part_setChildBranchSymm, + "Start and end points are the same", + NULL}, + {"childBranchThre", + (getter)Part_getChildBranchThre, (setter)Part_setChildBranchThre, + "Threshold of branching", + NULL}, {NULL,NULL,NULL,NULL,NULL} /* Sentinel */ }; @@ -614,10 +710,8 @@ PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args ) } if( !wanted_obj){ /* requested object not found */ - char error_msg[64]; - PyOS_snprintf( error_msg, sizeof( error_msg ), - "Particle System '%s' not found", name); - return EXPP_ReturnPyObjError( PyExc_NameError, error_msg ); + PyErr_Format(PyExc_NameError, "Particle System '%s' not found", name); + return NULL; } return wanted_obj; @@ -785,6 +879,48 @@ static PyObject *Particle_ChildTypeDict( void ) return ChildTypes; } +/* create the Blender.Particle.ChildKink constant dict */ + +static PyObject *Particle_ChildKinkDict( void ) +{ + PyObject *ChildKinks = PyConstant_New( ); + + if( ChildKinks ) { + BPy_constant *c = ( BPy_constant * ) ChildKinks; + + PyConstant_Insert( c, "BRAID", + PyInt_FromLong( 4 ) ); + PyConstant_Insert( c, "WAVE", + PyInt_FromLong( 3 ) ); + PyConstant_Insert( c, "RADIAL", + PyInt_FromLong( 2 ) ); + PyConstant_Insert( c, "CURL", + PyInt_FromLong( 1 ) ); + PyConstant_Insert( c, "NOTHING", + PyInt_FromLong( 0 ) ); + } + return ChildKinks; +} + +/* create the Blender.Particle.ChildKinkAxis constant dict */ + +static PyObject *Particle_ChildKinkAxisDict( void ) +{ + PyObject *ChildKinkAxes = PyConstant_New( ); + + if( ChildKinkAxes ) { + BPy_constant *c = ( BPy_constant * ) ChildKinkAxes; + + PyConstant_Insert( c, "Z", + PyInt_FromLong( 2 ) ); + PyConstant_Insert( c, "Y", + PyInt_FromLong( 1 ) ); + PyConstant_Insert( c, "X", + PyInt_FromLong( 0 ) ); + } + return ChildKinkAxes; +} + static PyObject *Particle_DrawAs( void ) { PyObject *DrawAs = PyConstant_New( ); @@ -832,6 +968,8 @@ PyObject *ParticleSys_Init( void ){ PyObject *Dist; PyObject *DrawAs; PyObject *ChildTypes; + PyObject *ChildKinks; + PyObject *ChildKinkAxes; if( PyType_Ready( &ParticleSys_Type ) < 0) @@ -843,6 +981,8 @@ PyObject *ParticleSys_Init( void ){ DrawAs = Particle_DrawAs(); Dist = Particle_DistrDict(); ChildTypes = Particle_ChildTypeDict(); + ChildKinks = Particle_ChildKinkDict(); + ChildKinkAxes = Particle_ChildKinkAxisDict(); submodule = Py_InitModule3( "Blender.Particle", M_ParticleSys_methods, M_ParticleSys_doc ); @@ -859,6 +999,10 @@ PyObject *ParticleSys_Init( void ){ PyModule_AddObject( submodule, "DRAWAS", DrawAs ); if( ChildTypes ) PyModule_AddObject( submodule, "CHILDTYPE", ChildTypes ); + if( ChildKinks ) + PyModule_AddObject( submodule, "CHILDKINK", ChildKinks ); + if( ChildKinkAxes ) + PyModule_AddObject( submodule, "CHILDKINKAXIS", ChildKinkAxes ); return ( submodule ); } @@ -1488,11 +1632,8 @@ static int Part_setEditable( BPy_PartSys * self, PyObject * args ) { int number; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -1539,11 +1680,8 @@ static int Part_setMultiReact( BPy_PartSys * self, PyObject * args ) { int number; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -1727,11 +1865,8 @@ static PyObject *Part_getGroundZ( BPy_PartSys * self ) static int Part_setOb( BPy_PartSys * self, PyObject * args ) { Object *obj; - if( !BPy_Object_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected object argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !BPy_Object_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected object argument" ); obj = Object_FromPyObject(args); @@ -1754,11 +1889,8 @@ static int Part_setRandEmission( BPy_PartSys * self, PyObject * args ) { int number; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -1781,19 +1913,14 @@ static PyObject *Part_getRandEmission( BPy_PartSys * self ) static int Part_setParticleDist( BPy_PartSys * self, PyObject * args ) { int number; - char errstr[128]; - if( !PyInt_Check( args ) ) { - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); - if (number < 0 || number > 3){ - sprintf ( errstr, "expected int argument between 0 - 3" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if (number < 0 || number > 3) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument between 0 - 3" ); self->psys->part->from = (short)number; @@ -1811,11 +1938,8 @@ static int Part_setEvenDist( BPy_PartSys * self, PyObject * args ) { int number; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -1838,19 +1962,14 @@ static PyObject *Part_getEvenDist( BPy_PartSys * self ) static int Part_setDist( BPy_PartSys * self, PyObject * args ) { int number; - char errstr[128]; - if( !PyInt_Check( args ) ) { - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); - if (number < 0 || number > 2){ - sprintf ( errstr, "expected int argument between 0 - 2" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if (number < 0 || number > 2) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument between 0 - 2" ); self->psys->part->distr = (short)number; @@ -1900,11 +2019,8 @@ static int Part_setInvert( BPy_PartSys * self, PyObject * args ) { int number; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -1927,11 +2043,9 @@ static PyObject *Part_getInvert( BPy_PartSys * self ) static int Part_setTargetOb( BPy_PartSys * self, PyObject * args ) { Object *obj; - if( !BPy_Object_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected object argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + + if( !BPy_Object_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected object argument" ); obj = Object_FromPyObject(args); @@ -2005,11 +2119,8 @@ static int Part_setRenderObject( BPy_PartSys * self, PyObject * args ) int number,nr; ParticleSystem *psys = 0L; - if( !PyInt_Check( args ) ) { - char errstr[128]; - sprintf ( errstr, "expected int argument" ); - return EXPP_ReturnIntError( PyExc_TypeError, errstr ); - } + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); number = PyInt_AS_LONG( args ); @@ -2225,3 +2336,273 @@ static PyObject *Part_getChildRandom( BPy_PartSys * self ) { return PyFloat_FromDouble( ((float)( self->psys->part->childrandsize )) ); } + +static int Part_setChildRough1( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough1, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRough1( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough1 )) ); +} + +static int Part_setChildRough1Size( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough1_size, + 0.01, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRough1Size( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough1_size )) ); +} + +static int Part_setChildRough2( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough2, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRough2( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough2 )) ); +} + +static int Part_setChildRough2Size( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough2_size, + 0.01, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRough2Size( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough2_size )) ); +} + +static int Part_setChildRough2Thres( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough2_thres, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRough2Thres( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough2_thres )) ); +} + +static int Part_setChildRoughE( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough_end, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRoughE( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough_end )) ); +} + +static int Part_setChildRoughEShape( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->rough_end_shape, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildRoughEShape( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->rough_end_shape )) ); +} + +static int Part_setChildKink( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setIValueRange( args, &self->psys->part->kink, + 0, 4, 'h' ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildKink( BPy_PartSys * self ) +{ + return PyInt_FromLong( (short)( self->psys->part->kink ) ); +} + +static int Part_setChildKinkAxis( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setIValueRange( args, &self->psys->part->kink_axis, + 0, 2, 'h' ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildKinkAxis( BPy_PartSys * self ) +{ + return PyInt_FromLong( (short)( self->psys->part->kink_axis ) ); +} + +static int Part_setChildKinkFreq( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->kink_freq, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildKinkFreq( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->kink_freq )) ); +} + +static int Part_setChildKinkShape( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->kink_shape, + -0.999, 0.999 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildKinkShape( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->kink_shape )) ); +} + +static int Part_setChildKinkAmp( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->kink_amp, + 0.0, 10.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildKinkAmp( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->kink_amp )) ); +} + +static int Part_setChildBranch( BPy_PartSys * self, PyObject * args ) +{ + int number; + + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); + + number = PyInt_AS_LONG( args ); + + if (number){ + self->psys->part->flag |= PART_BRANCHING; + }else{ + self->psys->part->flag &= ~PART_BRANCHING; + } + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return 0; +} + +static PyObject *Part_getChildBranch( BPy_PartSys * self ) +{ + return PyInt_FromLong( ((long)( self->psys->part->flag & PART_BRANCHING )) > 0 ); +} + +static int Part_setChildBranchAnim( BPy_PartSys * self, PyObject * args ) +{ + int number; + + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); + + number = PyInt_AS_LONG( args ); + + if (number){ + self->psys->part->flag |= PART_ANIM_BRANCHING; + }else{ + self->psys->part->flag &= ~PART_ANIM_BRANCHING; + } + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return 0; +} + +static PyObject *Part_getChildBranchAnim( BPy_PartSys * self ) +{ + return PyInt_FromLong( ((long)( self->psys->part->flag & PART_ANIM_BRANCHING )) > 0 ); +} + +static int Part_setChildBranchSymm( BPy_PartSys * self, PyObject * args ) +{ + int number; + + if( !PyInt_Check( args ) ) + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); + + number = PyInt_AS_LONG( args ); + + if (number){ + self->psys->part->flag |= PART_SYMM_BRANCHING; + }else{ + self->psys->part->flag &= ~PART_SYMM_BRANCHING; + } + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return 0; +} + +static PyObject *Part_getChildBranchSymm( BPy_PartSys * self ) +{ + return PyInt_FromLong( ((long)( self->psys->part->flag & PART_SYMM_BRANCHING )) > 0 ); +} + +static int Part_setChildBranchThre( BPy_PartSys * self, PyObject * args ) +{ + int res = EXPP_setFloatRange( args, &self->psys->part->branch_thres, + 0.0, 1.0 ); + + psys_flush_settings( self->psys->part, PSYS_ALLOC, 1 ); + + return res; +} + +static PyObject *Part_getChildBranchThre( BPy_PartSys * self ) +{ + return PyFloat_FromDouble( ((float)( self->psys->part->branch_thres )) ); +} diff --git a/source/blender/python/api2_2x/doc/Particle.py b/source/blender/python/api2_2x/doc/Particle.py index 47bcc7c88a3..9728c896904 100644 --- a/source/blender/python/api2_2x/doc/Particle.py +++ b/source/blender/python/api2_2x/doc/Particle.py @@ -141,6 +141,38 @@ class Particle: @type childSize: float @ivar childRand: Random variation to the size of the child particles @type childRand: float + @ivar childRough1: Amount of location dependant rough + @type childRough1: float + @ivar childRough1Size: Size of location dependant rough + @type childRough1Size: float + @ivar childRough2: Amount of random rough + @type childRough2: float + @ivar childRough2Size: Size of random rough + @type childRough2Size: float + @ivar childRough2Thresh: Amount of particles left untouched by random rough + @type childRough2Thresh: float + @ivar childRoughE: Amount of end point rough + @type childRoughE: float + @ivar childRoughEShape: Shape of end point rough + @type childRoughEShape: float + @ivar childKink: Type of periodic offset on the path (Particle.CHILDKINK[ 'BRAID' | 'WAVE' | 'RADIAL' | 'CURL' | 'NOTHING' ]) + @type childKink: int + @ivar childKinkAxis: Which axis to use for offset (Particle.CHILDKINKAXIS[ 'Z' | 'Y' | 'X' ]) + @type childKinkAxis: int + @ivar childKinkFreq: The frequency of the offset (1/total length) + @type childKinkFreq: float + @ivar childKinkShape: Adjust the offset to the beginning/end + @type childKinkShape: float + @ivar childKinkAmp: The amplitude of the offset + @type childKinkAmp: float + @ivar childBranch: Branch child paths from eachother + @type childBranch: int + @ivar childBranch: Animate branching + @type childBranch: int + @ivar childBranch: Start and end points are the same + @type childBranch: int + @ivar childBranch: Threshold of branching + @type childBranch: float """ def freeEdit(): From 8664e35adf6be85b2c9603171049c5a880ced147 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Sun, 12 Apr 2009 19:46:50 +0000 Subject: [PATCH 146/201] 2DFilter bugfixes: [#18154] 2dFilter and motion blur should run only once to all the scenes [#18504] The GL_PROJECTION matrix is being reset by the 2dfilter. --- source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 7 +++---- source/gameengine/Rasterizer/RAS_2DFilterManager.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index e64ffa95161..aeb80806f6c 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -898,6 +898,9 @@ void KX_KetsjiEngine::Render() } } // if(m_rasterizer->Stereo()) + // run the 2dfilters and motion blur once for all the scenes + PostRenderFrame(); + EndFrame(); } @@ -1264,16 +1267,12 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam) scene->GetPhysicsEnvironment()->debugDrawWorld(); m_rasterizer->FlushDebugLines(); - - PostRenderFrame(); } void KX_KetsjiEngine::PostRenderFrame() { - m_rendertools->PushMatrix(); m_rendertools->Render2DFilters(m_canvas); m_rendertools->MotionBlur(m_rasterizer); - m_rendertools->PopMatrix(); } void KX_KetsjiEngine::StopEngine() diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp index 282c7306285..176da51b183 100644 --- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp +++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp @@ -435,11 +435,12 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas) glViewport(0,0, texturewidth, textureheight); glDisable(GL_DEPTH_TEST); + glPushMatrix(); //GL_MODELVIEW + glLoadIdentity(); // GL_MODELVIEW glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); + glPushMatrix(); glLoadIdentity(); for(passindex =0; passindex& propNames, void* gameObj, RAS_2DFILTER_MODE mode, int pass, STR_String& text) From 5b07f06136bc96eedf703210046101efa05f749c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 20:19:27 +0000 Subject: [PATCH 147/201] fix some refcounting issues with PyDict_SetItemString --- source/blender/python/BPY_interface.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index 4de7942666c..7b992dff472 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -106,6 +106,7 @@ static int setup_armature_weakrefs() { PyObject *maindict; PyObject *main_module; + PyObject *list; char *list_name = ARM_WEAKREF_LIST_NAME; main_module = PyImport_AddModule( "__main__"); @@ -121,14 +122,14 @@ static int setup_armature_weakrefs() PyDict_DelItemString(maindict,list_name); Py_XDECREF( weakreflink ); } - - if (PyDict_SetItemString(maindict, - list_name, - PyList_New(0)) == -1){ + + list= PyList_New(0); + if (PyDict_SetItemString(maindict, list_name, list) == -1){ printf("Oops - setup_armature_weakrefs()\n"); - + Py_DECREF(list); return 0; } + Py_DECREF(list); /* the dict owns it now */ } return 1; } @@ -1238,13 +1239,14 @@ static int bpy_pydriver_create_dict(void) /* import some modules: builtins, Blender, math, Blender.noise */ - PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()); + PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()); /* borrow ref, ok */ mod = PyImport_ImportModule("Blender"); if (mod) { PyDict_SetItemString(d, "Blender", mod); PyDict_SetItemString(d, "b", mod); Py_DECREF(mod); + Py_DECREF(mod); } else { PyErr_Clear(); } @@ -1257,6 +1259,7 @@ static int bpy_pydriver_create_dict(void) PyDict_SetItemString(d, "math", mod); PyDict_SetItemString(d, "m", mod); Py_DECREF(mod); + Py_DECREF(mod); } mod = PyImport_ImportModule("Blender.Noise"); @@ -1264,6 +1267,7 @@ static int bpy_pydriver_create_dict(void) PyDict_SetItemString(d, "noise", mod); PyDict_SetItemString(d, "n", mod); Py_DECREF(mod); + Py_DECREF(mod); } else { PyErr_Clear(); } @@ -1276,6 +1280,7 @@ static int bpy_pydriver_create_dict(void) PyDict_SetItemString(d, "pydrivers", mod); PyDict_SetItemString(d, "p", mod); Py_DECREF(mod); + Py_DECREF(mod); } else { PyErr_Clear(); } From 066098dfec0879bc6cab90cee4f3555471cc4818 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Apr 2009 22:05:09 +0000 Subject: [PATCH 148/201] this should fix building with mingw --- source/gameengine/Expressions/InputParser.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp index 181cd6f3907..1698f1919d1 100644 --- a/source/gameengine/Expressions/InputParser.cpp +++ b/source/gameengine/Expressions/InputParser.cpp @@ -40,7 +40,11 @@ #if defined(WIN32) || defined(WIN64) #define strcasecmp _stricmp + +#ifndef strtoll #define strtoll _strtoi64 +#endif + #endif /* Def WIN32 or Def WIN64 */ #define NUM_PRIORITY 6 From 1b73d3ce058a0edbbdfcc573d0084f655a9c8465 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Apr 2009 03:43:16 +0000 Subject: [PATCH 149/201] mesh proxy attributes from andrecastelo --- source/gameengine/Ketsji/KX_MeshProxy.cpp | 24 +++++++++++++++++++++++ source/gameengine/Ketsji/KX_MeshProxy.h | 8 ++++++-- source/gameengine/PyDoc/KX_MeshProxy.py | 6 ++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index e7f562bda8e..0710d301c14 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -73,8 +73,11 @@ PyParentObject KX_MeshProxy::Parents[] = { }; PyMethodDef KX_MeshProxy::Methods[] = { +// Deprecated -----> {"getNumMaterials", (PyCFunction)KX_MeshProxy::sPyGetNumMaterials,METH_VARARGS}, {"getNumPolygons", (PyCFunction)KX_MeshProxy::sPyGetNumPolygons,METH_NOARGS}, +// <----- + {"getMaterialName", (PyCFunction)KX_MeshProxy::sPyGetMaterialName,METH_VARARGS}, {"getTextureName", (PyCFunction)KX_MeshProxy::sPyGetTextureName,METH_VARARGS}, {"getVertexArrayLength", (PyCFunction)KX_MeshProxy::sPyGetVertexArrayLength,METH_VARARGS}, @@ -88,6 +91,9 @@ KX_PYMETHODTABLE(KX_MeshProxy, reinstancePhysicsMesh), PyAttributeDef KX_MeshProxy::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("materials", KX_MeshProxy, pyattr_get_materials), + KX_PYATTRIBUTE_RO_FUNCTION("numPolygons", KX_MeshProxy, pyattr_get_materials), + KX_PYATTRIBUTE_RO_FUNCTION("numMaterials", KX_MeshProxy, pyattr_get_materials), + { NULL } //Sentinel }; @@ -102,6 +108,10 @@ PyObject* KX_MeshProxy::py_getattro(PyObject *attr) py_getattro_up(SCA_IObject); } +int KX_MeshProxy::py_setattro(PyObject *attr, PyObject* value) +{ + py_setattro_up(SCA_IObject); +} KX_MeshProxy::KX_MeshProxy(RAS_MeshObject* mesh) @@ -134,12 +144,14 @@ PyObject* KX_MeshProxy::PyGetNumMaterials(PyObject* self, PyObject* kwds) { int num = m_meshobj->NumMaterials(); + ShowDeprecationWarning("getNumMaterials()", "the numMaterials property"); return PyInt_FromLong(num); } PyObject* KX_MeshProxy::PyGetNumPolygons(PyObject* self) { int num = m_meshobj->NumPolygons(); + ShowDeprecationWarning("getNumPolygons()", "the numPolygons property"); return PyInt_FromLong(num); } @@ -296,3 +308,15 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_ } return materials; } + +PyObject * KX_MeshProxy::pyattr_get_numMaterials(void * selfv, const KX_PYATTRIBUTE_DEF * attrdef) { + KX_MeshProxy * self = static_cast (selfv); + int num = self->m_meshobj->NumMaterials(); + return PyInt_FromLong(num); +} + +PyObject * KX_MeshProxy::pyattr_get_numPolygons(void * selfv, const KX_PYATTRIBUTE_DEF * attrdef) { + KX_MeshProxy * self = static_cast (selfv); + int num = self->m_meshobj->NumPolygons(); + return PyInt_FromLong(num); +} diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index 3b72099eebb..dfc498801a7 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -55,10 +55,12 @@ public: // stuff for python integration virtual PyObject* py_getattro(PyObject *attr); - KX_PYMETHOD(KX_MeshProxy,GetNumMaterials); + virtual int py_setattro(PyObject *attr, PyObject* value); + + KX_PYMETHOD(KX_MeshProxy,GetNumMaterials); // Deprecated KX_PYMETHOD(KX_MeshProxy,GetMaterialName); KX_PYMETHOD(KX_MeshProxy,GetTextureName); - KX_PYMETHOD_NOARGS(KX_MeshProxy,GetNumPolygons); + KX_PYMETHOD_NOARGS(KX_MeshProxy,GetNumPolygons); // Deprecated // both take materialid (int) KX_PYMETHOD(KX_MeshProxy,GetVertexArrayLength); @@ -67,6 +69,8 @@ public: KX_PYMETHOD_DOC(KX_MeshProxy, reinstancePhysicsMesh); static PyObject* pyattr_get_materials(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject * pyattr_get_numMaterials(void * self, const KX_PYATTRIBUTE_DEF * attrdef); + static PyObject * pyattr_get_numPolygons(void * self, const KX_PYATTRIBUTE_DEF * attrdef); }; #endif //__KX_MESHPROXY diff --git a/source/gameengine/PyDoc/KX_MeshProxy.py b/source/gameengine/PyDoc/KX_MeshProxy.py index c6855d3b0a5..e8839ac484c 100644 --- a/source/gameengine/PyDoc/KX_MeshProxy.py +++ b/source/gameengine/PyDoc/KX_MeshProxy.py @@ -47,6 +47,12 @@ class KX_MeshProxy: @ivar materials: @type materials: list of L{KX_BlenderMaterial} or L{KX_PolygonMaterial} types + + @ivar numPolygons: + @type numPolygons: integer + + @ivar numMaterials: + @type numMaterials: integer """ def getNumMaterials(): From 956d120098f4c9f6440266e6e95800d76c782827 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Apr 2009 04:54:12 +0000 Subject: [PATCH 150/201] Bullet integration uninitialised values. Erwin, r16812 "Add Fh/Rot Fh to Bullet" - added this function ClosestRayResultCallbackNotMe(rayFromWorld,rayToWorld,body,parentBody) ...but parentBody was being ignored and the m_parent value wasn't being initialized. Run memset() on CcdConstructionInfo which had some unset members for CreateSphereController() and CreateConeController(). --- .../Physics/Bullet/CcdPhysicsEnvironment.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index cef2f2477b7..faf1ca42766 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -660,9 +660,10 @@ class ClosestRayResultCallbackNotMe : public btCollisionWorld::ClosestRayResultC public: ClosestRayResultCallbackNotMe(const btVector3& rayFromWorld,const btVector3& rayToWorld,btCollisionObject* owner,btCollisionObject* parent) :btCollisionWorld::ClosestRayResultCallback(rayFromWorld,rayToWorld), - m_owner(owner) + m_owner(owner), + m_parent(parent) { - + } virtual bool needsCollision(btBroadphaseProxy* proxy0) const @@ -710,7 +711,7 @@ void CcdPhysicsEnvironment::processFhSprings(double curTime,float timeStep) //btVector3 rayToWorld = rayFromWorld + body->getCenterOfMassTransform().getBasis() * rayDirLocal; //ray always points down the z axis in world space... btVector3 rayToWorld = rayFromWorld + rayDirLocal; - + ClosestRayResultCallbackNotMe resultCallback(rayFromWorld,rayToWorld,body,parentBody); m_dynamicsWorld->rayTest(rayFromWorld,rayToWorld,resultCallback); @@ -1558,8 +1559,8 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::CreateSphereController(float radi { CcdConstructionInfo cinfo; - // memory leak! The shape is not deleted by Bullet and we cannot add it to the KX_Scene.m_shapes list - cinfo.m_collisionShape = new btSphereShape(radius); + memset(&cinfo, 0, sizeof(cinfo)); /* avoid uninitialized values */ + cinfo.m_collisionShape = new btSphereShape(radius); // memory leak! The shape is not deleted by Bullet and we cannot add it to the KX_Scene.m_shapes list cinfo.m_MotionState = 0; cinfo.m_physicsEnv = this; // declare this object as Dyamic rather then static!! @@ -2018,7 +2019,7 @@ int CcdPhysicsEnvironment::createConstraint(class PHY_IPhysicsController* ctrl PHY_IPhysicsController* CcdPhysicsEnvironment::CreateConeController(float coneradius,float coneheight) { CcdConstructionInfo cinfo; - + memset(&cinfo, 0, sizeof(cinfo)); /* avoid uninitialized values */ // we don't need a CcdShapeConstructionInfo for this shape: // it is simple enough for the standard copy constructor (see CcdPhysicsController::GetReplica) cinfo.m_collisionShape = new btConeShape(coneradius,coneheight); From d91d64d8071326fe0822a9a31b58126ff2d62c2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 13 Apr 2009 06:50:02 +0000 Subject: [PATCH 151/201] [#18329] VRML import on indexedfaceset munges some colors (off by one) Thanks to Ezra Peisach for including a patch in the report. --- release/scripts/import_web3d.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release/scripts/import_web3d.py b/release/scripts/import_web3d.py index 0564257730e..fc3b5262376 100644 --- a/release/scripts/import_web3d.py +++ b/release/scripts/import_web3d.py @@ -1566,7 +1566,8 @@ def importMesh_IndexedFaceSet(geom, bpyima, ancestry): vcolor_spot = None # spot color when we dont have an array of colors if vcolor: # float to char - ifs_vcol = [[int(c*256) for c in col] for col in vcolor.getFieldAsArray('color', 3, ancestry)] + ifs_vcol = [(0,0,0)] # EEKADOODLE - vertex start at 1 + ifs_vcol.extend([[int(c*256) for c in col] for col in vcolor.getFieldAsArray('color', 3, ancestry)]) ifs_color_index = geom.getFieldAsArray('colorIndex', 0, ancestry) if not ifs_vcol: From 6f12e584a97f664c654ddfbe5f721d2a7be3d491 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Mon, 13 Apr 2009 19:33:22 +0000 Subject: [PATCH 152/201] SVN maintenance. --- source/blender/python/api2_2x/bpy_internal_import.c | 2 +- source/blender/python/api2_2x/bpy_internal_import.h | 2 +- source/gameengine/Ketsji/KX_PythonInitTypes.cpp | 2 +- source/gameengine/Ketsji/KX_PythonInitTypes.h | 2 +- source/gameengine/PyDoc/GameTypes.py | 2 +- source/gameengine/PyDoc/SCA_NANDController.py | 2 +- source/gameengine/PyDoc/SCA_NORController.py | 2 +- source/gameengine/PyDoc/SCA_XNORController.py | 2 +- source/gameengine/PyDoc/SCA_XORController.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index d8280d4d609..d022fddeb57 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -1,5 +1,5 @@ /* - * $Id: bpy_types.h 14444 2008-04-16 22:40:48Z hos $ + * $Id$ * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/blender/python/api2_2x/bpy_internal_import.h b/source/blender/python/api2_2x/bpy_internal_import.h index 773749b10f9..c461565b5ac 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.h +++ b/source/blender/python/api2_2x/bpy_internal_import.h @@ -1,5 +1,5 @@ /* - * $Id: bpy_types.h 14444 2008-04-16 22:40:48Z hos $ + * $Id$ * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 636814b9009..06163ec8c4f 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -1,5 +1,5 @@ /** - * $Id: PyObjectPlus.h 19511 2009-04-03 02:16:56Z campbellbarton $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.h b/source/gameengine/Ketsji/KX_PythonInitTypes.h index b30f0334b6e..6da79be9301 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.h +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.h @@ -1,5 +1,5 @@ /** - * $Id: PyObjectPlus.h 19511 2009-04-03 02:16:56Z campbellbarton $ + * $Id$ * * ***** BEGIN GPL LICENSE BLOCK ***** * diff --git a/source/gameengine/PyDoc/GameTypes.py b/source/gameengine/PyDoc/GameTypes.py index f39e4ed064d..2b07a18247c 100644 --- a/source/gameengine/PyDoc/GameTypes.py +++ b/source/gameengine/PyDoc/GameTypes.py @@ -1,4 +1,4 @@ -# $Id: GameLogic.py 19483 2009-03-31 21:03:15Z ben2610 $ +# $Id$ """ GameEngine Types ================ diff --git a/source/gameengine/PyDoc/SCA_NANDController.py b/source/gameengine/PyDoc/SCA_NANDController.py index 81e1dfd6d92..a864ff2981c 100644 --- a/source/gameengine/PyDoc/SCA_NANDController.py +++ b/source/gameengine/PyDoc/SCA_NANDController.py @@ -1,4 +1,4 @@ -# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# $Id$ # Documentation for SCA_NANDController from SCA_IController import * diff --git a/source/gameengine/PyDoc/SCA_NORController.py b/source/gameengine/PyDoc/SCA_NORController.py index e3bdeefa63e..0bc0a71d7b1 100644 --- a/source/gameengine/PyDoc/SCA_NORController.py +++ b/source/gameengine/PyDoc/SCA_NORController.py @@ -1,4 +1,4 @@ -# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# $Id$ # Documentation for SCA_NORController from SCA_IController import * diff --git a/source/gameengine/PyDoc/SCA_XNORController.py b/source/gameengine/PyDoc/SCA_XNORController.py index b1d9dddd9f2..5fb2561f35a 100644 --- a/source/gameengine/PyDoc/SCA_XNORController.py +++ b/source/gameengine/PyDoc/SCA_XNORController.py @@ -1,4 +1,4 @@ -# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# $Id$ # Documentation for SCA_XNORController from SCA_IController import * diff --git a/source/gameengine/PyDoc/SCA_XORController.py b/source/gameengine/PyDoc/SCA_XORController.py index b8f2b5feef0..10e20fb0945 100644 --- a/source/gameengine/PyDoc/SCA_XORController.py +++ b/source/gameengine/PyDoc/SCA_XORController.py @@ -1,4 +1,4 @@ -# $Id: SCA_ANDController.py 15444 2008-07-05 17:05:05Z lukep $ +# $Id$ # Documentation for SCA_XORController from SCA_IController import * From 0b8661ab4da1a7cfbc756640649a2d07bb36cc64 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Mon, 13 Apr 2009 20:08:33 +0000 Subject: [PATCH 153/201] BGE: Occlusion culling and other performance improvements. Added occlusion culling capability in the BGE. More info: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.49/Game_Engine#BGE_Scenegraph_improvement MSVC, scons, cmake, Makefile updated. Other minor performance improvements: - The rasterizer was computing the openGL model matrix of the objects too many times - DBVT view frustrum culling was not properly culling behind the near plane: Large objects behind the camera were sent to the GPU - Remove all references to mesh split/join feature as it is not yet functional --- projectfiles_vc9/blender/blender.vcproj | 3 +- .../gameplayer/ghost/GP_ghost.vcproj | 2 +- .../PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj | 12 +- source/blender/blenkernel/intern/world.c | 3 +- source/blender/blenloader/intern/readfile.c | 3 +- source/blender/makesdna/DNA_actuator_types.h | 4 +- source/blender/makesdna/DNA_object_types.h | 2 + source/blender/makesdna/DNA_world_types.h | 5 +- source/blender/python/api2_2x/Object.c | 3 +- source/blender/src/buttons_logic.c | 26 +- source/blender/src/buttons_shading.c | 10 +- .../Converter/BL_BlenderDataConversion.cpp | 20 +- .../Converter/KX_BlenderSceneConverter.cpp | 2 +- .../Converter/KX_ConvertActuators.cpp | 3 +- source/gameengine/Ketsji/KX_GameObject.cpp | 51 +- source/gameengine/Ketsji/KX_GameObject.h | 35 +- source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 15 +- source/gameengine/Ketsji/KX_Scene.cpp | 16 +- source/gameengine/Ketsji/KX_Scene.h | 11 +- .../Ketsji/KX_VisibilityActuator.cpp | 4 + .../gameengine/Ketsji/KX_VisibilityActuator.h | 2 + .../Physics/BlOde/OdePhysicsEnvironment.h | 2 +- .../gameengine/Physics/Bullet/CMakeLists.txt | 7 + .../Physics/Bullet/CcdPhysicsEnvironment.cpp | 553 +++++++++++++++++- .../Physics/Bullet/CcdPhysicsEnvironment.h | 2 +- source/gameengine/Physics/Bullet/Makefile | 7 + source/gameengine/Physics/Bullet/SConscript | 14 +- .../Physics/Dummy/DummyPhysicsEnvironment.h | 2 +- .../Physics/Sumo/SumoPhysicsEnvironment.h | 2 +- .../Physics/common/PHY_IPhysicsEnvironment.h | 4 +- source/gameengine/PyDoc/KX_GameObject.py | 10 + .../gameengine/PyDoc/KX_VisibilityActuator.py | 4 +- .../Rasterizer/RAS_MaterialBucket.cpp | 6 +- .../gameengine/Rasterizer/RAS_MeshObject.cpp | 2 + source/gameengine/Rasterizer/RAS_Polygon.cpp | 11 + source/gameengine/Rasterizer/RAS_Polygon.h | 6 +- .../gameengine/VideoTexture/ImageRender.cpp | 2 +- 37 files changed, 780 insertions(+), 86 deletions(-) diff --git a/projectfiles_vc9/blender/blender.vcproj b/projectfiles_vc9/blender/blender.vcproj index 03f57a90c44..2f1bf468219 100644 --- a/projectfiles_vc9/blender/blender.vcproj +++ b/projectfiles_vc9/blender/blender.vcproj @@ -81,6 +81,7 @@ AdditionalLibraryDirectories="..\..\..\lib\windows\sdl\lib;..\..\..\lib\windows\ode\lib;..\..\..\lib\windows\zlib\lib;..\..\..\lib\windows\png\lib;..\..\..\lib\windows\jpeg\lib;..\..\..\lib\windows\gettext\lib;..\..\..\lib\windows\python\lib\lib25_vs2008;..\..\..\lib\windows\freetype\lib;..\..\..\lib\windows\tiff\lib;..\..\..\lib\windows\pthreads\lib;..\..\..\lib\windows\openal\lib;..\..\..\lib\windows\openexr\lib_vs2008;..\..\..\lib\windows\QTDevWin\Libraries;..\..\..\build\msvc_9\libs\intern;..\..\..\build\msvc_9\libs\extern;..\..\..\lib\windows\ffmpeg\lib" IgnoreAllDefaultLibraries="false" IgnoreDefaultLibraryNames="msvcprt.lib;glut32.lib;libc.lib;libcd.lib;libcpd.lib;libcp.lib;libcmtd.lib;odbc32.lib;odbccp32.lib" + GenerateDebugInformation="true" ProgramDatabaseFile="..\..\..\build\msvc_9\libs\blender.pdb" SubSystem="1" RandomizedBaseAddress="1" @@ -167,7 +168,7 @@ ao_approx_error= 0.25f; wrld->physicsEngine= WOPHY_BULLET;//WOPHY_SUMO; Bullet by default - wrld->mode = WO_DBVT_CAMERA_CULLING; // DBVT culling by default + wrld->mode = WO_DBVT_CULLING; // DBVT culling by default + wrld->occlusionRes = 128; wrld->preview = NULL; return wrld; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 63dd1e8e6cb..c3a355160e0 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -8057,7 +8057,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* DBVT culling by default */ for(wrld=main->world.first; wrld; wrld= wrld->id.next) { - wrld->mode |= WO_DBVT_CAMERA_CULLING; + wrld->mode |= WO_DBVT_CULLING; + wrld->occlusionRes = 128; } } diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 2252126b46c..aeabae42adf 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -195,7 +195,8 @@ typedef struct bGameActuator { typedef struct bVisibilityActuator { /** bit 0: Is this object visible? - ** bit 1: Apply recursively */ + ** bit 1: Apply recursively + ** bit 2: Is this object an occluder? */ int flag; } bVisibilityActuator; @@ -458,6 +459,7 @@ typedef struct FreeCamera { /* Set means the object will become invisible */ #define ACT_VISIBILITY_INVISIBLE (1 << 0) #define ACT_VISIBILITY_RECURSIVE (1 << 1) +#define ACT_VISIBILITY_OCCLUSION (1 << 2) /* twodfilter->type */ #define ACT_2DFILTER_ENABLED -2 diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index b17896aec70..3a408404b0b 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -437,6 +437,7 @@ extern Object workob; #define OB_COLLISION 65536 #define OB_SOFT_BODY 0x20000 +#define OB_OCCLUDER 0x40000 /* ob->gameflag2 */ #define OB_NEVER_DO_ACTIVITY_CULLING 1 @@ -455,6 +456,7 @@ extern Object workob; #define OB_BODY_TYPE_DYNAMIC 2 #define OB_BODY_TYPE_RIGID 3 #define OB_BODY_TYPE_SOFT 4 +#define OB_BODY_TYPE_OCCLUDER 5 /* ob->scavisflag */ #define OB_VIS_SENS 1 diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index a51e9704be2..f599364ed66 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -88,7 +88,8 @@ typedef struct World { * bit 5: (gameengine) : enable Bullet DBVT tree for view frustrum culling */ short mode; - int physicsEngine; /* here it's aligned */ + short occlusionRes; /* resolution of occlusion Z buffer in pixel */ + short physicsEngine; /* here it's aligned */ float misi, miststa, mistdist, misthi; @@ -135,7 +136,7 @@ typedef struct World { #define WO_DOF 4 #define WO_ACTIVITY_CULLING 8 #define WO_AMB_OCC 16 -#define WO_DBVT_CAMERA_CULLING 32 +#define WO_DBVT_CULLING 32 /* aomix */ #define WO_AOADD 0 diff --git a/source/blender/python/api2_2x/Object.c b/source/blender/python/api2_2x/Object.c index fd2301bfae4..2de2906335f 100644 --- a/source/blender/python/api2_2x/Object.c +++ b/source/blender/python/api2_2x/Object.c @@ -3561,7 +3561,7 @@ static int Object_setRBMass( BPy_Object * self, PyObject * args ) /* this is too low level, possible to add helper methods */ -#define GAMEFLAG_MASK ( OB_COLLISION | OB_DYNAMIC | OB_CHILD | OB_ACTOR | OB_DO_FH | \ +#define GAMEFLAG_MASK ( OB_OCCLUDER | OB_COLLISION | OB_DYNAMIC | OB_CHILD | OB_ACTOR | OB_DO_FH | \ OB_ROT_FH | OB_ANISOTROPIC_FRICTION | OB_GHOST | OB_RIGID_BODY | OB_SOFT_BODY | \ OB_BOUNDS | OB_COLLISION_RESPONSE | OB_SECTOR | OB_PROP | \ OB_MAINACTOR ) @@ -5542,6 +5542,7 @@ static PyObject *M_Object_RBFlagsDict( void ) if( M ) { BPy_constant *d = ( BPy_constant * ) M; + PyConstant_Insert( d, "OCCLUDER", PyInt_FromLong( OB_OCCLUDER ) ); PyConstant_Insert( d, "COLLISION", PyInt_FromLong( OB_COLLISION ) ); PyConstant_Insert( d, "DYNAMIC", PyInt_FromLong( OB_DYNAMIC ) ); PyConstant_Insert( d, "CHILD", PyInt_FromLong( OB_CHILD ) ); diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 97f07c7553c..2f68720acb0 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -2455,18 +2455,18 @@ static short draw_actuatorbuttons(Object *ob, bActuator *act, uiBlock *block, sh xco + 10, yco - 20, (width - 20)/3, 19, &visAct->flag, 0.0, 0.0, 0, 0, "Set the objects visible. Initialized from the objects render restriction toggle (access in the outliner)"); - uiDefButBitI(block, TOG, ACT_VISIBILITY_INVISIBLE, B_REDR, - "Invisible", + uiDefButBitI(block, TOG, ACT_VISIBILITY_OCCLUSION, B_REDR, + "Occlusion", xco + 10 + ((width - 20)/3), yco - 20, (width - 20)/3, 19, &visAct->flag, 0.0, 0.0, 0, 0, - "Set the object invisible. Initialized from the objects render restriction toggle (access in the outliner)"); + "Set the object to occlude objects behind it. Initialized from the object type in physics button"); uiBlockEndAlign(block); uiDefButBitI(block, TOG, ACT_VISIBILITY_RECURSIVE, B_NOP, "Children", xco + 10 + (((width - 20)/3)*2)+10, yco - 20, ((width - 20)/3)-10, 19, &visAct->flag, 0.0, 0.0, 0, 0, - "Sets all the children of this object to the same visibility recursively"); + "Sets all the children of this object to the same visibility/occlusion recursively"); yco-= ysize; @@ -3033,25 +3033,29 @@ static void check_body_type(void *arg1_but, void *arg2_object) Object *ob = arg2_object; switch (ob->body_type) { + case OB_BODY_TYPE_OCCLUDER: + ob->gameflag |= OB_OCCLUDER; + ob->gameflag &= ~(OB_COLLISION|OB_DYNAMIC); + break; case OB_BODY_TYPE_NO_COLLISION: - ob->gameflag &= ~OB_COLLISION; + ob->gameflag &= ~(OB_COLLISION|OB_OCCLUDER|OB_DYNAMIC); break; case OB_BODY_TYPE_STATIC: ob->gameflag |= OB_COLLISION; - ob->gameflag &= ~(OB_DYNAMIC|OB_RIGID_BODY|OB_SOFT_BODY); + ob->gameflag &= ~(OB_DYNAMIC|OB_RIGID_BODY|OB_SOFT_BODY|OB_OCCLUDER); break; case OB_BODY_TYPE_DYNAMIC: ob->gameflag |= OB_COLLISION|OB_DYNAMIC|OB_ACTOR; - ob->gameflag &= ~(OB_RIGID_BODY|OB_SOFT_BODY); + ob->gameflag &= ~(OB_RIGID_BODY|OB_SOFT_BODY|OB_OCCLUDER); break; case OB_BODY_TYPE_RIGID: ob->gameflag |= OB_COLLISION|OB_DYNAMIC|OB_RIGID_BODY|OB_ACTOR; - ob->gameflag &= ~(OB_SOFT_BODY); + ob->gameflag &= ~(OB_SOFT_BODY|OB_OCCLUDER); break; default: case OB_BODY_TYPE_SOFT: ob->gameflag |= OB_COLLISION|OB_DYNAMIC|OB_SOFT_BODY|OB_ACTOR; - ob->gameflag &= ~(OB_RIGID_BODY); + ob->gameflag &= ~(OB_RIGID_BODY|OB_OCCLUDER); /* assume triangle mesh, if no bounds chosen for soft body */ if ((ob->gameflag & OB_BOUNDS) && (ob->boundtypegameflag & OB_COLLISION)) - ob->body_type = OB_BODY_TYPE_NO_COLLISION; + ob->body_type = (ob->gameflag & OB_OCCLUDER) ? OB_BODY_TYPE_OCCLUDER : OB_BODY_TYPE_NO_COLLISION; else if (!(ob->gameflag & OB_DYNAMIC)) ob->body_type = OB_BODY_TYPE_STATIC; else if (!(ob->gameflag & (OB_RIGID_BODY|OB_SOFT_BODY))) @@ -3234,7 +3238,7 @@ static void buttons_bullet(uiBlock *block, Object *ob) //only enable game soft body if Blender Soft Body exists but = uiDefButS(block, MENU, REDRAWVIEW3D, - "Object type%t|No collision%x0|Static%x1|Dynamic%x2|Rigid body%x3|Soft body%x4", + "Object type%t|Occluder%x5|No collision%x0|Static%x1|Dynamic%x2|Rigid body%x3|Soft body%x4", 10, 205, 100, 19, &ob->body_type, 0, 0, 0, 0, "Selects the type of physical representation"); uiButSetFunc(but, check_body_type, but, ob); diff --git a/source/blender/src/buttons_shading.c b/source/blender/src/buttons_shading.c index e68c86349ce..a129698cce3 100644 --- a/source/blender/src/buttons_shading.c +++ b/source/blender/src/buttons_shading.c @@ -2181,7 +2181,7 @@ static void world_panel_mistaph(World *wrld) uiSetButLock(wrld->id.lib!=0, ERROR_LIBDATA_MESSAGE); #if GAMEBLENDER == 1 - uiDefButI(block, MENU, B_REDR, + uiDefButS(block, MENU, B_REDR, #ifdef USE_ODE "Physics %t|None %x0|Sumo %x2|Ode %x4 |Bullet %x5", #else @@ -2198,8 +2198,12 @@ static void world_panel_mistaph(World *wrld) /* Gravitation for the game worlds */ uiDefButF(block, NUMSLI,0, "Grav ", 150,180,150,19, &(wrld->gravity), 0.0, 25.0, 0, 0, "Sets the gravitation constant of the game world"); - if (wrld->physicsEngine == WOPHY_BULLET) - uiDefButBitS(block, TOG, WO_DBVT_CAMERA_CULLING, 0, "DBVT culling", 10,160,140,19, &wrld->mode, 0, 0, 0, 0, "Toggles use of optimized Bullet DBVT tree for camera culling"); + if (wrld->physicsEngine == WOPHY_BULLET) { + uiDefButBitS(block, TOG, WO_DBVT_CULLING, B_REDR, "DBVT culling", 10,160,140,19, &wrld->mode, 0, 0, 0, 0, "Toggles use of optimized Bullet DBVT tree for view frustrum and occlusion culling"); + if (wrld->mode & WO_DBVT_CULLING) + uiDefButS(block, NUM, B_REDR, "Occlu Res:", + 150, 160, 150, 19, &wrld->occlusionRes, 128.0, 1024.0, 0, 0, "Sets the size of the occlusion buffer in pixel, use higher value for better precsion (slower)"); + } #endif uiBlockSetCol(block, TH_BUT_SETTING1); diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 50a660e77c9..5de2c4a2fe7 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -843,6 +843,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* { bool visible = true; + bool twoside = false; RAS_IPolyMaterial* polymat = NULL; BL_Material *bl_mat = NULL; @@ -859,6 +860,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* visible = ((bl_mat->ras_mode & POLY_VIS)!=0); collider = ((bl_mat->ras_mode & COLLIDER)!=0); + twoside = ((bl_mat->mode & TF_TWOSIDE)!=0); /* vertex colors and uv's were stored in bl_mat temporarily */ bl_mat->GetConversionRGB(rgb); @@ -899,6 +901,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* mode = tface->mode; visible = !((mface->flag & ME_HIDE)||(tface->mode & TF_INVISIBLE)); + twoside = ((tface->mode & TF_TWOSIDE)!=0); uv0.setValue(tface->uv[0]); uv1.setValue(tface->uv[1]); @@ -999,6 +1002,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* poly->SetVisible(visible); poly->SetCollider(collider); + poly->SetTwoside(twoside); //poly->SetEdgeCode(mface->edcode); meshobj->AddVertex(poly,0,pt0,uv0,uv20,tan0,rgb0,no0,flat,mface->v1); @@ -1677,6 +1681,7 @@ static KX_GameObject *gameobject_from_blenderobject( bool ignoreActivityCulling = ((ob->gameflag2 & OB_NEVER_DO_ACTIVITY_CULLING)!=0); gameobj->SetIgnoreActivityCulling(ignoreActivityCulling); + gameobj->SetOccluder((ob->gameflag & OB_OCCLUDER) != 0, false); // two options exists for deform: shape keys and armature // only support relative shape key @@ -1894,12 +1899,14 @@ void BL_ConvertBlenderObjects(struct Main* maggie, if (blenderscene->world) { kxscene->SetActivityCulling( (blenderscene->world->mode & WO_ACTIVITY_CULLING) != 0); kxscene->SetActivityCullingRadius(blenderscene->world->activityBoxRadius); - kxscene->SetDbvtCameraCulling((blenderscene->world->mode & WO_DBVT_CAMERA_CULLING) != 0); + kxscene->SetDbvtCulling((blenderscene->world->mode & WO_DBVT_CULLING) != 0); } else { kxscene->SetActivityCulling(false); - kxscene->SetDbvtCameraCulling(false); + kxscene->SetDbvtCulling(false); } - + // no occlusion culling by default + kxscene->SetDbvtOcclusionRes(0); + int activeLayerBitInfo = blenderscene->lay; // templist to find Root Parents (object with no parents) @@ -2452,8 +2459,9 @@ void BL_ConvertBlenderObjects(struct Main* maggie, } // create graphic controller for culling - if (kxscene->GetDbvtCameraCulling()) + if (kxscene->GetDbvtCulling()) { + bool occlusion = false; for (i=0; iGetCount();i++) { KX_GameObject* gameobj = (KX_GameObject*) sumolist->GetValue(i); @@ -2464,8 +2472,12 @@ void BL_ConvertBlenderObjects(struct Main* maggie, // box[0] is the min, box[1] is the max bool isactive = objectlist->SearchValue(gameobj); BL_CreateGraphicObjectNew(gameobj,box[0],box[1],kxscene,isactive,physics_engine); + if (gameobj->GetOccluder()) + occlusion = true; } } + if (occlusion) + kxscene->SetDbvtOcclusionRes(blenderscene->world->occlusionRes); } //set ini linearVel and int angularVel //rcruiz diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index b0c676a410d..190f9dbb472 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -283,7 +283,7 @@ void KX_BlenderSceneConverter::ConvertScene(const STR_String& scenename, case WOPHY_BULLET: { physics_engine = UseBullet; - useDbvtCulling = (blenderscene->world->mode & WO_DBVT_CAMERA_CULLING) != 0; + useDbvtCulling = (blenderscene->world->mode & WO_DBVT_CULLING) != 0; break; } diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index f7635856ad9..eb2d0a1c4b1 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -1008,9 +1008,10 @@ void BL_ConvertActuators(char* maggiename, bVisibilityActuator *vis_act = (bVisibilityActuator *) bact->data; KX_VisibilityActuator * tmp_vis_act = NULL; bool v = ((vis_act->flag & ACT_VISIBILITY_INVISIBLE) != 0); + bool o = ((vis_act->flag & ACT_VISIBILITY_OCCLUSION) != 0); bool recursive = ((vis_act->flag & ACT_VISIBILITY_RECURSIVE) != 0); - tmp_vis_act = new KX_VisibilityActuator(gameobj, !v, recursive); + tmp_vis_act = new KX_VisibilityActuator(gameobj, !v, o, recursive); baseact = tmp_vis_act; } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 817afedd205..16cf3d9ae32 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -92,6 +92,7 @@ KX_GameObject::KX_GameObject( m_bIsNegativeScaling(false), m_bVisible(true), m_bCulled(true), + m_bOccluder(false), m_pPhysicsController1(NULL), m_pGraphicController(NULL), m_pPhysicsEnvironment(NULL), @@ -146,7 +147,12 @@ KX_GameObject::~KX_GameObject() } } - +KX_GameObject* KX_GameObject::GetClientObject(KX_ClientObjectInfo* info) +{ + if (!info) + return NULL; + return info->m_gameobject; +} CValue* KX_GameObject:: Calc(VALUE_OPERATOR op, CValue *val) { @@ -435,7 +441,7 @@ static void UpdateBuckets_recursive(SG_Node* node) void KX_GameObject::UpdateBuckets( bool recursive ) { - double* fl = GetOpenGLMatrix(); + double* fl = GetOpenGLMatrixPtr()->getPointer(); for (size_t i=0;iUpdateBuckets(this, fl, m_bUseObjectColor, m_objectColor, m_bVisible, m_bCulled); @@ -597,23 +603,34 @@ KX_GameObject::SetVisible( setVisible_recursive(m_pSGNode, v); } -bool -KX_GameObject::GetCulled( - void - ) +static void setOccluder_recursive(SG_Node* node, bool v) { - return m_bCulled; + NodeList& children = node->GetSGChildren(); + + for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) + { + SG_Node* childnode = (*childit); + KX_GameObject *clientgameobj = static_cast( (*childit)->GetSGClientObject()); + if (clientgameobj != NULL) // This is a GameObject + clientgameobj->SetOccluder(v, false); + + // if the childobj is NULL then this may be an inverse parent link + // so a non recursive search should still look down this node. + setOccluder_recursive(childnode, v); + } } void -KX_GameObject::SetCulled( - bool c +KX_GameObject::SetOccluder( + bool v, + bool recursive ) { - m_bCulled = c; + m_bOccluder = v; + if (recursive) + setOccluder_recursive(m_pSGNode, v); } - void KX_GameObject::SetLayer( int l @@ -1036,6 +1053,7 @@ PyMethodDef KX_GameObject::Methods[] = { {"setCollisionMargin", (PyCFunction) KX_GameObject::sPySetCollisionMargin, METH_O}, {"setParent", (PyCFunction)KX_GameObject::sPySetParent,METH_O}, {"setVisible",(PyCFunction) KX_GameObject::sPySetVisible, METH_VARARGS}, + {"setOcclusion",(PyCFunction) KX_GameObject::sPySetOcclusion, METH_VARARGS}, {"removeParent", (PyCFunction)KX_GameObject::sPyRemoveParent,METH_NOARGS}, {"getChildren", (PyCFunction)KX_GameObject::sPyGetChildren,METH_NOARGS}, {"getChildrenRecursive", (PyCFunction)KX_GameObject::sPyGetChildrenRecursive,METH_NOARGS}, @@ -1069,6 +1087,7 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("parent", KX_GameObject, pyattr_get_parent), KX_PYATTRIBUTE_RW_FUNCTION("mass", KX_GameObject, pyattr_get_mass, pyattr_set_mass), KX_PYATTRIBUTE_RW_FUNCTION("visible", KX_GameObject, pyattr_get_visible, pyattr_set_visible), + KX_PYATTRIBUTE_BOOL_RW ("occlusion", KX_GameObject, m_bOccluder), KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_position, pyattr_set_position), KX_PYATTRIBUTE_RO_FUNCTION("localInertia", KX_GameObject, pyattr_get_localInertia), KX_PYATTRIBUTE_RW_FUNCTION("orientation",KX_GameObject,pyattr_get_orientation,pyattr_set_orientation), @@ -1746,6 +1765,16 @@ PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* args) } +PyObject* KX_GameObject::PySetOcclusion(PyObject* self, PyObject* args) +{ + int occlusion, recursive = 0; + if (!PyArg_ParseTuple(args,"i|i:setOcclusion",&occlusion, &recursive)) + return NULL; + + SetOccluder(occlusion ? true:false, recursive ? true:false); + Py_RETURN_NONE; +} + PyObject* KX_GameObject::PyGetVisible(PyObject* self) { ShowDeprecationWarning("getVisible()", "the visible property"); diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 172272150c0..c389d6cc776 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -87,6 +87,7 @@ protected: // culled = while rendering, depending on camera bool m_bVisible; bool m_bCulled; + bool m_bOccluder; KX_IPhysicsController* m_pPhysicsController1; PHY_IGraphicController* m_pGraphicController; @@ -103,6 +104,11 @@ protected: public: bool m_isDeformable; + /** + * Helper function for modules that can't include KX_ClientObjectInfo.h + */ + static KX_GameObject* GetClientObject(KX_ClientObjectInfo* info); + // Python attributes that wont convert into CValue // // there are 2 places attributes can be stored, in the CValue, @@ -118,11 +124,8 @@ public: // * if CValue conversion fails, use a PyObject in "m_attrlist" // * when assigning a value, first see if it can be a CValue, if it can remove the "m_attrlist" and set the CValue // - PyObject* m_attrlist; - - virtual void /* This function should be virtual - derived classed override it */ Relink( GEN_Map *map @@ -698,19 +701,36 @@ public: /** * Was this object culled? */ - bool + inline bool GetCulled( void - ); + ) { return m_bCulled; } /** * Set culled flag of this object */ - void + inline void SetCulled( bool c - ); + ) { m_bCulled = c; } + + /** + * Is this object an occluder? + */ + inline bool + GetOccluder( + void + ) { return m_bOccluder; } + /** + * Set occluder flag of this object + */ + void + SetOccluder( + bool v, + bool recursive + ); + /** * Change the layer of the object (when it is added in another layer * than the original layer) @@ -908,6 +928,7 @@ public: KX_PYMETHOD_O(KX_GameObject,SetOrientation); KX_PYMETHOD_NOARGS(KX_GameObject,GetVisible); KX_PYMETHOD_VARARGS(KX_GameObject,SetVisible); + KX_PYMETHOD_VARARGS(KX_GameObject,SetOcclusion); KX_PYMETHOD_NOARGS(KX_GameObject,GetState); KX_PYMETHOD_O(KX_GameObject,SetState); KX_PYMETHOD_VARARGS(KX_GameObject,AlignAxisToVect); diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index aeb80806f6c..83a2fa8a448 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -294,8 +294,14 @@ void KX_KetsjiEngine::RenderDome() if (!BeginFrame()) return; - int n_renders=m_dome->GetNumberRenders();// usually 4 or 6 KX_SceneList::iterator sceneit; + for (sceneit = m_scenes.begin();sceneit != m_scenes.end(); sceneit++) + { + // do this only once per scene + (*sceneit)->UpdateMeshTransformations(); + } + + int n_renders=m_dome->GetNumberRenders();// usually 4 or 6 for (int i=0;iClearBuffer(RAS_ICanvas::COLOR_BUFFER|RAS_ICanvas::DEPTH_BUFFER); for (sceneit = m_scenes.begin();sceneit != m_scenes.end(); sceneit++) @@ -311,7 +317,6 @@ void KX_KetsjiEngine::RenderDome() // shadow buffers if (i == 0){ RenderShadowBuffers(scene); - scene->UpdateMeshTransformations();//I need to run it somewherelse, otherwise Im overrunning it } // Avoid drawing the scene with the active camera twice when it's viewport is enabled if(cam && !cam->GetViewport()) @@ -812,6 +817,9 @@ void KX_KetsjiEngine::Render() // pass the scene's worldsettings to the rasterizer SetWorldSettings(scene->GetWorldInfo()); + // do this only once per scene + scene->UpdateMeshTransformations(); + // shadow buffers RenderShadowBuffers(scene); @@ -1140,7 +1148,6 @@ void KX_KetsjiEngine::RenderShadowBuffers(KX_Scene *scene) light->BindShadowBuffer(m_rasterizer, cam, camtrans); /* update scene */ - scene->UpdateMeshTransformations(); scene->CalculateVisibleMeshes(m_rasterizer, cam, light->GetShadowLayer()); /* render */ @@ -1245,7 +1252,7 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam) cam->GetCameraLocation(), cam->GetCameraOrientation()); cam->SetModelviewMatrix(viewmat); - //redundant, already done in + //redundant, already done in Render() //scene->UpdateMeshTransformations(); // The following actually reschedules all vertices to be diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 2f7c1b77794..98c129ebca5 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -138,6 +138,7 @@ KX_Scene::KX_Scene(class SCA_IInputDevice* keyboarddevice, m_suspendeddelta = 0.0; m_dbvt_culling = false; + m_dbvt_occlusion_res = 0; m_activity_culling = false; m_suspend = false; m_isclearingZbuffer = true; @@ -1352,17 +1353,18 @@ void KX_Scene::CalculateVisibleMeshes(RAS_IRasterizer* rasty,KX_Camera* cam, int if (m_dbvt_culling) { // test culling through Bullet - PHY__Vector4 planes[5]; + PHY__Vector4 planes[6]; // get the clip planes MT_Vector4* cplanes = cam->GetNormalizedClipPlanes(); // and convert - planes[0].setValue(cplanes[0].getValue()); - planes[1].setValue(cplanes[1].getValue()); - planes[2].setValue(cplanes[2].getValue()); - planes[3].setValue(cplanes[3].getValue()); - planes[4].setValue(cplanes[5].getValue()); + planes[0].setValue(cplanes[4].getValue()); // near + planes[1].setValue(cplanes[5].getValue()); // far + planes[2].setValue(cplanes[0].getValue()); // left + planes[3].setValue(cplanes[1].getValue()); // right + planes[4].setValue(cplanes[2].getValue()); // top + planes[5].setValue(cplanes[3].getValue()); // bottom CullingInfo info(layer); - dbvt_culling = m_physicsEnvironment->cullingTest(PhysicsCullingCallback,&info,planes,5); + dbvt_culling = m_physicsEnvironment->cullingTest(PhysicsCullingCallback,&info,planes,5,m_dbvt_occlusion_res); } if (!dbvt_culling) { // the physics engine couldn't help us, do it the hard way diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index 55e7afa4957..e1e89e253ed 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -264,6 +264,11 @@ protected: */ bool m_dbvt_culling; + /** + * Occlusion culling resolution + */ + int m_dbvt_occlusion_res; + /** * The framing settings used by this scene */ @@ -545,8 +550,10 @@ public: bool IsClearingZBuffer(); void EnableZBufferClearing(bool isclearingZbuffer); // use of DBVT tree for camera culling - void SetDbvtCameraCulling(bool b) { m_dbvt_culling = b; }; - bool GetDbvtCameraCulling() { return m_dbvt_culling; }; + void SetDbvtCulling(bool b) { m_dbvt_culling = b; }; + bool GetDbvtCulling() { return m_dbvt_culling; }; + void SetDbvtOcclusionRes(int i) { m_dbvt_occlusion_res = i; }; + int GetDbvtOcclusionRes() { return m_dbvt_occlusion_res; }; void SetSceneConverter(class KX_BlenderSceneConverter* sceneConverter); diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 1ee2169adc4..fceb0b5922c 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -38,11 +38,13 @@ KX_VisibilityActuator::KX_VisibilityActuator( SCA_IObject* gameobj, bool visible, + bool occlusion, bool recursive, PyTypeObject* T ) : SCA_IActuator(gameobj,T), m_visible(visible), + m_occlusion(occlusion), m_recursive(recursive) { // intentionally empty @@ -78,6 +80,7 @@ KX_VisibilityActuator::Update() KX_GameObject *obj = (KX_GameObject*) GetParent(); obj->SetVisible(m_visible, m_recursive); + obj->SetOccluder(m_occlusion, m_recursive); obj->UpdateBuckets(m_recursive); return false; @@ -130,6 +133,7 @@ KX_VisibilityActuator::Methods[] = { PyAttributeDef KX_VisibilityActuator::Attributes[] = { KX_PYATTRIBUTE_BOOL_RW("visibility", KX_VisibilityActuator, m_visible), + KX_PYATTRIBUTE_BOOL_RW("occlusion", KX_VisibilityActuator, m_occlusion), KX_PYATTRIBUTE_BOOL_RW("recursion", KX_VisibilityActuator, m_recursive), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h index fca37500915..4269258f862 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.h +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h @@ -39,6 +39,7 @@ class KX_VisibilityActuator : public SCA_IActuator /** Make visible? */ bool m_visible; + bool m_occlusion; bool m_recursive; public: @@ -46,6 +47,7 @@ class KX_VisibilityActuator : public SCA_IActuator KX_VisibilityActuator( SCA_IObject* gameobj, bool visible, + bool occlusion, bool recursive, PyTypeObject* T=&Type ); diff --git a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h index e4aaef1803d..2e4709cf420 100644 --- a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h +++ b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h @@ -55,7 +55,7 @@ public: virtual void removeConstraint(void * constraintid); virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback,float fromX,float fromY,float fromZ, float toX,float toY,float toZ); - virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes) { return false; } + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/Bullet/CMakeLists.txt b/source/gameengine/Physics/Bullet/CMakeLists.txt index 6bab9858011..2cb2a540d97 100644 --- a/source/gameengine/Physics/Bullet/CMakeLists.txt +++ b/source/gameengine/Physics/Bullet/CMakeLists.txt @@ -30,11 +30,18 @@ SET(INC . ../common ../../../../extern/bullet2/src + ../../../../extern/glew/include ../../../../intern/moto/include ../../../kernel/gen_system ../../../../intern/string + ../../../intern/SoundSystem ../../Rasterizer + ../../Ketsji + ../../Expressions + ../../GameLogic + ../../SceneGraph ../../../../source/blender/makesdna + ${PYTHON_INC} ) BLENDERLIB(bf_bullet "${SRC}" "${INC}") diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index faf1ca42766..858416bae6a 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -33,6 +33,10 @@ subject to the following restrictions: #include "PHY_IMotionState.h" +#include "KX_GameObject.h" +#include "RAS_MeshObject.h" +#include "RAS_Polygon.h" +#include "RAS_TexVert.h" #define CCD_CONSTRAINT_DISABLE_LINKED_COLLISION 0x80 @@ -47,7 +51,9 @@ btRaycastVehicle::btVehicleTuning gTuning; #endif //NEW_BULLET_VEHICLE_SUPPORT #include "LinearMath/btAabbUtil2.h" - +#include "MT_Matrix4x4.h" +#include "MT_Vector3.h" +#include "GL/glew.h" #ifdef WIN32 void DrawRasterizerLine(const float* from,const float* to,int color); @@ -1189,17 +1195,492 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::rayTest(PHY_IRayCastFilterCallbac return result.m_controller; } +// Handles occlusion culling. +// The implementation is based on the CDTestFramework +struct OcclusionBuffer +{ + struct WriteOCL + { + static inline bool Process(btScalar& q,btScalar v) { if(q + void CMmat4mul(btScalar* m, const T1* m1, const T2* m2) + { + m[ 0] = btScalar(m1[ 0]*m2[ 0]+m1[ 4]*m2[ 1]+m1[ 8]*m2[ 2]+m1[12]*m2[ 3]); + m[ 1] = btScalar(m1[ 1]*m2[ 0]+m1[ 5]*m2[ 1]+m1[ 9]*m2[ 2]+m1[13]*m2[ 3]); + m[ 2] = btScalar(m1[ 2]*m2[ 0]+m1[ 6]*m2[ 1]+m1[10]*m2[ 2]+m1[14]*m2[ 3]); + m[ 3] = btScalar(m1[ 3]*m2[ 0]+m1[ 7]*m2[ 1]+m1[11]*m2[ 2]+m1[15]*m2[ 3]); + + m[ 4] = btScalar(m1[ 0]*m2[ 4]+m1[ 4]*m2[ 5]+m1[ 8]*m2[ 6]+m1[12]*m2[ 7]); + m[ 5] = btScalar(m1[ 1]*m2[ 4]+m1[ 5]*m2[ 5]+m1[ 9]*m2[ 6]+m1[13]*m2[ 7]); + m[ 6] = btScalar(m1[ 2]*m2[ 4]+m1[ 6]*m2[ 5]+m1[10]*m2[ 6]+m1[14]*m2[ 7]); + m[ 7] = btScalar(m1[ 3]*m2[ 4]+m1[ 7]*m2[ 5]+m1[11]*m2[ 6]+m1[15]*m2[ 7]); + + m[ 8] = btScalar(m1[ 0]*m2[ 8]+m1[ 4]*m2[ 9]+m1[ 8]*m2[10]+m1[12]*m2[11]); + m[ 9] = btScalar(m1[ 1]*m2[ 8]+m1[ 5]*m2[ 9]+m1[ 9]*m2[10]+m1[13]*m2[11]); + m[10] = btScalar(m1[ 2]*m2[ 8]+m1[ 6]*m2[ 9]+m1[10]*m2[10]+m1[14]*m2[11]); + m[11] = btScalar(m1[ 3]*m2[ 8]+m1[ 7]*m2[ 9]+m1[11]*m2[10]+m1[15]*m2[11]); + + m[12] = btScalar(m1[ 0]*m2[12]+m1[ 4]*m2[13]+m1[ 8]*m2[14]+m1[12]*m2[15]); + m[13] = btScalar(m1[ 1]*m2[12]+m1[ 5]*m2[13]+m1[ 9]*m2[14]+m1[13]*m2[15]); + m[14] = btScalar(m1[ 2]*m2[12]+m1[ 6]*m2[13]+m1[10]*m2[14]+m1[14]*m2[15]); + m[15] = btScalar(m1[ 3]*m2[12]+m1[ 7]*m2[13]+m1[11]*m2[14]+m1[15]*m2[15]); + } + void setup(int size) + { + m_initialized=false; + m_occlusion=false; + // compute the size of the buffer + GLint v[4]; + GLdouble m[16],p[16]; + int maxsize; + double ratio; + glGetIntegerv(GL_VIEWPORT,v); + maxsize = (v[2] > v[3]) ? v[2] : v[3]; + assert(maxsize > 0); + ratio = 1.0/(2*maxsize); + // ensure even number + m_sizes[0] = 2*((int)(size*v[2]*ratio+0.5)); + m_sizes[1] = 2*((int)(size*v[3]*ratio+0.5)); + m_scales[0]=btScalar(m_sizes[0]/2); + m_scales[1]=btScalar(m_sizes[1]/2); + m_offsets[0]=m_scales[0]+0.5f; + m_offsets[1]=m_scales[1]+0.5f; + // prepare matrix + // at this time of the rendering, the modelview matrix is the + // world to camera transformation and the projection matrix is + // camera to clip transformation. combine both so that + glGetDoublev(GL_MODELVIEW_MATRIX,m); + glGetDoublev(GL_PROJECTION_MATRIX,p); + CMmat4mul(m_wtc,p,m); + } + void initialize() + { + size_t newsize = (m_sizes[0]*m_sizes[1])*sizeof(btScalar); + if (m_buffer) + { + // see if we can reuse + if (newsize > m_bufferSize) + { + free(m_buffer); + m_buffer = NULL; + m_bufferSize = 0; + } + } + if (!m_buffer) + { + m_buffer = (btScalar*)calloc(1, newsize); + m_bufferSize = newsize; + } else + { + // buffer exists already, just clears it + memset(m_buffer, 0, newsize); + } + // memory allocate must succeed + assert(m_buffer != NULL); + m_initialized = true; + m_occlusion = false; + } + void SetModelMatrix(double *fl) + { + CMmat4mul(m_mtc,m_wtc,fl); + if (!m_initialized) + initialize(); + } + + // transform a segment in world coordinate to clip coordinate + void transformW(const btVector3& x, btVector4& t) + { + t[0] = x[0]*m_wtc[0]+x[1]*m_wtc[4]+x[2]*m_wtc[8]+m_wtc[12]; + t[1] = x[0]*m_wtc[1]+x[1]*m_wtc[5]+x[2]*m_wtc[9]+m_wtc[13]; + t[2] = x[0]*m_wtc[2]+x[1]*m_wtc[6]+x[2]*m_wtc[10]+m_wtc[14]; + t[3] = x[0]*m_wtc[3]+x[1]*m_wtc[7]+x[2]*m_wtc[11]+m_wtc[15]; + } + void transformM(const float* x, btVector4& t) + { + t[0] = x[0]*m_mtc[0]+x[1]*m_mtc[4]+x[2]*m_mtc[8]+m_mtc[12]; + t[1] = x[0]*m_mtc[1]+x[1]*m_mtc[5]+x[2]*m_mtc[9]+m_mtc[13]; + t[2] = x[0]*m_mtc[2]+x[1]*m_mtc[6]+x[2]*m_mtc[10]+m_mtc[14]; + t[3] = x[0]*m_mtc[3]+x[1]*m_mtc[7]+x[2]*m_mtc[11]+m_mtc[15]; + } + // convert polygon to device coordinates + static bool project(btVector4* p,int n) + { + for(int i=0;i + static int clip(const btVector4* pi,btVector4* po) + { + btScalar s[2*NP]; + btVector4 pn[2*NP], *p; + int i, j, m, n, ni; + // deal with near clipping + for(i=0, m=0;i0)&&(t<1)) + { + pn[n][0] = a[0]+(b[0]-a[0])*t; + pn[n][1] = a[1]+(b[1]-a[1])*t; + pn[n][2] = a[2]+(b[2]-a[2])*t; + pn[n][3] = a[3]+(b[3]-a[3])*t; + ++n; + } + if(s[j]>0) pn[n++]=b; + } + // ready to test far clipping, start from the modified polygon + pi = pn; + ni = n; + } else + { + // no clipping on the near plane, keep same vector + ni = NP; + } + // now deal with far clipping + for(i=0, m=0;i0) m+=1<0)&&(t<1)) + { + po[n][0] = a[0]+(b[0]-a[0])*t; + po[n][1] = a[1]+(b[1]-a[1])*t; + po[n][2] = a[2]+(b[2]-a[2])*t; + po[n][3] = a[3]+(b[3]-a[3])*t; + ++n; + } + if(s[j]<0) po[n++]=b; + } + return(n); + } + for(int i=0;i + inline bool draw( const btVector4& a, + const btVector4& b, + const btVector4& c, + const float face, + const btScalar minarea) + { + const btScalar a2=cross(b-a,c-a)[2]; + if((face*a2)<0.f || btFabs(a2) must + // change the order of b and c otherwise the algorithm doesn't work + ib=2; + ic=1; + } + x[ib]=(int)(b.x()*m_scales[0]+m_offsets[0]); + x[ic]=(int)(c.x()*m_scales[0]+m_offsets[0]); + y[ib]=(int)(b.y()*m_scales[1]+m_offsets[1]); + y[ic]=(int)(c.y()*m_scales[1]+m_offsets[1]); + z[ib]=b.z(); + z[ic]=c.z(); + const int mix=btMax(0,btMin(x[0],btMin(x[1],x[2]))); + const int mxx=btMin(m_sizes[0],1+btMax(x[0],btMax(x[1],x[2]))); + const int miy=btMax(0,btMin(y[0],btMin(y[1],y[2]))); + const int mxy=btMin(m_sizes[1],1+btMax(y[0],btMax(y[1],y[2]))); + const int width=mxx-mix; + const int height=mxy-miy; + if ((width*height) <= 1) + { + // degenerated in at most one single pixel + btScalar* scan=&m_buffer[miy*m_sizes[0]+mix]; + // use for loop to detect the case where width or height == 0 + for(int iy=miy;iy y[1]) { ytmp=y[1];y[1]=y[0];y[0]=ytmp;ztmp=z[1];z[1]=z[0];z[0]=ztmp; } + if (y[0] > y[2]) { ytmp=y[2];y[2]=y[0];y[0]=ytmp;ztmp=z[2];z[2]=z[0];z[0]=ztmp; } + if (y[1] > y[2]) { ytmp=y[2];y[2]=y[1];y[1]=ytmp;ztmp=z[2];z[2]=z[1];z[1]=ztmp; } + int dy[]={ y[0]-y[1], + y[1]-y[2], + y[2]-y[0]}; + btScalar dzy[3]; + dzy[0] = (dy[0]) ? (z[0]-z[1])/dy[0] : btScalar(0.f); + dzy[1] = (dy[1]) ? (z[1]-z[2])/dy[1] : btScalar(0.f); + dzy[2] = (dy[2]) ? (z[2]-z[0])/dy[2] : btScalar(0.f); + btScalar v[3] = { dzy[0]*(miy-y[0])+z[0], + dzy[1]*(miy-y[1])+z[1], + dzy[2]*(miy-y[2])+z[2] }; + dy[0] = y[1]-y[0]; + dy[1] = y[0]-y[1]; + dy[2] = y[2]-y[0]; + btScalar* scan=&m_buffer[miy*m_sizes[0]+mix]; + for(int iy=miy;iy= 0 && POLICY::Process(*scan,v[0])) + return(true); + if(dy[1] >= 0 && POLICY::Process(*scan,v[1])) + return(true); + if(dy[2] >= 0 && POLICY::Process(*scan,v[2])) + return(true); + scan+=m_sizes[0]; + v[0] += dzy[0]; v[1] += dzy[1]; v[2] += dzy[2]; + dy[0]--; dy[1]++, dy[2]--; + } + } else if (height == 1) + { + // Degenerated in at least 2 horizontal lines + // The algorithm below doesn't work when face has a single pixel width + // We cannot use general formulas because the plane is degenerated. + // We have to interpolate along the 3 edges that overlaps and process each pixel. + int xtmp; + btScalar ztmp; + if (x[0] > x[1]) { xtmp=x[1];x[1]=x[0];x[0]=xtmp;ztmp=z[1];z[1]=z[0];z[0]=ztmp; } + if (x[0] > x[2]) { xtmp=x[2];x[2]=x[0];x[0]=xtmp;ztmp=z[2];z[2]=z[0];z[0]=ztmp; } + if (x[1] > x[2]) { xtmp=x[2];x[2]=x[1];x[1]=xtmp;ztmp=z[2];z[2]=z[1];z[1]=ztmp; } + int dx[]={ x[0]-x[1], + x[1]-x[2], + x[2]-x[0]}; + btScalar dzx[3]; + dzx[0] = (dx[0]) ? (z[0]-z[1])/dx[0] : btScalar(0.f); + dzx[1] = (dx[1]) ? (z[1]-z[2])/dx[1] : btScalar(0.f); + dzx[2] = (dx[2]) ? (z[2]-z[0])/dx[2] : btScalar(0.f); + btScalar v[3] = { dzx[0]*(mix-x[0])+z[0], + dzx[1]*(mix-x[1])+z[1], + dzx[2]*(mix-x[2])+z[2] }; + dx[0] = x[1]-x[0]; + dx[1] = x[0]-x[1]; + dx[2] = x[2]-x[0]; + btScalar* scan=&m_buffer[miy*m_sizes[0]+mix]; + for(int ix=mix;ix= 0 && POLICY::Process(*scan,v[0])) + return(true); + if(dx[1] >= 0 && POLICY::Process(*scan,v[1])) + return(true); + if(dx[2] >= 0 && POLICY::Process(*scan,v[2])) + return(true); + scan++; + v[0] += dzx[0]; v[1] += dzx[1]; v[2] += dzx[2]; + dx[0]--; dx[1]++, dx[2]--; + } + } else + { + // general case + const int dx[]={ y[0]-y[1], + y[1]-y[2], + y[2]-y[0]}; + const int dy[]={ x[1]-x[0]-dx[0]*width, + x[2]-x[1]-dx[1]*width, + x[0]-x[2]-dx[2]*width}; + const int a=x[2]*y[0]+x[0]*y[1]-x[2]*y[1]-x[0]*y[2]+x[1]*y[2]-x[1]*y[0]; + const btScalar ia=1/(btScalar)a; + const btScalar dzx=ia*(y[2]*(z[1]-z[0])+y[1]*(z[0]-z[2])+y[0]*(z[2]-z[1])); + const btScalar dzy=ia*(x[2]*(z[0]-z[1])+x[0]*(z[1]-z[2])+x[1]*(z[2]-z[0]))-(dzx*width); + int c[]={ miy*x[1]+mix*y[0]-x[1]*y[0]-mix*y[1]+x[0]*y[1]-miy*x[0], + miy*x[2]+mix*y[1]-x[2]*y[1]-mix*y[2]+x[1]*y[2]-miy*x[1], + miy*x[0]+mix*y[2]-x[0]*y[2]-mix*y[0]+x[2]*y[0]-miy*x[2]}; + btScalar v=ia*((z[2]*c[0])+(z[0]*c[1])+(z[1]*c[2])); + btScalar* scan=&m_buffer[miy*m_sizes[0]]; + for(int iy=miy;iy=0)&&(c[1]>=0)&&(c[2]>=0)) + { + if(POLICY::Process(scan[ix],v)) + return(true); + } + c[0]+=dx[0];c[1]+=dx[1];c[2]+=dx[2];v+=dzx; + } + c[0]+=dy[0];c[1]+=dy[1];c[2]+=dy[2];v+=dzy; + scan+=m_sizes[0]; + } + } + return(false); + } + // clip than write or check a polygon + template + inline bool clipDraw( const btVector4* p, + const float face, + btScalar minarea) + { + btVector4 o[NP*2]; + int n=clip(p,o); + bool earlyexit=false; + if (n) + { + project(o,n); + for(int i=2;i(o[0],o[i-1],o[i],face,minarea); + } + } + return(earlyexit); + } + // add a triangle (in model coordinate) + // face = 0.f if face is double side, + // = 1.f if face is single sided and scale is positive + // = -1.f if face is single sided and scale is negative + void appendOccluderM(const float* a, + const float* b, + const float* c, + const float face) + { + btVector4 p[3]; + transformM(a,p[0]); + transformM(b,p[1]); + transformM(c,p[2]); + clipDraw<3,WriteOCL>(p,face,btScalar(0.f)); + } + // add a quad (in model coordinate) + void appendOccluderM(const float* a, + const float* b, + const float* c, + const float* d, + const float face) + { + btVector4 p[4]; + transformM(a,p[0]); + transformM(b,p[1]); + transformM(c,p[2]); + transformM(d,p[3]); + clipDraw<4,WriteOCL>(p,face,btScalar(0.f)); + } + // query occluder for a box (c=center, e=extend) in world coordinate + inline bool queryOccluderW( const btVector3& c, + const btVector3& e) + { + if (!m_occlusion) + // no occlusion yet, no need to check + return true; + btVector4 x[8]; + transformW(btVector3(c[0]-e[0],c[1]-e[1],c[2]-e[2]),x[0]); + transformW(btVector3(c[0]+e[0],c[1]-e[1],c[2]-e[2]),x[1]); + transformW(btVector3(c[0]+e[0],c[1]+e[1],c[2]-e[2]),x[2]); + transformW(btVector3(c[0]-e[0],c[1]+e[1],c[2]-e[2]),x[3]); + transformW(btVector3(c[0]-e[0],c[1]-e[1],c[2]+e[2]),x[4]); + transformW(btVector3(c[0]+e[0],c[1]-e[1],c[2]+e[2]),x[5]); + transformW(btVector3(c[0]+e[0],c[1]+e[1],c[2]+e[2]),x[6]); + transformW(btVector3(c[0]-e[0],c[1]+e[1],c[2]+e[2]),x[7]); + for(int i=0;i<8;++i) + { + // the box is clipped, it's probably a large box, don't waste our time to check + if((x[i][2]+x[i][3])<=0) return(true); + } + static const int d[]={ 1,0,3,2, + 4,5,6,7, + 4,7,3,0, + 6,5,1,2, + 7,6,2,3, + 5,4,0,1}; + for(int i=0;i<(sizeof(d)/sizeof(d[0]));) + { + const btVector4 p[]={ x[d[i++]], + x[d[i++]], + x[d[i++]], + x[d[i++]]}; + if(clipDraw<4,QueryOCL>(p,1.f,0.f)) + return(true); + } + return(false); + } +}; + + struct DbvtCullingCallback : btDbvt::ICollide { PHY_CullingCallback m_clientCallback; void* m_userData; + OcclusionBuffer *m_ocb; DbvtCullingCallback(PHY_CullingCallback clientCallback, void* userData) { m_clientCallback = clientCallback; m_userData = userData; + m_ocb = NULL; + } + bool Descent(const btDbvtNode* node) + { + return(m_ocb->queryOccluderW(node->volume.Center(),node->volume.Extents())); } - void Process(const btDbvtNode* node,btScalar depth) { Process(node); @@ -1210,31 +1691,83 @@ struct DbvtCullingCallback : btDbvt::ICollide // the client object is a graphic controller CcdGraphicController* ctrl = static_cast(proxy->m_clientObject); KX_ClientObjectInfo* info = (KX_ClientObjectInfo*)ctrl->getNewClientInfo(); + if (m_ocb) + { + // means we are doing occlusion culling. Check if this object is an occluders + KX_GameObject* gameobj = KX_GameObject::GetClientObject(info); + if (gameobj && gameobj->GetOccluder()) + { + double* fl = gameobj->GetOpenGLMatrixPtr()->getPointer(); + // this will create the occlusion buffer if not already done + // and compute the transformation from model local space to clip space + m_ocb->SetModelMatrix(fl); + float face = (gameobj->IsNegativeScaling()) ? -1.0f : 1.0f; + // walk through the meshes and for each add to buffer + for (int i=0; iGetMeshCount(); i++) + { + RAS_MeshObject* meshobj = gameobj->GetMesh(i); + const float *v1, *v2, *v3, *v4; + + int polycount = meshobj->NumPolygons(); + for (int j=0; jGetPolygon(j); + switch (poly->VertexCount()) + { + case 3: + v1 = poly->GetVertex(0)->getXYZ(); + v2 = poly->GetVertex(1)->getXYZ(); + v3 = poly->GetVertex(2)->getXYZ(); + m_ocb->appendOccluderM(v1,v2,v3,((poly->IsTwoside())?0.f:face)); + break; + case 4: + v1 = poly->GetVertex(0)->getXYZ(); + v2 = poly->GetVertex(1)->getXYZ(); + v3 = poly->GetVertex(2)->getXYZ(); + v4 = poly->GetVertex(3)->getXYZ(); + m_ocb->appendOccluderM(v1,v2,v3,v4,((poly->IsTwoside())?0.f:face)); + break; + } + } + } + } + } if (info) (*m_clientCallback)(info, m_userData); } }; -bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes) +static OcclusionBuffer gOcb; +bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes, int occlusionRes) { if (!m_cullingTree) return false; DbvtCullingCallback dispatcher(callback, userData); - btVector3 planes_n[5]; - btScalar planes_o[5]; - if (nplanes > 5) - nplanes = 5; + btVector3 planes_n[6]; + btScalar planes_o[6]; + if (nplanes > 6) + nplanes = 6; for (int i=0; im_sets[1].m_root,planes_n,planes_o,nplanes,dispatcher); - btDbvt::collideKDOP(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,nplanes,dispatcher); + // if occlusionRes != 0 => occlusion culling + if (occlusionRes) + { + gOcb.setup(occlusionRes); + dispatcher.m_ocb = &gOcb; + // occlusion culling, the direction of the view is taken from the first plan which MUST be the near plane + btDbvt::collideOCL(m_cullingTree->m_sets[1].m_root,planes_n,planes_o,planes_n[0],nplanes,dispatcher); + btDbvt::collideOCL(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,planes_n[0],nplanes,dispatcher); + }else + { + btDbvt::collideKDOP(m_cullingTree->m_sets[1].m_root,planes_n,planes_o,nplanes,dispatcher); + btDbvt::collideKDOP(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,nplanes,dispatcher); + } return true; } - int CcdPhysicsEnvironment::getNumContactPoints() { return 0; diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h index ddbcbe6b4d6..f861621ae37 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h @@ -172,7 +172,7 @@ protected: btTypedConstraint* getConstraintById(int constraintId); virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ); - virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes); + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes); //Methods for gamelogic collision/physics callbacks diff --git a/source/gameengine/Physics/Bullet/Makefile b/source/gameengine/Physics/Bullet/Makefile index bf3573138f7..48e537bb6a3 100644 --- a/source/gameengine/Physics/Bullet/Makefile +++ b/source/gameengine/Physics/Bullet/Makefile @@ -39,9 +39,16 @@ CPPFLAGS += -I$(NAN_BULLET2)/include CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_MOTO)/include +CPPFLAGS += -I$(NAN_GLEW)/include +CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION) +CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include CPPFLAGS += -I../../../kernel/gen_system CPPFLAGS += -I../../Physics/common CPPFLAGS += -I../../Physics/Dummy CPPFLAGS += -I../../Rasterizer +CPPFLAGS += -I../../Ketsji +CPPFLAGS += -I../../Expressions +CPPFLAGS += -I../../GameLogic +CPPFLAGS += -I../../SceneGraph CPPFLAGS += -I../../../../source/blender/makesdna diff --git a/source/gameengine/Physics/Bullet/SConscript b/source/gameengine/Physics/Bullet/SConscript index f3b6549089d..115ab8bf730 100644 --- a/source/gameengine/Physics/Bullet/SConscript +++ b/source/gameengine/Physics/Bullet/SConscript @@ -3,9 +3,21 @@ Import ('env') sources = 'CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp CcdGraphicController.cpp' -incs = '. ../common #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer #source/blender/makesdna' +incs = '. ../common' +incs += ' #source/kernel/gen_system' +incs += ' #intern/string' +incs += ' #intern/moto/include' +incs += ' #extern/glew/include' +incs += ' #source/gameengine/Rasterizer' +incs += ' #source/gameengine/Ketsji' +incs += ' #source/gameengine/Expressions' +incs += ' #source/gameengine/GameLogic' +incs += ' #source/gameengine/SceneGraph' +incs += ' #source/blender/makesdna' +incs += ' #intern/SoundSystem' incs += ' ' + env['BF_BULLET_INC'] +incs += ' ' + env['BF_PYTHON_INC'] cxxflags = [] if env['OURPLATFORM']=='win32-vc': diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h index fae1844d505..4e15e6ec130 100644 --- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h +++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h @@ -70,7 +70,7 @@ public: } virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ); - virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes) { return false; } + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h index 9942a367451..418a361a065 100644 --- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h +++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h @@ -76,7 +76,7 @@ public: } virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback,float fromX,float fromY,float fromZ, float toX,float toY,float toZ); - virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes) { return false; } + virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes, int occlusionRes) { return false; } //gamelogic callbacks diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h index 5edafe6b51e..9a4500c3214 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h @@ -143,7 +143,9 @@ class PHY_IPhysicsEnvironment virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ)=0; //culling based on physical broad phase - virtual bool cullingTest(PHY_CullingCallback callback, void *userData, PHY__Vector4* planeNormals, int planeNumber) = 0; + // the plane number must be set as follow: near, far, left, right, top, botton + // the near plane must be the first one and must always be present, it is used to get the direction of the view + virtual bool cullingTest(PHY_CullingCallback callback, void *userData, PHY__Vector4* planeNormals, int planeNumber, int occlusionRes) = 0; //Methods for gamelogic collision/physics callbacks //todo: diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index fb1e099e575..fa4641c3e2f 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -25,6 +25,8 @@ class KX_GameObject: # (SCA_IObject) @ivar visible: visibility flag. - note: Game logic will still run for invisible objects. @type visible: boolean + @ivar occlusion: occlusion capability flag. + @type occlusion: boolean @ivar position: The object's position. @type position: list [x, y, z] @ivar orientation: The object's orientation. 3x3 Matrix. You can also write a Quaternion or Euler vector. @@ -76,6 +78,14 @@ class KX_GameObject: # (SCA_IObject) @type recursive: boolean @param recursive: optional argument to set all childrens visibility flag too. """ + def setOcclusion(occlusion, recursive): + """ + Sets the game object's occlusion capability. + + @type visible: boolean + @type recursive: boolean + @param recursive: optional argument to set all childrens occlusion flag too. + """ def getState(): """ Gets the game object's state bitmask. (B{deprecated}) diff --git a/source/gameengine/PyDoc/KX_VisibilityActuator.py b/source/gameengine/PyDoc/KX_VisibilityActuator.py index aca8d1ce243..36f25b2423c 100644 --- a/source/gameengine/PyDoc/KX_VisibilityActuator.py +++ b/source/gameengine/PyDoc/KX_VisibilityActuator.py @@ -7,7 +7,9 @@ class KX_VisibilityActuator(SCA_IActuator): Visibility Actuator. @ivar visibility: whether the actuator makes its parent object visible or invisible @type visibility: boolean - @ivar recursion: whether the visibility/invisibility should be propagated to all children of the object + @ivar occlusion: whether the actuator makes its parent object an occluder or not + @type occlusion: boolean + @ivar recursion: whether the visibility/occlusion should be propagated to all children of the object @type recursion: boolean """ def set(visible): diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index 69f73c2ee25..5ddcdd310b0 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -62,10 +62,12 @@ RAS_MeshSlot::~RAS_MeshSlot() { vector::iterator it; +#ifdef USE_SPLIT Split(true); while(m_joinedSlots.size()) m_joinedSlots.front()->Split(true); +#endif for(it=m_displayArrays.begin(); it!=m_displayArrays.end(); it++) { (*it)->m_users--; @@ -428,11 +430,11 @@ bool RAS_MeshSlot::IsCulled() return true; if(!m_bCulled) return false; - +#ifdef USE_SPLIT for(it=m_joinedSlots.begin(); it!=m_joinedSlots.end(); it++) if(!(*it)->m_bCulled) return false; - +#endif return true; } diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp index a907994bf57..162f9a81335 100644 --- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp +++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp @@ -406,7 +406,9 @@ void RAS_MeshObject::UpdateBuckets(void* clientobj, ms->m_bCulled = culled || !visible; /* split if necessary */ +#ifdef USE_SPLIT ms->Split(); +#endif } } diff --git a/source/gameengine/Rasterizer/RAS_Polygon.cpp b/source/gameengine/Rasterizer/RAS_Polygon.cpp index 66b14bb60b0..eacc1285166 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.cpp +++ b/source/gameengine/Rasterizer/RAS_Polygon.cpp @@ -97,6 +97,17 @@ void RAS_Polygon::SetCollider(bool visible) else m_polyflags &= ~COLLIDER; } +bool RAS_Polygon::IsTwoside() +{ + return (m_polyflags & TWOSIDE) != 0; +} + +void RAS_Polygon::SetTwoside(bool twoside) +{ + if(twoside) m_polyflags |= TWOSIDE; + else m_polyflags &= ~TWOSIDE; +} + RAS_MaterialBucket* RAS_Polygon::GetMaterial() { return m_bucket; diff --git a/source/gameengine/Rasterizer/RAS_Polygon.h b/source/gameengine/Rasterizer/RAS_Polygon.h index 224a7e0eed2..41eaa6bdd4a 100644 --- a/source/gameengine/Rasterizer/RAS_Polygon.h +++ b/source/gameengine/Rasterizer/RAS_Polygon.h @@ -56,7 +56,8 @@ class RAS_Polygon public: enum { VISIBLE = 1, - COLLIDER = 2 + COLLIDER = 2, + TWOSIDE = 4 }; RAS_Polygon(RAS_MaterialBucket* bucket, RAS_DisplayArray* darray, int numvert); @@ -79,6 +80,9 @@ public: bool IsCollider(); void SetCollider(bool collider); + bool IsTwoside(); + void SetTwoside(bool twoside); + RAS_MaterialBucket* GetMaterial(); RAS_DisplayArray* GetDisplayArray(); }; diff --git a/source/gameengine/VideoTexture/ImageRender.cpp b/source/gameengine/VideoTexture/ImageRender.cpp index 58697ed3cc7..6ef62f64d3f 100644 --- a/source/gameengine/VideoTexture/ImageRender.cpp +++ b/source/gameengine/VideoTexture/ImageRender.cpp @@ -249,7 +249,7 @@ void ImageRender::Render() // restore the stereo mode now that the matrix is computed m_rasterizer->SetStereoMode(stereomode); - // do not update the mesh, we don't want to do it more than once per frame + // do not update the mesh transform, we don't want to do it more than once per frame //m_scene->UpdateMeshTransformations(); m_scene->CalculateVisibleMeshes(m_rasterizer,m_camera); From 1bc31fc7f901334f0ed20317985b2a84d51714ca Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Apr 2009 03:08:09 +0000 Subject: [PATCH 154/201] BGE Bugfix [#17678] "Mouse over" sensor broken when using viewports Loop over all the scenes camera viewports and check the mouse is inside the viewport before casting a ray. --- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 192 ++++++++++-------- 1 file changed, 103 insertions(+), 89 deletions(-) diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 4afc6d6f1b8..2cb74ba65ab 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -150,11 +150,11 @@ bool KX_MouseFocusSensor::RayHit(KX_ClientObjectInfo* client_info, KX_RayCast* r -bool KX_MouseFocusSensor::ParentObjectHasFocus(void) +bool KX_MouseFocusSensor::ParentObjectHasFocus() { m_hitObject = 0; - m_hitPosition = MT_Vector3(0,0,0); - m_hitNormal = MT_Vector3(1,0,0); + m_hitPosition.setValue(0,0,0); + m_hitNormal.setValue(1,0,0); /* All screen handling in the gameengine is done by GL, * specifically the model/view and projection parts. The viewport @@ -188,6 +188,11 @@ bool KX_MouseFocusSensor::ParentObjectHasFocus(void) * * */ + MT_Vector4 frompoint; + MT_Vector4 topoint; + + bool result = false; + /* Because we don't want to worry about resize events, camera * changes and all that crap, we just determine this over and * over. Stop whining. We have lots of other calculations to do @@ -195,96 +200,105 @@ bool KX_MouseFocusSensor::ParentObjectHasFocus(void) * canvas, the test is irrelevant. The 1.0 makes sure the * calculations don't bomb. Maybe we should explicitly guard for * division by 0.0...*/ - - KX_Camera* cam = m_kxscene->GetActiveCamera(); - - /* get the scenes current viewport. we recompute it because there - * may be multiple cameras and m_kxscene->GetSceneViewport() only - * has the one that was last drawn */ - - RAS_Rect area, viewport; - m_kxengine->GetSceneViewport(m_kxscene, cam, area, viewport); - - float height = float(viewport.m_y2 - viewport.m_y1 + 1); - float width = float(viewport.m_x2 - viewport.m_x1 + 1); + list* cameras = m_kxscene->GetCameras(); - float x_lb = float(viewport.m_x1); - float y_lb = float(viewport.m_y1); + // Draw the scene once for each camera with an enabled viewport + list::iterator it = cameras->begin(); + while(it != cameras->end()) + { + if((*it)->GetViewport()) + { + KX_Camera* cam= (*it); + + /* get the scenes current viewport. we recompute it because there + * may be multiple cameras and m_kxscene->GetSceneViewport() only + * has the one that was last drawn */ - /* There's some strangeness I don't fully get here... These values - * _should_ be wrong! */ + RAS_Rect area, viewport; + m_kxengine->GetSceneViewport(m_kxscene, cam, area, viewport); + + /* Check if the mouse is in the viewport */ + if ( m_x < viewport.m_x2 && // less then right + m_x > viewport.m_x1 && // more then then left + m_y < viewport.m_y2 && // below top + m_y > viewport.m_y1) // above bottom + { + float height = float(viewport.m_y2 - viewport.m_y1 + 1); + float width = float(viewport.m_x2 - viewport.m_x1 + 1); + + float x_lb = float(viewport.m_x1); + float y_lb = float(viewport.m_y1); + + /* There's some strangeness I don't fully get here... These values + * _should_ be wrong! - see from point Z values */ + + + /* build the from and to point in normalized device coordinates + * Looks like normailized device coordinates are [-1,1] in x [-1,1] in y + * [0,-1] in z + * + * The actual z coordinates used don't have to be exact just infront and + * behind of the near and far clip planes. + */ + frompoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, + 1.0 - (2 * (m_y - y_lb) / height), + 0.0, /* nearclip, see above comments */ + 1.0 ); + + topoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, + 1.0 - (2 * (m_y-y_lb) / height), + 1.0, /* farclip, see above comments */ + 1.0 ); + + /* camera to world */ + MT_Transform wcs_camcs_tranform = cam->GetWorldToCamera(); + if (!cam->GetCameraData()->m_perspective) + wcs_camcs_tranform.getOrigin()[2] *= 100.0; + MT_Transform cams_wcs_transform; + cams_wcs_transform.invert(wcs_camcs_tranform); + + MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cams_wcs_transform); + + /* badly defined, the first time round.... I wonder why... I might + * want to guard against floating point errors here.*/ + MT_Matrix4x4 clip_camcs_matrix = MT_Matrix4x4(cam->GetProjectionMatrix()); + clip_camcs_matrix.invert(); + + /* shoot-points: clip to cam to wcs . win to clip was already done.*/ + frompoint = clip_camcs_matrix * frompoint; + topoint = clip_camcs_matrix * topoint; + frompoint = camcs_wcs_matrix * frompoint; + topoint = camcs_wcs_matrix * topoint; + + /* from hom wcs to 3d wcs: */ + m_prevSourcePoint.setValue( frompoint[0]/frompoint[3], + frompoint[1]/frompoint[3], + frompoint[2]/frompoint[3]); + + m_prevTargetPoint.setValue( topoint[0]/topoint[3], + topoint[1]/topoint[3], + topoint[2]/topoint[3]); + + /* 2. Get the object from PhysicsEnvironment */ + /* Shoot! Beware that the first argument here is an + * ignore-object. We don't ignore anything... */ + KX_IPhysicsController* physics_controller = cam->GetPhysicsController(); + PHY_IPhysicsEnvironment* physics_environment = m_kxscene->GetPhysicsEnvironment(); + + KX_RayCast::Callback callback(this,physics_controller); + + KX_RayCast::RayTest(physics_environment, m_prevSourcePoint, m_prevTargetPoint, callback); + + if (m_hitObject) { + result= true; + break; + } + } + } + it++; + } - - /* old: */ - float nearclip = 0.0; - float farclip = 1.0; - - /* build the from and to point in normalized device coordinates - * Looks like normailized device coordinates are [-1,1] in x [-1,1] in y - * [0,-1] in z - * - * The actual z coordinates used don't have to be exact just infront and - * behind of the near and far clip planes. - */ - MT_Vector4 frompoint = MT_Vector4( - (2 * (m_x-x_lb) / width) - 1.0, - 1.0 - (2 * (m_y - y_lb) / height), - nearclip, - 1.0 - ); - MT_Vector4 topoint = MT_Vector4( - (2 * (m_x-x_lb) / width) - 1.0, - 1.0 - (2 * (m_y-y_lb) / height), - farclip, - 1.0 - ); - - /* camera to world */ - MT_Transform wcs_camcs_tranform = cam->GetWorldToCamera(); - if (!cam->GetCameraData()->m_perspective) - wcs_camcs_tranform.getOrigin()[2] *= 100.0; - MT_Transform cams_wcs_transform; - cams_wcs_transform.invert(wcs_camcs_tranform); - - MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cams_wcs_transform); - - /* badly defined, the first time round.... I wonder why... I might - * want to guard against floating point errors here.*/ - MT_Matrix4x4 clip_camcs_matrix = MT_Matrix4x4(cam->GetProjectionMatrix()); - clip_camcs_matrix.invert(); - - /* shoot-points: clip to cam to wcs . win to clip was already done.*/ - frompoint = clip_camcs_matrix * frompoint; - topoint = clip_camcs_matrix * topoint; - frompoint = camcs_wcs_matrix * frompoint; - topoint = camcs_wcs_matrix * topoint; - - /* from hom wcs to 3d wcs: */ - MT_Point3 frompoint3 = MT_Point3(frompoint[0]/frompoint[3], - frompoint[1]/frompoint[3], - frompoint[2]/frompoint[3]); - MT_Point3 topoint3 = MT_Point3(topoint[0]/topoint[3], - topoint[1]/topoint[3], - topoint[2]/topoint[3]); - m_prevTargetPoint = topoint3; - m_prevSourcePoint = frompoint3; - - /* 2. Get the object from PhysicsEnvironment */ - /* Shoot! Beware that the first argument here is an - * ignore-object. We don't ignore anything... */ - - KX_IPhysicsController* physics_controller = cam->GetPhysicsController(); - PHY_IPhysicsEnvironment* physics_environment = m_kxscene->GetPhysicsEnvironment(); - - bool result = false; - - KX_RayCast::Callback callback(this,physics_controller); - KX_RayCast::RayTest(physics_environment, frompoint3, topoint3, callback); - - result = (m_hitObject!=0); - return result; - } /* ------------------------------------------------------------------------- */ From 3511f8ef9fe6a2a6491fbae3a44a407f280a19e0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Apr 2009 12:34:39 +0000 Subject: [PATCH 155/201] BGE Physics Clamp objects min/max velocity. Accessed with bullet physics from the advanced button with dynamic and rigid body objects. - useful for preventing unstable physics in cases where objects move too fast. - can add linear velocity with the motion actuator to give smooth motion transitions, without moving too fast. - minimum velocity means objects don't stop moving. - python scripts can adjust these values speedup or throttle velocity in the existing direction. Also made copy properties from an object with no properties work (in case you want to clear all props) --- source/blender/makesdna/DNA_object_types.h | 4 +- source/blender/src/buttons_logic.c | 18 +++++++ source/blender/src/editobject.c | 13 +++-- .../Converter/BL_BlenderDataConversion.cpp | 4 ++ .../Ketsji/KX_BulletPhysicsController.cpp | 27 ++++++++-- .../Ketsji/KX_BulletPhysicsController.h | 6 ++- .../Ketsji/KX_ConvertPhysicsObjects.cpp | 2 + source/gameengine/Ketsji/KX_GameObject.cpp | 49 +++++++++++++++++++ source/gameengine/Ketsji/KX_GameObject.h | 4 ++ .../gameengine/Ketsji/KX_IPhysicsController.h | 6 +++ .../Physics/Bullet/CcdPhysicsController.cpp | 14 +++++- .../Physics/Bullet/CcdPhysicsController.h | 23 ++++++++- .../Physics/common/PHY_IPhysicsController.h | 6 +++ source/gameengine/Physics/common/PHY_Pro.h | 6 ++- source/gameengine/PyDoc/KX_GameObject.py | 14 +++++- 15 files changed, 176 insertions(+), 20 deletions(-) diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 3a408404b0b..82da883df4a 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -157,7 +157,9 @@ typedef struct Object { float formfactor; float rdamping, sizefac; float margin; - int pad3; + float max_vel; /* clamp the maximum velocity 0.0 is disabled */ + float min_vel; /* clamp the maximum velocity 0.0 is disabled */ + float pad3; /* clamp the maximum velocity 0.0 is disabled */ char dt, dtx; char totcol; /* copy of mesh or curve or meta */ diff --git a/source/blender/src/buttons_logic.c b/source/blender/src/buttons_logic.c index 2f68720acb0..67531e9b3b8 100644 --- a/source/blender/src/buttons_logic.c +++ b/source/blender/src/buttons_logic.c @@ -3139,6 +3139,7 @@ static uiBlock *advanced_bullet_menu(void *arg_ob) uiDefButF(block, NUM, 0, "Margin", xco, yco, 180, 19, &ob->margin, 0.001, 1.0, 1, 0, "Collision margin"); + yco -= 20; if (ob->gameflag & OB_RIGID_BODY) @@ -3166,7 +3167,24 @@ static uiBlock *advanced_bullet_menu(void *arg_ob) uiDefButBitI(block, TOG, OB_LOCK_RIGID_BODY_Z_ROT_AXIS, 0, "Lock Z Rot Axis", xco+=180, yco, 180, 19, &ob->gameflag2, 0, 0, 0, 0, "Disable simulation of angular motion along the Z axis"); + yco -= 20; } + xco = 0; + + uiBlockEndAlign(block); + + uiDefBut(block, LABEL, 0, "Clamp Velocity (zero disables)", xco, yco, 180*2, 19, NULL, 0, 0, 0, 0, ""); + + uiBlockBeginAlign(block); + + uiDefButF(block, NUM, 0, "Min", + xco+=180, yco, 90, 19, &ob->min_vel, 0.0, 1000.0, 1, 0, + "Clamp velocity to this minimum speed (except when totally still)"); + uiDefButF(block, NUM, 0, "Max", + xco+=90, yco, 90, 19, &ob->max_vel, 0.0, 1000.0, 1, 0, + "Clamp velocity to this maximum speed"); + uiBlockEndAlign(block); + /* uiDefButBitI(block, TOG, OB_BSB_COL_CL_RS, 0, "Cluster Collision RS", xco, yco, 180, 19, &ob->bsoft->collisionflags, 0, 0, 0, 0, diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c index bb9be49c347..2f127f9a3ec 100644 --- a/source/blender/src/editobject.c +++ b/source/blender/src/editobject.c @@ -3205,14 +3205,12 @@ static void copymenu_properties(Object *ob) prop= prop->next; } - if(tot==0) { - error("No properties in the active object to copy"); - return; - } - str= MEM_callocN(50 + 33*tot, "copymenu prop"); - strcpy(str, "Copy Property %t|Replace All|Merge All|%l"); + if (tot) + strcpy(str, "Copy Property %t|Replace All|Merge All|%l"); + else + strcpy(str, "Copy Property %t|Clear All (no properties on active)"); tot= 0; prop= ob->prop.first; @@ -3526,7 +3524,8 @@ void copy_attr(short event) base->object->formfactor = ob->formfactor; base->object->damping= ob->damping; base->object->rdamping= ob->rdamping; - base->object->mass= ob->mass; + base->object->min_vel= ob->min_vel; + base->object->max_vel= ob->max_vel; if (ob->gameflag & OB_BOUNDS) { base->object->boundtype = ob->boundtype; } diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 5de2c4a2fe7..2ae47e47d74 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -1107,6 +1107,10 @@ static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blendero shapeProps->m_do_fh = (blenderobject->gameflag & OB_DO_FH) != 0; shapeProps->m_do_rot_fh = (blenderobject->gameflag & OB_ROT_FH) != 0; +// velocity clamping XXX + shapeProps->m_clamp_vel_min = blenderobject->min_vel; + shapeProps->m_clamp_vel_max = blenderobject->max_vel; + return shapeProps; } diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp index c621f11994a..831f9241fec 100644 --- a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp +++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp @@ -59,6 +59,24 @@ void KX_BulletPhysicsController::applyImpulse(const MT_Point3& attach, const MT_ } +float KX_BulletPhysicsController::GetLinVelocityMin() +{ + return (float)CcdPhysicsController::GetLinVelocityMin(); +} +void KX_BulletPhysicsController::SetLinVelocityMin(float val) +{ + CcdPhysicsController::SetLinVelocityMin(val); +} + +float KX_BulletPhysicsController::GetLinVelocityMax() +{ + return (float)CcdPhysicsController::GetLinVelocityMax(); +} +void KX_BulletPhysicsController::SetLinVelocityMax(float val) +{ + CcdPhysicsController::SetLinVelocityMax(val); +} + void KX_BulletPhysicsController::SetObject (SG_IObject* object) { SG_Controller::SetObject(object); @@ -73,6 +91,10 @@ void KX_BulletPhysicsController::SetObject (SG_IObject* object) } +MT_Scalar KX_BulletPhysicsController::GetRadius() +{ + return MT_Scalar(CcdPhysicsController::GetRadius()); +} void KX_BulletPhysicsController::setMargin (float collisionMargin) { @@ -176,11 +198,6 @@ MT_Vector3 KX_BulletPhysicsController::GetLocalInertia() return inertia; } -MT_Scalar KX_BulletPhysicsController::GetRadius() -{ - return MT_Scalar(CcdPhysicsController::GetRadius()); -} - MT_Vector3 KX_BulletPhysicsController::getReactionForce() { assert(0); diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.h b/source/gameengine/Ketsji/KX_BulletPhysicsController.h index 9821b3fd253..b39098206f7 100644 --- a/source/gameengine/Ketsji/KX_BulletPhysicsController.h +++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.h @@ -56,7 +56,11 @@ public: virtual SG_Controller* GetReplica(class SG_Node* destnode); virtual MT_Scalar GetRadius(); - + + virtual float GetLinVelocityMin(); + virtual void SetLinVelocityMin(float val); + virtual float GetLinVelocityMax(); + virtual void SetLinVelocityMax(float val); virtual void SetSumoTransform(bool nondynaonly); // todo: remove next line ! diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp index 03149859f4d..08e2ea30414 100644 --- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp +++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp @@ -801,6 +801,8 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj, ci.m_gravity = btVector3(0,0,0); ci.m_localInertiaTensor =btVector3(0,0,0); ci.m_mass = objprop->m_dyna ? shapeprops->m_mass : 0.f; + ci.m_clamp_vel_min = shapeprops->m_clamp_vel_min; + ci.m_clamp_vel_max = shapeprops->m_clamp_vel_max; ci.m_margin = objprop->m_margin; shapeInfo->m_radius = objprop->m_radius; isbulletdyna = objprop->m_dyna; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 16cf3d9ae32..a399d3b477a 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1086,6 +1086,8 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("name", KX_GameObject, pyattr_get_name), KX_PYATTRIBUTE_RO_FUNCTION("parent", KX_GameObject, pyattr_get_parent), KX_PYATTRIBUTE_RW_FUNCTION("mass", KX_GameObject, pyattr_get_mass, pyattr_set_mass), + KX_PYATTRIBUTE_RW_FUNCTION("linVelocityMin", KX_GameObject, pyattr_get_lin_vel_min, pyattr_set_lin_vel_min), + KX_PYATTRIBUTE_RW_FUNCTION("linVelocityMax", KX_GameObject, pyattr_get_lin_vel_max, pyattr_set_lin_vel_max), KX_PYATTRIBUTE_RW_FUNCTION("visible", KX_GameObject, pyattr_get_visible, pyattr_set_visible), KX_PYATTRIBUTE_BOOL_RW ("occlusion", KX_GameObject, m_bOccluder), KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_position, pyattr_set_position), @@ -1364,6 +1366,53 @@ int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrd return 0; } +PyObject* KX_GameObject::pyattr_get_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + return PyFloat_FromDouble(spc ? spc->GetLinVelocityMax() : 0.0f); +} + +int KX_GameObject::pyattr_set_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + MT_Scalar val = PyFloat_AsDouble(value); + if (val < 0.0f) { /* also accounts for non float */ + PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + return 1; + } + + if (spc) + spc->SetLinVelocityMin(val); + + return 0; +} + +PyObject* KX_GameObject::pyattr_get_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + return PyFloat_FromDouble(spc ? spc->GetLinVelocityMax() : 0.0f); +} + +int KX_GameObject::pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + KX_IPhysicsController *spc = self->GetPhysicsController(); + MT_Scalar val = PyFloat_AsDouble(value); + if (val < 0.0f) { /* also accounts for non float */ + PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + return 1; + } + + if (spc) + spc->SetLinVelocityMax(val); + + return 0; +} + + PyObject* KX_GameObject::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index c389d6cc776..94192580859 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -960,6 +960,10 @@ public: static PyObject* pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.h b/source/gameengine/Ketsji/KX_IPhysicsController.h index b7603203241..10b66da7b76 100644 --- a/source/gameengine/Ketsji/KX_IPhysicsController.h +++ b/source/gameengine/Ketsji/KX_IPhysicsController.h @@ -79,6 +79,12 @@ public: virtual void setScaling(const MT_Vector3& scaling)=0; virtual MT_Scalar GetMass()=0; virtual void SetMass(MT_Scalar newmass)=0; + + virtual float GetLinVelocityMin()=0; + virtual void SetLinVelocityMin(float newmass)=0; + virtual float GetLinVelocityMax()=0; + virtual void SetLinVelocityMax(float newmass)=0; + virtual MT_Vector3 GetLocalInertia()=0; virtual MT_Vector3 getReactionForce()=0; virtual void setRigidBody(bool rigid)=0; diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp index 2283968801f..0b9da8f46d3 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp @@ -584,7 +584,19 @@ bool CcdPhysicsController::SynchronizeMotionStates(float time) if (body && !body->isStaticObject()) { - + + if ((m_cci.m_clamp_vel_max>0.0) || (m_cci.m_clamp_vel_min>0.0)) + { + const btVector3& linvel = body->getLinearVelocity(); + float len= linvel.length(); + + if((m_cci.m_clamp_vel_max>0.0) && (len > m_cci.m_clamp_vel_max)) + body->setLinearVelocity(linvel * (m_cci.m_clamp_vel_max / len)); + + else if ((m_cci.m_clamp_vel_min>0.0) && btFuzzyZero(len)==0 && (len < m_cci.m_clamp_vel_min)) + body->setLinearVelocity(linvel * (m_cci.m_clamp_vel_min / len)); + } + const btVector3& worldPos = body->getCenterOfMassPosition(); m_MotionState->setWorldPosition(worldPos[0],worldPos[1],worldPos[2]); diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index 245cde2baaa..c7638b36728 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -214,6 +214,8 @@ struct CcdConstructionInfo m_gravity(0,0,0), m_scaling(1.f,1.f,1.f), m_mass(0.f), + m_clamp_vel_min(-1.f), + m_clamp_vel_max(-1.f), m_restitution(0.1f), m_friction(0.5f), m_linearDamping(0.1f), @@ -239,6 +241,8 @@ struct CcdConstructionInfo btVector3 m_gravity; btVector3 m_scaling; btScalar m_mass; + btScalar m_clamp_vel_min; + btScalar m_clamp_vel_max; btScalar m_restitution; btScalar m_friction; btScalar m_linearDamping; @@ -479,7 +483,24 @@ class CcdPhysicsController : public PHY_IPhysicsController } m_cci.m_radius = margin; } - + + // velocity clamping + virtual void SetLinVelocityMin(float val) + { + m_cci.m_clamp_vel_min= val; + } + virtual float GetLinVelocityMin() const + { + return m_cci.m_clamp_vel_min; + } + virtual void SetLinVelocityMax(float val) + { + m_cci.m_clamp_vel_max= val; + } + virtual float GetLinVelocityMax() const + { + return m_cci.m_clamp_vel_max; + } bool wantsSleeping(); diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.h b/source/gameengine/Physics/common/PHY_IPhysicsController.h index 6cba6fa88af..770426b48db 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsController.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsController.h @@ -90,6 +90,12 @@ class PHY_IPhysicsController : public PHY_IController virtual float GetMargin() const=0; virtual float GetRadius() const=0; virtual void SetRadius(float margin) = 0; + + virtual float GetLinVelocityMin() const=0; + virtual void SetLinVelocityMin(float val) = 0; + virtual float GetLinVelocityMax() const=0; + virtual void SetLinVelocityMax(float val) = 0; + PHY__Vector3 GetWorldPosition(PHY__Vector3& localpos); }; diff --git a/source/gameengine/Physics/common/PHY_Pro.h b/source/gameengine/Physics/common/PHY_Pro.h index 32e63ac2f6d..0249fc3118a 100644 --- a/source/gameengine/Physics/common/PHY_Pro.h +++ b/source/gameengine/Physics/common/PHY_Pro.h @@ -35,9 +35,11 @@ struct PHY_ShapeProps { MT_Scalar m_mass; // Total mass MT_Scalar m_inertia; // Inertia, should be a tensor some time - MT_Scalar m_lin_drag; // Linear drag (air, water) 0 = concrete, 1 = vacuum - MT_Scalar m_ang_drag; // Angular drag + MT_Scalar m_lin_drag; // Linear drag (air, water) 0 = concrete, 1 = vacuum, inverted and called dampening in blenders UI + MT_Scalar m_ang_drag; // Angular drag, inverted and called dampening in blenders UI MT_Scalar m_friction_scaling[3]; // Scaling for anisotropic friction. Component in range [0, 1] + MT_Scalar m_clamp_vel_min; // Clamp the minimum velocity, this ensures an object moves at a minimum speed unless its stationary + MT_Scalar m_clamp_vel_max; // Clamp max velocity bool m_do_anisotropic; // Should I do anisotropic friction? bool m_do_fh; // Should the object have a linear Fh spring? bool m_do_rot_fh; // Should the object have an angular Fh spring? diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index fa4641c3e2f..44b84d44d8d 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -16,8 +16,18 @@ class KX_GameObject: # (SCA_IObject) @ivar name: The object's name. (Read only) - note: Currently (Blender 2.49) the prefix "OB" is added to all objects name. This may change in blender 2.5. @type name: string. - @ivar mass: The object's mass (provided the object has a physics controller). + @ivar mass: The object's mass + - note: The object must have a physics controller for the mass to be applied, otherwise the mass value will be returned as 0.0 @type mass: float + @ivar linVelocityMin: Enforces the object keeps moving at a minimum velocity. + - note: Applies to dynamic and rigid body objects only. + - note: A value of 0.0 disables this option. + - note: While objects are stationary the minimum velocity will not be applied. + @type linVelocityMin: float + @ivar linVelocityMax: Clamp the maximum linear velocity to prevent objects moving beyond a set speed. + - note: Applies to dynamic and rigid body objects only. + - note: A value of 0.0 disables this option (rather then setting it stationary). + @type linVelocityMax: float @ivar localInertia: the object's inertia vector in local coordinates. Read only. @type localInertia: list [ix, iy, iz] @ivar parent: The object's parent object. (Read only) @@ -35,7 +45,7 @@ class KX_GameObject: # (SCA_IObject) @type scaling: list [sx, sy, sz] @ivar timeOffset: adjust the slowparent delay at runtime. @type timeOffset: float - @ivar state: the game object's state bitmask. + @ivar state: the game object's state bitmask, using the first 30 bits, one bit must always be set. @type state: int @ivar meshes: a list meshes for this object. - note: Most objects use only 1 mesh. From bcabc596c9a50dc5c604648c3e83f06eb079d2e2 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 14 Apr 2009 17:13:21 +0000 Subject: [PATCH 156/201] Bugfix #18108 Another bug in the 'radius per vertex' feature in curves. If you set front/back face off for curves, and make it bevel or give depth, the curves should draw as tubes. This feature didn't work in 2.48 either... Still unsure about this implementation, campbell can check! --- source/blender/blenkernel/BKE_curve.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h index a8d4ece7a21..79f4708fd41 100644 --- a/source/blender/blenkernel/BKE_curve.h +++ b/source/blender/blenkernel/BKE_curve.h @@ -47,7 +47,7 @@ struct BevList; #define SEGMENTSV(nu) ( ((nu)->flagv & CU_CYCLIC) ? (nu)->pntsv : (nu)->pntsv-1 ) #define CU_DO_TILT(cu, nu) (((nu->type & CU_2D) && (cu->flag & CU_3D)==0) ? 0 : 1) -#define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || cu->bevobj) ? 1:0) +#define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || cu->bevobj || cu->ext1!=0.0 || cu->ext2!=0.0) ? 1:0) void unlink_curve( struct Curve *cu); From c62dfc498d240dfa09ec0365dbfb0f56e307ad43 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 14 Apr 2009 17:19:09 +0000 Subject: [PATCH 157/201] [#18517] Python scripts segfault on loading own error, EXPP_incr_ret from a macro was an implicit decloration in BGL.c For some reason this only crashed on 64bit linux To my defence the BGE makes so many warnings that they become usless, need to improve the situation here at some point. --- source/blender/python/api2_2x/BGL.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/BGL.h b/source/blender/python/api2_2x/BGL.h index 89e56811b29..bad6330dd8d 100644 --- a/source/blender/python/api2_2x/BGL.h +++ b/source/blender/python/api2_2x/BGL.h @@ -304,7 +304,8 @@ typedef struct _Buffer { #define ret_def_void #define ret_set_void -#define ret_ret_void return EXPP_incr_ret(Py_None) +/* would use Py_RETURN_NONE - except for py 2.3 doesnt have it */ +#define ret_ret_void { Py_INCREF(Py_None); return Py_None; } #define ret_def_GLint int ret_int #define ret_set_GLint ret_int= From bc355482ab5963f8dc4fff3cbaf35d0384c9d8df Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 14 Apr 2009 17:22:14 +0000 Subject: [PATCH 158/201] BGE: Keep Sumo and ODE in sync with Bullet at API level, fix a compilation problem in MSVC. --- source/gameengine/Ketsji/KX_OdePhysicsController.h | 4 ++++ source/gameengine/Ketsji/KX_SumoPhysicsController.h | 4 ++++ source/gameengine/Physics/BlOde/OdePhysicsController.h | 4 ++++ source/gameengine/Physics/Sumo/SumoPhysicsController.h | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/source/gameengine/Ketsji/KX_OdePhysicsController.h b/source/gameengine/Ketsji/KX_OdePhysicsController.h index e3b5336c0b5..21b7e632d83 100644 --- a/source/gameengine/Ketsji/KX_OdePhysicsController.h +++ b/source/gameengine/Ketsji/KX_OdePhysicsController.h @@ -82,6 +82,10 @@ public: virtual SG_Controller* GetReplica(class SG_Node* destnode); + virtual float GetLinVelocityMin() { return ODEPhysicsController::GetLinVelocityMin(); } + virtual void SetLinVelocityMin(float val) { ODEPhysicsController::SetLinVelocityMin(val); } + virtual float GetLinVelocityMax() { return ODEPhysicsController::GetLinVelocityMax(); } + virtual void SetLinVelocityMax(float val) { ODEPhysicsController::SetLinVelocityMax(val); } virtual void SetSumoTransform(bool nondynaonly); // todo: remove next line ! diff --git a/source/gameengine/Ketsji/KX_SumoPhysicsController.h b/source/gameengine/Ketsji/KX_SumoPhysicsController.h index 8762612eca2..083d89896f6 100644 --- a/source/gameengine/Ketsji/KX_SumoPhysicsController.h +++ b/source/gameengine/Ketsji/KX_SumoPhysicsController.h @@ -93,6 +93,10 @@ public: virtual MT_Vector3 getReactionForce(); virtual void setRigidBody(bool rigid); + virtual float GetLinVelocityMin() { return SumoPhysicsController::GetLinVelocityMin(); } + virtual void SetLinVelocityMin(float val) { SumoPhysicsController::SetLinVelocityMin(val); } + virtual float GetLinVelocityMax() { return SumoPhysicsController::GetLinVelocityMax(); } + virtual void SetLinVelocityMax(float val) { SumoPhysicsController::SetLinVelocityMax(val); } virtual SG_Controller* GetReplica(class SG_Node* destnode); diff --git a/source/gameengine/Physics/BlOde/OdePhysicsController.h b/source/gameengine/Physics/BlOde/OdePhysicsController.h index 925f5b6686a..e97afdb68c3 100644 --- a/source/gameengine/Physics/BlOde/OdePhysicsController.h +++ b/source/gameengine/Physics/BlOde/OdePhysicsController.h @@ -124,6 +124,10 @@ public: float getFriction() { return m_friction;} float getRestitution() { return m_restitution;} + float GetLinVelocityMin() const { return 0.f; } + void SetLinVelocityMin(float val) { } + float GetLinVelocityMax() const { return 0.f; } + void SetLinVelocityMax(float val) { } private: diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsController.h b/source/gameengine/Physics/Sumo/SumoPhysicsController.h index d8ee54935d7..415bc1e3982 100644 --- a/source/gameengine/Physics/Sumo/SumoPhysicsController.h +++ b/source/gameengine/Physics/Sumo/SumoPhysicsController.h @@ -144,6 +144,11 @@ public: void GetWorldPosition(MT_Point3& pos); void GetWorldScaling(MT_Vector3& scale); + float GetLinVelocityMin() const { return 0.f; } + void SetLinVelocityMin(float val) { } + float GetLinVelocityMax() const { return 0.f; } + void SetLinVelocityMax(float val) { } + // void SetSumoObject(class SM_Object* sumoObj) { // m_sumoObj = sumoObj; From 494f0fa4e7d5df3dee34aa61338b7c2010477bb5 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 14 Apr 2009 20:54:04 +0000 Subject: [PATCH 159/201] BGE bug #18522 fixed: Dupligroup offsets don't work in BGE. --- source/gameengine/Ketsji/KX_Scene.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 98c129ebca5..2bfa767dc3b 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -717,9 +717,9 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level) MT_Matrix3x3 newori = groupobj->NodeGetWorldOrientation() * gameobj->NodeGetWorldOrientation(); replica->NodeSetLocalOrientation(newori); - + MT_Point3 offset(group->dupli_ofs); MT_Point3 newpos = groupobj->NodeGetWorldPosition() + - newscale*(groupobj->NodeGetWorldOrientation() * gameobj->NodeGetWorldPosition()); + newscale*(groupobj->NodeGetWorldOrientation() * (gameobj->NodeGetWorldPosition()-offset)); replica->NodeSetLocalPosition(newpos); replica->GetSGNode()->UpdateWorldData(0); From a277b979f224d8148994ac1532e27d51e6e5100c Mon Sep 17 00:00:00 2001 From: Remigiusz Fiedler Date: Tue, 14 Apr 2009 23:57:14 +0000 Subject: [PATCH 160/201] v1.29 - 2008.12.28 by Yorik van Havre - modif POLYLINE to support bulge segments --- release/scripts/bpymodules/dxfLibrary.py | 59 ++++++++++++++++-------- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/release/scripts/bpymodules/dxfLibrary.py b/release/scripts/bpymodules/dxfLibrary.py index 96caa50cc41..5390be084ee 100644 --- a/release/scripts/bpymodules/dxfLibrary.py +++ b/release/scripts/bpymodules/dxfLibrary.py @@ -1,6 +1,6 @@ #dxfLibrary.py : provides functions for generating DXF files # -------------------------------------------------------------------------- -__version__ = "v1.28beta - 2008.12.13" +__version__ = "v1.29beta - 2008.12.28" __author__ = "Stani Michiels(Stani), Remigiusz Fiedler(migius)" __license__ = "GPL" __url__ = "http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_dxf" @@ -18,9 +18,11 @@ IDEAs: - TODO: -- add support for SPLINEs +- add support for SPLINEs, (bad idea, cause DXF r14 object :( History +v1.29 - 2008.12.28 by Yorik +- modif POLYLINE to support bulge segments v1.28 - 2008.12.13 by Steeve/BlenderArtists - bugfix for EXTMIN/EXTMAX to suit Cycas-CAD v1.27 - 2008.10.07 by migius @@ -297,41 +299,60 @@ class Line(_Entity): #----------------------------------------------- class PolyLine(_Entity): def __init__(self,points,org_point=[0,0,0],flag=0,width=None,**common): + #width = number, or width = list [width_start=None, width_end=None] + #for 2d-polyline: points = [ [x, y, z, width_start=None, width_end=None, bulge=0 or None], ...] + #for 3d-polyline: points = [ [x, y, z], ...] + #for polyface: points = [points_list, faces_list] _Entity.__init__(self,**common) self.points=points self.org_point=org_point self.flag=flag - if self.flag==64: + if self.flag & POLYFACE_MESH: + self.polyface=True self.points=points[0] self.faces=points[1] self.p_count=len(self.points) self.f_count=len(self.faces) - self.width=width + elif not self.flag & POLYLINE_3D: + self.polyline2d = True + if width: + if type(width)!='list': + width=[width,width] + self.width=width def __str__(self): result= ' 0\nPOLYLINE\n%s 70\n%s\n' %(self._common(),self.flag) #print 'deb: self._common()', self._common() #---------- result+=' 66\n1\n' result+='%s\n' %_point(self.org_point) - if self.flag==64: + if self.polyface: result+=' 71\n%s\n' %self.p_count result+=' 72\n%s\n' %self.f_count + elif self.polyline2d: + if self.width: result+=' 40\n%s\n 41\n%s\n' %(self.width[0],self.width[1]) for point in self.points: result+=' 0\nVERTEX\n' result+=' 8\n%s\n' %self.layer - result+='%s\n' %_point(point) - if self.flag==64: result+=' 70\n192\n' - if self.width: result+=' 40\n%s\n 41\n%s\n' %(self.width,self.width) - if self.flag==64: - for face in self.faces: - result+=' 0\nVERTEX\n' - result+=' 8\n%s\n' %self.layer - result+='%s\n' %_point(self.org_point) - result+=' 70\n128\n' - result+=' 71\n%s\n' %face[0] - result+=' 72\n%s\n' %face[1] - result+=' 73\n%s\n' %face[2] - if len(face)==4: result+=' 74\n%s\n' %face[3] + result+='%s\n' %_point(point[0:2]) + if self.polyface: + result+=' 70\n192\n' + elif self.polyline2d: + if len(point)>4: + width1, width2 = point[3], point[4] + if width1!=None: result+=' 40\n%s\n' %width1 + if width2!=None: result+=' 41\n%s\n' %width2 + if len(point)==6: + bulge = point[5] + if bulge: result+=' 42\n%s\n' %bulge + for face in self.faces: + result+=' 0\nVERTEX\n' + result+=' 8\n%s\n' %self.layer + result+='%s\n' %_point(self.org_point) + result+=' 70\n128\n' + result+=' 71\n%s\n' %face[0] + result+=' 72\n%s\n' %face[1] + result+=' 73\n%s\n' %face[2] + if len(face)==4: result+=' 74\n%s\n' %face[3] result+=' 0\nSEQEND\n' result+=' 8\n%s\n' %self.layer return result @@ -711,5 +732,5 @@ def test(): if __name__=='__main__': if not copy: Draw.PupMenu('Error%t|This script requires a full python install') - main() + else: main() \ No newline at end of file From 4fe917ba2607f79cd60bbe373ef06d8e8c8aeacd Mon Sep 17 00:00:00 2001 From: Remigiusz Fiedler Date: Wed, 15 Apr 2009 01:37:50 +0000 Subject: [PATCH 161/201] update for DXF-Importer v1.12, DXF-Exporter v1.29 - 2009.04.11 by migius - added DWG support, adapted Stani Michiels idea for binding an extern DXF-DWG-converter The external DXF-DWG converter "dconvertcon.exe" 355kb comes from openDesignAlliance www.opendwg.org, is free, but not opensource, not GPL-compatible (can not be bundled with commercial programs), so must be downloaded and installed in Blender script folder by user. It is a DOS console application, can be started in background mode, works on Windows, and in Wine on Linux and OSX. Version 1.0 (2002) supports conversion between DXF<->DWG for autocad release: 2.5, 2.6, 9, 10, 11, 12, 13, 14, 2000, 2002. --- release/scripts/export_dxf.py | 195 ++++++++++++++++++++++----- release/scripts/import_dxf.py | 245 ++++++++++++++++++++++------------ 2 files changed, 320 insertions(+), 120 deletions(-) diff --git a/release/scripts/export_dxf.py b/release/scripts/export_dxf.py index 061e29b81c7..99c6acaceab 100644 --- a/release/scripts/export_dxf.py +++ b/release/scripts/export_dxf.py @@ -1,14 +1,14 @@ #!BPY """ - Name: 'Autodesk DXF (.dxf)' + Name: 'Autodesk (.dxf .dwg)' Blender: 247 Group: 'Export' - Tooltip: 'Export geometry to DXF-r12 (Drawing eXchange Format).' + Tooltip: 'Export geometry to Autocad DXF/DWG-r12 (Drawing eXchange Format).' """ -__version__ = "v1.27beta - 2008.10.07" -__author__ = "Remigiusz Fiedler (AKA migius)" +__version__ = "v1.29 - 2009.04.11" +__author__ = "Remigiusz Fiedler (AKA migius), Alexandros Sigalas (AKA alxarch), Stani Michiels" __license__ = "GPL" __url__ = "http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_dxf" __bpydoc__ ="""The script exports Blender geometry to DXF format r12 version. @@ -25,8 +25,9 @@ url: %s IDEAs: - correct normals for POLYLINE-POLYFACE via proper point-order - HPGL output for 2d and flattened 3d content - + TODO: +- export dupligroups and dupliverts as blocks ( option for the user to decide ) - optimize back-faces removal (probably needs matrix transform) - optimize POLYFACE routine: remove double-vertices - optimize POLYFACE routine: remove unused vertices @@ -36,6 +37,11 @@ TODO: - write drawing extends for automatic view positioning in CAD History +v1.29 - 2009.04.11 by migius +- added DWG support, Stani Michiels idea for binding an extern DXF-DWG-converter +v1.28 - 2009.02.05 by alxarch +- added option to apply modifiers on exported meshes +- added option to also export duplicates (from dupliverts etc) v1.27 - 2008.10.07 by migius - exclude Stani's DXF-Library to extern module v1.26 - 2008.10.05 by migius @@ -86,14 +92,95 @@ ______________________________________________________________ import Blender -from Blender import Mathutils, Window, Scene, sys, Draw +from Blender import Mathutils, Window, Scene, sys, Draw, Mesh import BPyMessages +import os +import subprocess + +#print os.sys.platform +#print dir(os.sys.version) #import dxfLibrary #reload(dxfLibrary) from dxfLibrary import * +#-------- DWG support ------------------------------------------ +extCONV_OK = True +extCONV = 'DConvertCon.exe' +extCONV_PATH = os.path.join(Blender.Get('scriptsdir'),extCONV) +if not os.path.isfile(extCONV_PATH): + extCONV_OK = False + extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\ +Copy first %s into Blender script directory.|\ +More details in online Help.' %extCONV +else: + if not os.sys.platform.startswith('win'): + # check if Wine installed: + if subprocess.Popen(('which', 'winepath'), stdout=subprocess.PIPE).stdout.read().strip(): + extCONV_PATH = 'wine %s'%extCONV_PATH + else: + extCONV_OK = False + extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\ +The external DWG-converter (%s) needs Wine installed on your system.|\ +More details in online Help.' %extCONV +#print 'extCONV_PATH = ', extCONV_PATH + + + +#----------------------------------------------------- +def dupTest(object): + """ + Checks objects for duplicates enabled (any type) + object: Blender Object. + Returns: Boolean - True if object has any kind of duplicates enabled. + """ + if (object.enableDupFrames or \ + object.enableDupGroup or \ + object.enableDupVerts): + return True + else: + return False + +def getObjectsAndDuplis(oblist,MATRICES=False,HACK=False): + """ + Return a list of real objects and duplicates and optionally their matrices + oblist: List of Blender Objects + MATRICES: Boolean - Check to also get the objects matrices default=False + HACK: Boolean - See note default=False + Returns: List of objects or + List of tuples of the form:(ob,matrix) if MATRICES is set to True + NOTE: There is an ugly hack here that excludes all objects whose name + starts with "dpl_" to exclude objects that are parented to a duplicating + object, User must name objects properly if hack is used. + """ + + result = [] + for ob in oblist: + if dupTest(ob): + dup_obs=ob.DupObjects + if len(dup_obs): + for dup_ob, dup_mx in dup_obs: + if MATRICES: + result.append((dup_ob,dup_mx)) + else: + result.append(dup_ob) + else: + if HACK: + if ob.getName()[0:4] != "dpl_": + if MATRICES: + mx = ob.mat + result.append((ob,mx)) + else: + result.append(ob) + else: + if MATRICES: + mx = ob.mat + result.append((ob,mx)) + else: + result.append(ob) + return result + #----------------------------------------------------- def hidden_status(faces, mx_n): #print 'HIDDEN_MODE: caution! not full implemented yet' @@ -146,9 +233,13 @@ def flatten(points, mw): return points #----------------------------------------------------- -def exportMesh(ob, mx, mx_n): +def exportMesh(ob, mx, mx_n,me=None): entities = [] - me = ob.getData(mesh=1) + global APPLY_MODIFIERS + if me is None: + me = ob.getData(mesh=1) + else: + me.getFromObject(ob) #me.transform(mx) # above is eventualy faster, but bad, cause # directly transforms origin geometry and write back rounding errors @@ -209,7 +300,7 @@ def exportMesh(ob, mx, mx_n): points = [ me_verts[key].co[:3] for key in e] dxfLINE = Line(points) entities.append(dxfLINE) - + else: for e in me.edges: #print 'deb: edge=', e #--------- @@ -257,7 +348,7 @@ def exportCurve(ob, mx): return entities #----------------------------------------------------- -def do_export(sel_group, filepath): +def do_export(export_list, filepath): Window.WaitCursor(1) t = sys.time() @@ -281,22 +372,27 @@ def do_export(sel_group, filepath): m0[2][2]=0.0 mw *= m0 #flatten ViewMatrix - for ob in sel_group: + if APPLY_MODIFIERS: + tmp_me = Mesh.New('tmp') + else: + tmp_me = None + + for ob,mx in export_list: entities = [] - mx = ob.matrix.copy() + #mx = ob.matrix.copy() mb = mx.copy() #print 'deb: mb =\n', mb #--------- #print 'deb: mw0 =\n', mw0 #--------- mx_n = mx.rotationPart() * mw0.rotationPart() #trans-matrix for normal_vectors if SCALE_FACTOR!=1.0: mx *= SCALE_FACTOR if FLATTEN: mx *= mw - + #mx_inv = mx.copy().invert() #print 'deb: mx =\n', mx #--------- #print 'deb: mx_inv=\n', mx_inv #--------- if (ob.type == 'Mesh'): - entities = exportMesh(ob, mx, mx_n) + entities = exportMesh(ob, mx, mx_n,tmp_me) elif (ob.type == 'Curve'): entities = exportCurve(ob, mx) @@ -305,11 +401,30 @@ def do_export(sel_group, filepath): something_ready = True if something_ready: - d.saveas(filepath) - Window.WaitCursor(0) - #Draw.PupMenu('DXF Exporter: job finished') - print 'exported to %s' % filepath - print 'finished in %.2f seconds' % (sys.time()-t) + if not OUTPUT_DWG: + print 'exporting to %s' % filepath + d.saveas(filepath) + Window.WaitCursor(0) + #Draw.PupMenu('DXF Exporter: job finished') + print ' finished in %.2f seconds. -----DONE-----' % (sys.time()-t) + else: + if not extCONV_OK: + Draw.PupMenu(extCONV_TEXT) + Window.WaitCursor(False) + else: + print 'temp. exporting to %s' % filepath + d.saveas(filepath) + #Draw.PupMenu('DXF Exporter: job finished') + #print 'exported to %s' % filepath + #print 'finished in %.2f seconds' % (sys.time()-t) + filedwg = filepath[:-3]+'dwg' + print 'exporting to %s' % filedwg + os.system('%s %s -acad13 -dwg' %(extCONV_PATH,filepath)) + #os.chdir(cwd) + os.remove(filepath) + Window.WaitCursor(0) + print ' finished in %.2f seconds. -----DONE-----' % (sys.time()-t) + else: Window.WaitCursor(0) print "Abort: selected objects dont mach choosen export option, nothing exported!" @@ -323,8 +438,9 @@ POLYFACES = 1 FLATTEN = 0 HIDDEN_MODE = False #filter out hidden lines SCALE_FACTOR = 1.0 #optional, can be done later in CAD too - - +APPLY_MODIFIERS = True +INCLUDE_DUPLIS = False +OUTPUT_DWG = False #optional save to DWG with extern converter #----------------------------------------------------- def dxf_export_ui(filepath): @@ -334,9 +450,12 @@ def dxf_export_ui(filepath): POLYFACES,\ FLATTEN,\ HIDDEN_MODE,\ - SCALE_FACTOR + SCALE_FACTOR,\ + APPLY_MODIFIERS,\ + OUTPUT_DWG,\ + INCLUDE_DUPLIS - print '\n\nDXF-Export %s -----------------------' %__version__ + print '\n\nDXF-Export %s -----------START-----------' %__version__ #filepath = 'blend_test.dxf' # Dont overwrite if not BPyMessages.Warning_SaveOver(filepath): @@ -352,19 +471,26 @@ def dxf_export_ui(filepath): PREF_FLATTEN= Draw.Create(FLATTEN) PREF_HIDDEN_MODE= Draw.Create(HIDDEN_MODE) PREF_SCALE_FACTOR= Draw.Create(SCALE_FACTOR) + PREF_APPLY_MODIFIERS= Draw.Create(APPLY_MODIFIERS) + PREF_INCLUDE_DUPLIS= Draw.Create(INCLUDE_DUPLIS) PREF_HELP= Draw.Create(0) + PREF_DWG= Draw.Create(OUTPUT_DWG) block = [\ ("only selected", PREF_ONLYSELECTED, "export only selected geometry"),\ + ("Apply Modifiers", PREF_APPLY_MODIFIERS, "Apply modifier stack to mesh objects before export"),\ + ("Include Duplis", PREF_INCLUDE_DUPLIS, "Export also Duplicates (dupliverts, dupliframes etc)"),\ ("global Scale:", PREF_SCALE_FACTOR, 0.001, 1000, "set global Scale factor for exporting geometry"),\ - ("only faces", PREF_ONLYFACES, "from mesh-objects export only faces, otherwise only edges"),\ - ("write POLYFACE", PREF_POLYFACES, "export mesh to POLYFACE, otherwise to 3DFACEs"),\ - ("write POLYLINEs", PREF_POLYLINES, "export curve to POLYLINE, otherwise to LINEs"),\ + (''),\ + ("export to 3DFaces", PREF_ONLYFACES, "from mesh-objects export only faces, otherwise only edges"),\ + ("mesh to POLYFACE", PREF_POLYFACES, "export mesh to POLYFACE, otherwise to 3DFACEs"),\ + ("curves to POLYLINEs", PREF_POLYLINES, "export curve to POLYLINE, otherwise to LINEs"),\ ("3D-View to Flat", PREF_FLATTEN, "flatten geometry according current 3d-View"),\ ("Hidden Mode", PREF_HIDDEN_MODE, "filter out hidden lines"),\ - #(''),\ ("online Help", PREF_HELP, "calls DXF-Exporter Manual Page on Wiki.Blender.org"),\ + (''),\ + ("DXF->DWG", PREF_DWG, "writes DWG with extern converter"),\ ] - + if not Draw.PupBlock("DXF-Exporter %s" %__version__[:10], block): return if PREF_HELP.val!=0: @@ -372,7 +498,7 @@ def dxf_export_ui(filepath): import webbrowser webbrowser.open('http://wiki.blender.org/index.php?title=Scripts/Manual/Export/autodesk_dxf') except: - Draw.PupMenu('DXF Exporter: %t|no connection to manual-page on Blender-Wiki! try:|\ + Draw.PupMenu('DXF Exporter: %t|no connection to manual-page on Blender-Wiki! try:|\ http://wiki.blender.org/index.php?title=Scripts/Manual/Export/autodesk_dxf') return @@ -383,12 +509,14 @@ http://wiki.blender.org/index.php?title=Scripts/Manual/Export/autodesk_dxf') FLATTEN = PREF_FLATTEN.val HIDDEN_MODE = PREF_HIDDEN_MODE.val SCALE_FACTOR = PREF_SCALE_FACTOR.val - + OUTPUT_DWG = PREF_DWG.val + sce = Scene.GetCurrent() if ONLYSELECTED: sel_group = sce.objects.selected else: sel_group = sce.objects + export_list = getObjectsAndDuplis(sel_group,MATRICES=True) - if sel_group: do_export(sel_group, filepath) + if export_list: do_export(export_list, filepath) else: print "Abort: selection was empty, no object to export!" Draw.PupMenu('DXF Exporter: nothing exported!|empty selection!') @@ -401,7 +529,4 @@ if __name__=='__main__': #main() if not copy: Draw.PupMenu('Error%t|This script requires a full python install') - Window.FileSelector(dxf_export_ui, 'EXPORT DXF', sys.makename(ext='.dxf')) - - - \ No newline at end of file + else: Window.FileSelector(dxf_export_ui, 'EXPORT DXF', sys.makename(ext='.dxf')) \ No newline at end of file diff --git a/release/scripts/import_dxf.py b/release/scripts/import_dxf.py index c3203891c60..ceb4dd56722 100644 --- a/release/scripts/import_dxf.py +++ b/release/scripts/import_dxf.py @@ -1,20 +1,21 @@ #!BPY """ -Name: 'Autodesk DXF (.dxf)' +Name: 'Autodesk DXF (.dxf .dwg)' Blender: 246 Group: 'Import' -Tooltip: 'Import for DXF geometry data (Drawing eXchange Format).' +Tooltip: 'Import for DWG/DXF geometry data.' """ __author__ = 'Kitsu(Ed Blake) & migius(Remigiusz Fiedler)' -__version__ = '1.12 - 2009.03.14 by migius' +__version__ = '1.12 - 2009.04.11 by migius' __url__ = ["http://blenderartists.org/forum/showthread.php?t=84319", "http://wiki.blender.org/index.php/Scripts/Manual/Import/DXF-3D"] __email__ = ["migius(at)4d-vectors.de","Kitsune_e(at)yahoo.com"] __bpydoc__ = """\ -This script imports objects from DXF (2d/3d) into Blender. +This script imports objects from DWG/DXF (2d/3d) into Blender. This script imports 2d and 3d geometery from DXF files. +It supports DWG format too, with help of an external converter. Supported DXF format versions: from (r2.5) r12 up to r2008. Enhanced features are: - configurable object filtering and geometry manipulation, @@ -111,6 +112,8 @@ History: -- support ortho mode for VIEWs and VPORTs as cameras + v1.12 - 2009.04.11 by migius + d4 added DWG support, Stani Michiels idea for binding an extern DXF-DWG-converter v1.12 - 2009.03.14 by migius d3 removed all set()functions (problem with osx/python<2.4 reported by Blinkozo) d3 code-cleaning @@ -305,7 +308,8 @@ History: # -------------------------------------------------------------------------- import Blender -from Blender import * +from Blender import Mathutils, BezTriple, Draw, Registry, sys,\ +Text3d, Window, Mesh, Material, Group #from Blender.Mathutils import Vector, Matrix #import bpy #not used yet #import BPyMessages @@ -314,7 +318,7 @@ from dxfReader import readDXF #from dxfReader import get_name, get_layer from dxfReader import Object as dxfObject from dxfColorMap import color_map -from math import * +from math import log10, sqrt, radians, degrees, atan, cos, sin # osx-patch by Blinkozo #todo: avoid additional modules, prefer Blender-build-in test routines @@ -325,9 +329,10 @@ from math import * #ver = '%s.%s' % version_info[0:2] # end osx-patch -try: - import os - if os.name != 'mac': +import subprocess +import os +if os.name != 'mac': + try: import psyco psyco.log(Blender.Get('tempdir')+"/blender.log-psyco") #psyco.log() @@ -335,14 +340,13 @@ try: psyco.profile(0.05, memory=100) psyco.profile(0.2) #print 'psyco imported' -except ImportError: - print 'psyco not imported' - pass + except ImportError: + print 'psyco not imported' #try: Curve.orderU print '\n\n\n' -print 'DXF-Importer v%s *** start ***' %(__version__) #--------------------- +print 'DXF/DWG-Importer v%s *** start ***' %(__version__) #--------------------- SCENE = None WORLDX = Mathutils.Vector((1,0,0)) @@ -386,6 +390,29 @@ FREE = BezTriple.HandleTypes.FREE VECT = BezTriple.HandleTypes.VECT ALIGN = BezTriple.HandleTypes.ALIGN +UI_MODE = True #activates UI-popup-print, if not multiple files imported + + +#-------- DWG support ------------------------------------------ +extCONV_OK = True +extCONV = 'DConvertCon.exe' +extCONV_PATH = os.path.join(Blender.Get('scriptsdir'),extCONV) +if not os.path.isfile(extCONV_PATH): + extCONV_OK = False + extCONV_TEXT = 'DWG-Importer cant find external DWG-converter (%s) in Blender script directory.|\ +More details in online Help.' %extCONV +else: + if not os.sys.platform.startswith('win'): + # check if Wine installed: + if subprocess.Popen(('which', 'winepath'), stdout=subprocess.PIPE).stdout.read().strip(): + extCONV_PATH = 'wine %s'%extCONV_PATH + else: + extCONV_OK = False + extCONV_TEXT = 'The external DWG-converter (%s) needs Wine installed on your system.|\ +More details in online Help.' %extCONV +#print 'extCONV_PATH = ', extCONV_PATH + + class View: #----------------------------------------------------------------- """Class for objects representing dxf VIEWs. @@ -754,7 +781,7 @@ class Solid: #----------------------------------------------------------------- if settings.var['vGroup_on'] and not M_OBJ: # each MeshSide becomes vertexGroup for easier material assignment --------------------- - replace = Blender.Mesh.AssignModes.ADD #or .AssignModes.ADD/REPLACE + replace = Mesh.AssignModes.ADD #or .AssignModes.ADD/REPLACE if vg_left: me.addVertGroup('side.left') ; me.assignVertsToGroup('side.left', vg_left, 1.0, replace) if vg_right:me.addVertGroup('side.right') ; me.assignVertsToGroup('side.right', vg_right, 1.0, replace) if vg_top: me.addVertGroup('side.top') ; me.assignVertsToGroup('side.top', vg_top, 1.0, replace) @@ -899,7 +926,7 @@ class Line: #----------------------------------------------------------------- ob.link(me) # link mesh to that object vG_name = 'color_%s' %self.color_index if edges: faces = edges - replace = Blender.Mesh.AssignModes.ADD #or .AssignModes.REPLACE or ADD + replace = Mesh.AssignModes.ADD #or .AssignModes.REPLACE or ADD try: me.assignVertsToGroup(vG_name, faces[0], 1.0, replace) #print 'deb: existed vGroup:', vG_name #--------------------- @@ -1792,7 +1819,7 @@ class Polyline: #-------------------------------------------------------------- # which may be linked to more than one object. if settings.var['vGroup_on'] and not M_OBJ: # each MeshSide becomes vertexGroup for easier material assignment --------------------- - replace = Blender.Mesh.AssignModes.REPLACE #or .AssignModes.ADD + replace = Mesh.AssignModes.REPLACE #or .AssignModes.ADD vg_left, vg_right, vg_top, vg_bottom = [], [], [], [] for v in f_left: vg_left.extend(v) for v in f_right: vg_right.extend(v) @@ -2640,7 +2667,7 @@ class Circle: #---------------------------------------------------------------- # each MeshSide becomes vertexGroup for easier material assignment --------------------- if settings.var['vGroup_on'] and not M_OBJ: # each MeshSide becomes vertexGroup for easier material assignment --------------------- - replace = Blender.Mesh.AssignModes.REPLACE #or .AssignModes.ADD + replace = Mesh.AssignModes.REPLACE #or .AssignModes.ADD vg_band, vg_top, vg_bottom = [], [], [] for v in f_band: vg_band.extend(v) me.addVertGroup('side.band') ; me.assignVertsToGroup('side.band', vg_band, 1.0, replace) @@ -2820,7 +2847,7 @@ class Arc: #----------------------------------------------------------------- # each MeshSide becomes vertexGroup for easier material assignment --------------------- if settings.var['vGroup_on'] and not M_OBJ: # each MeshSide becomes vertexGroup for easier material assignment --------------------- - replace = Blender.Mesh.AssignModes.REPLACE #or .AssignModes.ADD + replace = Mesh.AssignModes.REPLACE #or .AssignModes.ADD vg_left, vg_right, vg_top, vg_bottom = [], [], [], [] for v in f_left: vg_left.extend(v) for v in f_right: vg_right.extend(v) @@ -3364,7 +3391,7 @@ class Ellipse: #--------------------------------------------------------------- me.faces[i].smooth = True if settings.var['vGroup_on'] and not M_OBJ: # each MeshSide becomes vertexGroup for easier material assignment --------------------- - replace = Blender.Mesh.AssignModes.REPLACE #or .AssignModes.ADD + replace = Mesh.AssignModes.REPLACE #or .AssignModes.ADD vg_left, vg_right, vg_top, vg_bottom = [], [], [], [] for v in f_left: vg_left.extend(v) for v in f_right: vg_right.extend(v) @@ -3517,7 +3544,7 @@ class Face: #----------------------------------------------------------------- ob.link(me) # link mesh to that object vG_name = 'color_%s' %self.color_index if edges: faces = edges - replace = Blender.Mesh.AssignModes.ADD #or .AssignModes.REPLACE or ADD + replace = Mesh.AssignModes.ADD #or .AssignModes.REPLACE or ADD try: me.assignVertsToGroup(vG_name, faces[0], 1.0, replace) #print 'deb: existed vGroup:', vG_name #--------------------- @@ -4022,10 +4049,8 @@ class Settings: #-------------------------------------------------------------- """Wraps the built-in print command in a optimization check. """ if self.var['optimization'] <= self.MID: - if newline: - print text - else: - print text, + if newline: print text + else: print text, def redraw(self): @@ -4067,9 +4092,9 @@ def analyzeDXF(dxfFile): #--------------------------------------- """ Window.WaitCursor(True) # Let the user know we are thinking print 'reading DXF file: %s.' % dxfFile - time1 = Blender.sys.time() #time marker1 + time1 = sys.time() #time marker1 drawing = readDXF(dxfFile, objectify) - print 'finish reading in %.4f sec.' % (Blender.sys.time()-time1) + print 'finish reading in %.4f sec.' % (sys.time()-time1) # First sort out all the section_items sections = dict([(item.name, item) for item in drawing.data]) @@ -4282,10 +4307,45 @@ def main(dxfFile): #---------------#############################----------- if dxfFile.lower().endswith('.dxf') and sys.exists(dxfFile): Window.WaitCursor(True) # Let the user know we are thinking print 'reading file: %s.' % dxfFile - time1 = Blender.sys.time() #time marker1 + time1 = sys.time() #time marker1 drawing = readDXF(dxfFile, objectify) - print 'reading finished in %.4f sec.' % (Blender.sys.time()-time1) + print 'reading finished in %.4f sec.' % (sys.time()-time1) Window.WaitCursor(False) + elif dxfFile.lower().endswith('.dwg') and sys.exists(dxfFile): + if not extCONV_OK: + Draw.PupMenu(extCONV_TEXT) + Window.WaitCursor(False) + if editmode: Window.EditMode(1) # and put things back how we fond them + return None + else: + Window.WaitCursor(True) # Let the user know we are thinking + #todo: issue: in DConvertCon.exe the output filename is fixed to dwg_name.dxf + + if 0: # works only for Windows + dwgTemp = 'temp_01.dwg' + dxfTemp = 'temp_01.dxf' + os.system('copy %s %s' %(dxfFile,dwgTemp)) + else: + dwgTemp = dxfFile + dxfTemp = dxfFile[:-3]+'dxf' + #print 'temp. converting: %s\n to: %s' %(dxfFile, dxfTemp) + #os.system('%s %s -acad11 -dxf' %(extCONV_PATH, dxfFile)) + os.system('%s %s -dxf' %(extCONV_PATH, dwgTemp)) + #os.system('%s %s -dxf' %(extCONV_PATH, dxfFile_temp)) + if sys.exists(dxfTemp): + print 'reading file: %s.' % dxfTemp + time1 = sys.time() #time marker1 + drawing = readDXF(dxfTemp, objectify) + #os.remove(dwgTemp) + os.remove(dxfTemp) # clean up + print 'reading finished in %.4f sec.' % (sys.time()-time1) + Window.WaitCursor(False) + else: + if UI_MODE: Draw.PupMenu('DWG importer: nothing imported!%t|No valid DXF-representation found!') + print 'DWG importer: nothing imported. No valid DXF-representation found.' + Window.WaitCursor(False) + if editmode: Window.EditMode(1) # and put things back how we fond them + return None else: if UI_MODE: Draw.PupMenu('DXF importer: Alert!%t| no valid DXF-file selected!') print "DXF importer: Alert! - no valid DXF-file selected." @@ -4295,7 +4355,7 @@ def main(dxfFile): #---------------#############################----------- # Draw all the know entity types in the current scene oblist = [] # a list of all created AND linked objects for final f_globalScale - time2 = Blender.sys.time() #time marker2 + time2 = sys.time() #time marker2 Window.WaitCursor(True) # Let the user know we are thinking settings.write("\n\nDrawing entities...") @@ -4322,7 +4382,7 @@ def main(dxfFile): #---------------#############################----------- #SCENE.objects.selected = SCENE.objects #select all objects in current scene Blender.Redraw() - time_text = Blender.sys.time() - time2 + time_text = sys.time() - time2 Window.WaitCursor(False) if settings.var['paper_space_on']: space = 'from paper space' else: space = 'from model space' @@ -4571,7 +4631,7 @@ def drawer(_type, entities, settings, block_def): #---------------------------- activObjectLayer = '' activObjectName = '' - message = "Drawing dxf\'%ss\'..." %_type + message = "Drawing dxf \'%ss\'..." %_type cur_COUNTER += len_temp - len(entities) settings.write(message, False) settings.progress(cur_COUNTER, message) @@ -5078,7 +5138,7 @@ def drawCurveArc(self): #---- only for ELLIPSE -------------------------------- # GUI STUFF -----#################################################----------------- -from Blender.BGL import * +from Blender.BGL import glColor3f, glRecti, glClear, glRasterPos2d EVENT_NONE = 1 EVENT_START = 2 @@ -5577,7 +5637,7 @@ def draw_UI(): #--------------------------------------------------------------- y += 30 colorbox(x, y+20, x+menu_w+menu_margin*2, menu_margin) - Draw.Label("DXF-Importer v" + __version__, but0c, y, menu_w, 20) + Draw.Label("DXF/DWG-Importer v" + __version__, but0c, y, menu_w, 20) if config_UI.val: b0, b0_ = but0c, but_0c + butt_margin @@ -5853,9 +5913,9 @@ def draw_UI(): #--------------------------------------------------------------- #y -= 10 Draw.BeginAlign() - Draw.PushButton('DXFfile >', EVENT_CHOOSE_DXF, but0c, y, but_0c, 20, 'Select DXF-file from project directory') - dxfFileName = Draw.String(' :', EVENT_NONE, but1c, y, but_1c+but_2c+but_3c-20, 20, dxfFileName.val, FILENAME_MAX, "type the name of DXF-file or type *.dxf for multi-import") - Draw.PushButton('*.*', EVENT_DXF_DIR, but3c+but_3c-20, y, 20, 20, 'import all dxf files from this directory') + Draw.PushButton('DXFfile >', EVENT_CHOOSE_DXF, but0c, y, but_0c, 20, 'Select DXF/DWG-file for import') + dxfFileName = Draw.String(' :', EVENT_NONE, but1c, y, but_1c+but_2c+but_3c-20, 20, dxfFileName.val, FILENAME_MAX, "type the name of DXF/DWG-file or type *.dxf/*.dwg for multiple files") + Draw.PushButton('*.*', EVENT_DXF_DIR, but3c+but_3c-20, y, 20, 20, 'set filter for import all files from this directory') Draw.EndAlign() y -= 30 @@ -5902,8 +5962,9 @@ def colorbox(x,y,xright,bottom): def dxf_callback(input_filename): global dxfFileName - dxfFileName.val=input_filename -# dirname == Blender.sys.dirname(Blender.Get('filename')) + if input_filename.lower()[-3:] in ('dwg','dxf'): + dxfFileName.val=input_filename +# dirname == sys.dirname(Blender.Get('filename')) # update_RegistryKey('DirName', dirname) # update_RegistryKey('dxfFileName', input_filename) @@ -5913,17 +5974,17 @@ def ini_callback(input_filename): def event(evt, val): if evt in (Draw.QKEY, Draw.ESCKEY) and not val: - Blender.Draw.Exit() + Draw.Exit() def bevent(evt): # global EVENT_NONE,EVENT_LOAD_DXF,EVENT_LOAD_INI,EVENT_SAVE_INI,EVENT_EXIT global config_UI, user_preset - global GUI_A + global GUI_A, UI_MODE ######### Manages GUI events if (evt==EVENT_EXIT): - Blender.Draw.Exit() - print 'DXF-Importer *** exit ***' #--------------------- + Draw.Exit() + print 'DXF/DWG-Importer *** exit ***' #--------------------- elif (evt==EVENT_CHOOSE_INI): Window.FileSelector(ini_callback, "INI-file Selection", '*.ini') elif (evt==EVENT_REDRAW): @@ -5980,13 +6041,14 @@ http://wiki.blender.org/index.php?title=Scripts/Manual/Import/DXF-3D') Draw.Redraw() elif (evt==EVENT_DXF_DIR): dxfFile = dxfFileName.val + dxfFileExt = '*'+dxfFile.lower()[-4:] #can be .dxf or .dwg dxfPathName = '' if '/' in dxfFile: dxfPathName = '/'.join(dxfFile.split('/')[:-1]) + '/' elif '\\' in dxfFile: dxfPathName = '\\'.join(dxfFile.split('\\')[:-1]) + '\\' - dxfFileName.val = dxfPathName + '*.dxf' -# dirname == Blender.sys.dirname(Blender.Get('filename')) + dxfFileName.val = dxfPathName + dxfFileExt +# dirname == sys.dirname(Blender.Get('filename')) # update_RegistryKey('DirName', dirname) # update_RegistryKey('dxfFileName', dxfFileName.val) GUI_A['newScene_on'].val = 1 @@ -5994,45 +6056,55 @@ http://wiki.blender.org/index.php?title=Scripts/Manual/Import/DXF-3D') elif (evt==EVENT_CHOOSE_DXF): filename = '' # '*.dxf' if dxfFileName.val: filename = dxfFileName.val - Window.FileSelector(dxf_callback, "DXF-file Selection", filename) + Window.FileSelector(dxf_callback, "DXF/DWG-file Selection", filename) elif (evt==EVENT_START): dxfFile = dxfFileName.val #print 'deb: dxfFile file: ', dxfFile #---------------------- if E_M: dxfFileName.val, dxfFile = e_mode(dxfFile) #evaluation mode update_RegistryKey('dxfFileName', dxfFileName.val) if dxfFile.lower().endswith('*.dxf'): - if Draw.PupMenu('DXF importer: OK?|will import all DXF-files from:|%s' % dxfFile) == 1: - global UI_MODE + if Draw.PupMenu('DXF importer will import all DXF-files from:|%s|OK?' % dxfFile) != -1: UI_MODE = False - multi_import(dxfFile[:-5]) # cut last 5 characters '*.dxf' + multi_import(dxfFile) + UI_MODE = True Draw.Redraw() - #Draw.Exit() - else: + + elif dxfFile.lower().endswith('*.dwg'): + if not extCONV_OK: Draw.PupMenu(extCONV_TEXT) + elif Draw.PupMenu('DWG importer will import all DWG-files from:|%s|OK?' % dxfFile) != -1: + #elif Draw.PupMenu('DWG importer will import all DWG-files from:|%s|Caution! overwrites existing DXF-files!| OK?' % dxfFile) != -1: + UI_MODE = False + multi_import(dxfFile) + UI_MODE = True Draw.Redraw() - elif dxfFile.lower().endswith('.dxf') and sys.exists(dxfFile): - print '\nStandard Mode: active' - if GUI_A['newScene_on'].val: - _dxf_file = dxfFile.split('/')[-1].split('\\')[-1] - _dxf_file = _dxf_file[:-4] # cut last char:'.dxf' - _dxf_file = _dxf_file[:MAX_NAMELENGTH] #? [-MAX_NAMELENGTH:]) - global SCENE - SCENE = Blender.Scene.New(_dxf_file) - SCENE.makeCurrent() - Blender.Redraw() - #or so? Blender.Scene.makeCurrent(_dxf_file) - #sce = bpy.data.scenes.new(_dxf_file) - #bpy.data.scenes.active = sce + + elif sys.exists(dxfFile) and dxfFile.lower()[-4:] in ('.dxf','.dwg'): + if dxfFile.lower().endswith('.dwg') and (not extCONV_OK): + Draw.PupMenu(extCONV_TEXT) else: - SCENE = Blender.Scene.GetCurrent() - SCENE.objects.selected = [] # deselect all - main(dxfFile) - #SCENE.objects.selected = SCENE.objects - #Window.RedrawAll() - #Blender.Redraw() - #Draw.Redraw() + #print '\nStandard Mode: active' + if GUI_A['newScene_on'].val: + _dxf_file = dxfFile.split('/')[-1].split('\\')[-1] + _dxf_file = _dxf_file[:-4] # cut last char:'.dxf' + _dxf_file = _dxf_file[:MAX_NAMELENGTH] #? [-MAX_NAMELENGTH:]) + global SCENE + SCENE = Blender.Scene.New(_dxf_file) + SCENE.makeCurrent() + Blender.Redraw() + #or so? Blender.Scene.makeCurrent(_dxf_file) + #sce = bpy.data.scenes.new(_dxf_file) + #bpy.data.scenes.active = sce + else: + SCENE = Blender.Scene.GetCurrent() + SCENE.objects.selected = [] # deselect all + main(dxfFile) + #SCENE.objects.selected = SCENE.objects + #Window.RedrawAll() + #Blender.Redraw() + #Draw.Redraw() else: - Draw.PupMenu('DXF importer: Alert!%t|no valid DXF-file selected!') - print "DXF importer: error, no valid DXF-file selected! try again" + Draw.PupMenu('DXF importer: nothing imported!%t|no valid DXF-file selected!') + print "DXF importer: nothing imported, no valid DXF-file selected! try again" Draw.Redraw() @@ -6043,20 +6115,25 @@ def multi_import(DIR): """ global SCENE - batchTIME = Blender.sys.time() + batchTIME = sys.time() #if #DIR == "": DIR = os.path.curdir - if DIR == "": DIR = Blender.sys.dirname(Blender.Get('filename')) - print 'Multifiles Import from %s' %DIR + if DIR == "": + DIR = sys.dirname(Blender.Get('filename')) + EXT = '.dxf' + else: + EXT = DIR[-4:] # get last 4 characters '.dxf' + DIR = DIR[:-5] # cut last 5 characters '*.dxf' + print 'importing multiple %s files from %s' %(EXT,DIR) files = \ - [sys.join(DIR, f) for f in os.listdir(DIR) if f.lower().endswith('.dxf')] + [sys.join(DIR, f) for f in os.listdir(DIR) if f.lower().endswith(EXT)] if not files: - print '...None DXF-files found. Abort!' + print '...None %s-files found. Abort!' %EXT return i = 0 for dxfFile in files: i += 1 - print '\nDXF-file', i, 'of', len(files) #,'\nImporting', dxfFile + print '\n%s-file' %EXT, i, 'of', len(files) #,'\nImporting', dxfFile if GUI_A['newScene_on'].val: _dxf_file = dxfFile.split('/')[-1].split('\\')[-1] _dxf_file = _dxf_file[:-4] # cut last char:'.dxf' @@ -6072,13 +6149,11 @@ def multi_import(DIR): main(dxfFile) #Blender.Redraw() - print 'TOTAL TIME: %.6f' % (Blender.sys.time() - batchTIME) + print 'TOTAL TIME: %.6f' % (sys.time() - batchTIME) print '\a\r', # beep when done + Draw.PupMenu('DXF importer: Done!|finished in %.4f sec.' % (sys.time() - batchTIME)) - -UI_MODE = True - if __name__ == "__main__": UI_MODE = True # recall last used DXF-file and INI-file names @@ -6086,7 +6161,7 @@ if __name__ == "__main__": #print 'deb:start dxffilename:', dxffilename #---------------- if dxffilename: dxfFileName.val = dxffilename else: - dirname = Blender.sys.dirname(Blender.Get('filename')) + dirname = sys.dirname(Blender.Get('filename')) #print 'deb:start dirname:', dirname #---------------- dxfFileName.val = sys.join(dirname, '') inifilename = check_RegistryKey('iniFileName') @@ -6099,7 +6174,7 @@ if __name__ == "__main__": if 1: # DEBUG ONLY UI_MODE = False - TIME= Blender.sys.time() + TIME= sys.time() #DIR = '/dxf_r12_testfiles/' DIR = '/metavr/' import os @@ -6128,5 +6203,5 @@ if 1: dxfFileName.val = _dxf main(_dxf) - print 'TOTAL TIME: %.6f' % (Blender.sys.time() - TIME) + print 'TOTAL TIME: %.6f' % (sys.time() - TIME) """ \ No newline at end of file From efb7dd86ff001efe26fba1caef70a87806d138f6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 04:34:27 +0000 Subject: [PATCH 162/201] Fix for own recent reference count error. - The armature weakref list was being incref'd twice then decrefed twice (incref and decref were used incorrectly), now only once. My 'fix' broke this. - In bpy_pydriver_create_dict the 2 refs added from running PyDict_SetItemString twice were undone when clearing the dictionary (added comment) - changed Py_XDECREF to Py_DECREF int BPY_pyconstraint_update and BPY_pyconstraint_target, Py_XDECREF checs for NULL value which would have crashed blender before it got to Py_XDECREF anyway. - after every error is reported (PyErr_Print), remove sys.last_traceback and clear the error, I found this fixed certain crashes (usually when starting the game engine or exiting blender), so best do this all the time. - header_text.c, CcdPhysicsEnvironment.cpp, KX_CameraActuator.cpp - remove some warnings. --- .../nodes/intern/SHD_nodes/SHD_dynamic.c | 6 +- source/blender/python/BPY_interface.c | 201 +++++++++--------- source/blender/python/api2_2x/Draw.c | 7 + .../python/api2_2x/bpy_internal_import.c | 6 +- source/blender/src/header_text.c | 1 + source/blender/src/imagepaint.c | 3 +- .../GameLogic/SCA_PythonController.cpp | 4 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 2 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 2 + .../Physics/Bullet/CcdPhysicsEnvironment.cpp | 2 +- 10 files changed, 127 insertions(+), 107 deletions(-) diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c index 2065ac2ed33..88efd47fa66 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c @@ -340,7 +340,11 @@ static void node_dynamic_pyerror_print(bNode *node) PyGILState_STATE gilstate = PyGILState_Ensure(); fprintf(stderr, "\nError in dynamic node script \"%s\":\n", node->name); - if (PyErr_Occurred()) { PyErr_Print(); } + if (PyErr_Occurred()) { + PyErr_Print(); + PyErr_Clear(); + PySys_SetObject("last_traceback", NULL); + } else { fprintf(stderr, "Not a valid dynamic node Python script.\n"); } PyGILState_Release(gilstate); diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index 7b992dff472..c46c6c083b2 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -97,6 +97,17 @@ PyObject *bpy_pydriver_Dict = NULL; PyObject *bpy_orig_syspath_List = NULL; +static void BPY_Err_Clear(void) +{ + /* Added in 2.48a, the last_traceback can reference Objects for example, increasing + * their user count. Not to mention holding references to wrapped data. + * This is especially bad when the PyObject for the wrapped data is free'd, after blender + * has alredy dealocated the pointer */ + PySys_SetObject( "last_traceback", NULL); + + PyErr_Clear(); +} + /* * set up a weakref list for Armatures * creates list in __main__ module dict @@ -107,30 +118,29 @@ static int setup_armature_weakrefs() PyObject *maindict; PyObject *main_module; PyObject *list; - char *list_name = ARM_WEAKREF_LIST_NAME; + PyObject *list_name = PyString_FromString(ARM_WEAKREF_LIST_NAME); main_module = PyImport_AddModule( "__main__"); if(main_module){ - PyObject *weakreflink; maindict= PyModule_GetDict(main_module); /* check if there is already a dict entry for the armature weakrefs, * and delete if so before making another one */ - - weakreflink= PyDict_GetItemString(maindict,list_name); - if( weakreflink != NULL ) { - PyDict_DelItemString(maindict,list_name); - Py_XDECREF( weakreflink ); - } + + if (PyDict_DelItem(maindict, list_name)==-1) + PyErr_Clear(); list= PyList_New(0); - if (PyDict_SetItemString(maindict, list_name, list) == -1){ - printf("Oops - setup_armature_weakrefs()\n"); + if (PyDict_SetItem(maindict, list_name, list) == -1){ + PyErr_Print(); + BPY_Err_Clear(); Py_DECREF(list); + Py_DECREF(list_name); return 0; } Py_DECREF(list); /* the dict owns it now */ } + Py_DECREF(list_name); return 1; } @@ -532,16 +542,6 @@ static PyObject *traceback_getFilename( PyObject * tb ) else return PyString_FromString("unknown"); } -static void BPY_Err_Clear(void) -{ - /* Added in 2.48a, the last_traceback can reference Objects for example, increasing - * their user count. Not to mention holding references to wrapped data. - * This is especially bad when the PyObject for the wrapped data is free'd, after blender - * has alredy dealocated the pointer */ - PySys_SetObject( "last_traceback", Py_None); - - PyErr_Clear(); -} /**************************************************************************** * Description: Blender Python error handler. This catches the error and * stores filename and line number in a global @@ -1137,6 +1137,7 @@ void BPY_free_finished_script( Script * script ) if( PyErr_Occurred( ) ) { /* if script ended after filesel */ PyErr_Print( ); /* eventual errors are handled now */ + BPY_Err_Clear( ); error_pyscript( ); } @@ -1245,10 +1246,9 @@ static int bpy_pydriver_create_dict(void) if (mod) { PyDict_SetItemString(d, "Blender", mod); PyDict_SetItemString(d, "b", mod); - Py_DECREF(mod); - Py_DECREF(mod); + Py_DECREF(mod); /* 2 refs above are cleared with the dict, only decref the ref from PyImport_ImportModule */ } else { - PyErr_Clear(); + BPY_Err_Clear(); } mod = PyImport_ImportModule("math"); @@ -1258,18 +1258,18 @@ static int bpy_pydriver_create_dict(void) /* Only keep for backwards compat! - just import all math into root, they are standard */ PyDict_SetItemString(d, "math", mod); PyDict_SetItemString(d, "m", mod); - Py_DECREF(mod); - Py_DECREF(mod); - } + Py_DECREF(mod); /* 2 refs above are cleared with the dict, only decref the ref from PyImport_ImportModule */ + } else { + BPY_Err_Clear(); + } mod = PyImport_ImportModule("Blender.Noise"); if (mod) { PyDict_SetItemString(d, "noise", mod); PyDict_SetItemString(d, "n", mod); - Py_DECREF(mod); - Py_DECREF(mod); + Py_DECREF(mod); /* 2 refs above are cleared with the dict, only decref the ref from PyImport_ImportModule */ } else { - PyErr_Clear(); + BPY_Err_Clear(); } /* If there's a Blender text called pydrivers.py, import it. @@ -1279,10 +1279,9 @@ static int bpy_pydriver_create_dict(void) if (mod) { PyDict_SetItemString(d, "pydrivers", mod); PyDict_SetItemString(d, "p", mod); - Py_DECREF(mod); - Py_DECREF(mod); + Py_DECREF(mod); /* 2 refs above are cleared with the dict, only decref the ref from PyImport_ImportModule */ } else { - PyErr_Clear(); + BPY_Err_Clear(); } } /* short aliases for some Get() functions: */ @@ -1297,7 +1296,7 @@ static int bpy_pydriver_create_dict(void) Py_DECREF(fcn); } } else { - PyErr_Clear(); + BPY_Err_Clear(); } /* TODO - change these */ @@ -1311,7 +1310,7 @@ static int bpy_pydriver_create_dict(void) Py_DECREF(fcn); } } else { - PyErr_Clear(); + BPY_Err_Clear(); } /* ma(matname) == Blender.Material.Get(matname) */ @@ -1324,7 +1323,7 @@ static int bpy_pydriver_create_dict(void) Py_DECREF(fcn); } } else { - PyErr_Clear(); + BPY_Err_Clear(); } return 0; @@ -1350,6 +1349,7 @@ static float pydriver_error(IpoDriver *driver) { fprintf(stderr, "\nError in Ipo Driver: No Object\nThis is the failed Python expression:\n'%s'\n\n", driver->name); PyErr_Print(); + BPY_Err_Clear(); return 0.0f; } @@ -1445,7 +1445,7 @@ void BPY_pyconstraint_update(Object *owner, bConstraint *con) return; } - Py_XDECREF(retval); + Py_DECREF(retval); retval = NULL; /* try to find NUM_TARGETS */ @@ -1578,9 +1578,9 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase con->flag |= PYCON_SCRIPTERROR; /* free temp objects */ - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); ReleaseGlobalDictionary(globals); @@ -1589,7 +1589,7 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase return; } - if (retval) {Py_XDECREF( retval );} + Py_DECREF( retval ); retval = NULL; gval = PyDict_GetItemString(globals, "doConstraint"); @@ -1597,9 +1597,9 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase printf("ERROR: no doConstraint function in constraint!\n"); /* free temp objects */ - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); ReleaseGlobalDictionary(globals); @@ -1612,15 +1612,15 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase if (PyFunction_Check(gval)) { pyargs = Py_BuildValue("OOO", srcmat, tarmats, idprop); retval = PyObject_CallObject(gval, pyargs); - Py_XDECREF(pyargs); + Py_DECREF(pyargs); } else { printf("ERROR: doConstraint is supposed to be a function!\n"); con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); ReleaseGlobalDictionary(globals); @@ -1634,9 +1634,9 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase con->flag |= PYCON_SCRIPTERROR; /* free temp objects */ - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); ReleaseGlobalDictionary(globals); @@ -1650,10 +1650,10 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase printf("Error in PyConstraint - doConstraint: Function not returning a matrix!\n"); con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); - Py_XDECREF(retval); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); + Py_DECREF(retval); ReleaseGlobalDictionary(globals); @@ -1667,10 +1667,10 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase printf("Error in PyConstraint - doConstraint: Matrix returned is the wrong size!\n"); con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); - Py_XDECREF(retval); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); + Py_DECREF(retval); ReleaseGlobalDictionary(globals); @@ -1687,10 +1687,10 @@ void BPY_pyconstraint_eval(bPythonConstraint *con, bConstraintOb *cob, ListBase } /* free temp objects */ - Py_XDECREF(idprop); - Py_XDECREF(srcmat); - Py_XDECREF(tarmats); - Py_XDECREF(retval); + Py_DECREF(idprop); + Py_DECREF(srcmat); + Py_DECREF(tarmats); + Py_DECREF(retval); /* clear globals */ ReleaseGlobalDictionary(globals); @@ -1745,10 +1745,10 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) con->flag |= PYCON_SCRIPTERROR; /* free temp objects */ - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); ReleaseGlobalDictionary(globals); @@ -1757,17 +1757,17 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) return; } - Py_XDECREF(retval); + Py_DECREF(retval); retval = NULL; /* try to find doTarget function to set the target matrix */ gval = PyDict_GetItemString(globals, "doTarget"); if (!gval) { /* free temp objects */ - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); ReleaseGlobalDictionary(globals); @@ -1780,16 +1780,16 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) if (PyFunction_Check(gval)) { pyargs = Py_BuildValue("OOOO", tar, subtar, tarmat, idprop); retval = PyObject_CallObject(gval, pyargs); - Py_XDECREF(pyargs); + Py_DECREF(pyargs); } else { printf("ERROR: doTarget is supposed to be a function!\n"); con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); ReleaseGlobalDictionary(globals); @@ -1804,10 +1804,10 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) /* free temp objects */ - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); ReleaseGlobalDictionary(globals); @@ -1819,11 +1819,11 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) if (!PyObject_TypeCheck(retval, &matrix_Type)) { con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); - Py_XDECREF(retval); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); + Py_DECREF(retval); ReleaseGlobalDictionary(globals); @@ -1837,11 +1837,11 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) printf("Error in PyConstraint - doTarget: Matrix returned is the wrong size!\n"); con->flag |= PYCON_SCRIPTERROR; - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); - Py_XDECREF(retval); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); + Py_DECREF(retval); ReleaseGlobalDictionary(globals); @@ -1858,11 +1858,11 @@ void BPY_pyconstraint_target(bPythonConstraint *con, bConstraintTarget *ct) } /* free temp objects */ - Py_XDECREF(tar); - Py_XDECREF(subtar); - Py_XDECREF(idprop); - Py_XDECREF(tarmat); - Py_XDECREF(retval); + Py_DECREF(tar); + Py_DECREF(subtar); + Py_DECREF(idprop); + Py_DECREF(tarmat); + Py_DECREF(retval); /* clear globals */ ReleaseGlobalDictionary(globals); @@ -1897,7 +1897,7 @@ void BPY_pyconstraint_settings(void *arg1, void *arg2) con->flag |= PYCON_SCRIPTERROR; /* free temp objects */ - Py_XDECREF(idprop); + Py_DECREF(idprop); PyGILState_Release(gilstate); @@ -1913,7 +1913,7 @@ void BPY_pyconstraint_settings(void *arg1, void *arg2) /* free temp objects */ ReleaseGlobalDictionary( globals ); - Py_XDECREF(idprop); + Py_DECREF(idprop); PyGILState_Release(gilstate); @@ -1928,7 +1928,7 @@ void BPY_pyconstraint_settings(void *arg1, void *arg2) printf("ERROR: getSettings is supposed to be a function!\n"); ReleaseGlobalDictionary( globals ); - Py_XDECREF(idprop); + Py_DECREF(idprop); PyGILState_Release(gilstate); @@ -1941,7 +1941,7 @@ void BPY_pyconstraint_settings(void *arg1, void *arg2) /* free temp objects */ ReleaseGlobalDictionary(globals); - Py_XDECREF(idprop); + Py_DECREF(idprop); PyGILState_Release(gilstate); @@ -1952,7 +1952,7 @@ void BPY_pyconstraint_settings(void *arg1, void *arg2) ReleaseGlobalDictionary(globals); /* free temp objects */ - Py_XDECREF(idprop); + Py_DECREF(idprop); Py_DECREF(retval); PyGILState_Release(gilstate); @@ -2107,6 +2107,7 @@ static int bpy_button_eval_error(char *expr) { fprintf(stderr, "\nError in button evaluation:\nThis is the failed Python expression:\n'%s'\n\n", expr); PyErr_Print(); + BPY_Err_Clear(); return -1; } diff --git a/source/blender/python/api2_2x/Draw.c b/source/blender/python/api2_2x/Draw.c index 2af2261808b..57b3869d775 100644 --- a/source/blender/python/api2_2x/Draw.c +++ b/source/blender/python/api2_2x/Draw.c @@ -614,6 +614,9 @@ static void exit_pydraw( SpaceScript * sc, short err ) if( err ) { PyErr_Print( ); + PyErr_Clear( ); + PySys_SetObject("last_traceback", NULL); + script->flags = 0; /* mark script struct for deletion */ SCRIPT_SET_NULL(script); script->scriptname[0] = '\0'; @@ -838,6 +841,8 @@ static void exec_but_callback(void *pyobj, void *data) if (!result) { Py_DECREF(pyvalue); PyErr_Print( ); + PyErr_Clear( ); + PySys_SetObject("last_traceback", NULL); error_pyscript( ); } Py_XDECREF( result ); @@ -1129,6 +1134,8 @@ static PyObject *Method_UIBlock( PyObject * self, PyObject * args ) if (!result) { PyErr_Print( ); + PyErr_Clear( ); + PySys_SetObject("last_traceback", NULL); error_pyscript( ); } else { /* copied from do_clever_numbuts in toolbox.c */ diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index d022fddeb57..9d2d15e0991 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -84,6 +84,8 @@ PyObject *importText( char *name ) if( PyErr_Occurred( ) ) { PyErr_Print( ); + PyErr_Clear( ); + PySys_SetObject("last_traceback", NULL); free_compiled_text( text ); return NULL; } @@ -138,6 +140,8 @@ PyObject *reimportText( PyObject *module ) /* if compile failed.... return this error */ if( PyErr_Occurred( ) ) { PyErr_Print( ); + PyErr_Clear( ); + PySys_SetObject("last_traceback", NULL); free_compiled_text( text ); return NULL; } @@ -182,7 +186,7 @@ static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * k Py_XDECREF( exception ); Py_XDECREF( err ); Py_XDECREF( tb ); - printf( "imported from text buffer...\n" ); + /* printf( "imported from text buffer...\n" ); */ } else { PyErr_Restore( exception, err, tb ); } diff --git a/source/blender/src/header_text.c b/source/blender/src/header_text.c index 050ff192df6..850b7d6cab1 100644 --- a/source/blender/src/header_text.c +++ b/source/blender/src/header_text.c @@ -74,6 +74,7 @@ #include "BIF_toolbox.h" #include "BKE_global.h" +#include "BKE_scene.h" #include "BKE_library.h" #include "BKE_main.h" #include "BKE_sca.h" diff --git a/source/blender/src/imagepaint.c b/source/blender/src/imagepaint.c index 09666f4819d..ede6679b9f5 100644 --- a/source/blender/src/imagepaint.c +++ b/source/blender/src/imagepaint.c @@ -1921,7 +1921,7 @@ static void rect_to_uvspace_persp( } /* This works as we need it to but we can save a few steps and not use it */ - +#if 0 static float angle_2d_clockwise(const float p1[2], const float p2[2], const float p3[2]) { float v1[2], v2[2]; @@ -1931,6 +1931,7 @@ static float angle_2d_clockwise(const float p1[2], const float p2[2], const floa return -atan2(v1[0]*v2[1] - v1[1]*v2[0], v1[0]*v2[0]+v1[1]*v2[1]); } +#endif #define ISECT_1 (1) #define ISECT_2 (1<<1) diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 0e6b9d1e8f1..1c5b597f937 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -300,7 +300,7 @@ bool SCA_PythonController::Compile() * their user count. Not to mention holding references to wrapped data. * This is especially bad when the PyObject for the wrapped data is free'd, after blender * has alredy dealocated the pointer */ - PySys_SetObject( (char *)"last_traceback", Py_None); + PySys_SetObject( (char *)"last_traceback", NULL); PyErr_Clear(); /* just to be sure */ return false; @@ -358,7 +358,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) * their user count. Not to mention holding references to wrapped data. * This is especially bad when the PyObject for the wrapped data is free'd, after blender * has alredy dealocated the pointer */ - PySys_SetObject( (char *)"last_traceback", Py_None); + PySys_SetObject( (char *)"last_traceback", NULL); PyErr_Clear(); /* just to be sure */ //PyRun_SimpleString(m_scriptText.Ptr()); diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 0118e490773..329d31cfa25 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -611,7 +611,7 @@ int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF if (self->m_ob) self->m_ob->UnregisterActuator(self); - if (self->m_ob = (SCA_IObject*)gameobj) + if ((self->m_ob = (SCA_IObject*)gameobj)) self->m_ob->RegisterActuator(self); return 0; diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index 56a1daa7544..056442f77d9 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -109,6 +109,8 @@ bool KX_PolygonMaterial::Activate(RAS_IRasterizer* rasty, TCachingInfo& cachingI else { PyErr_Print(); + PyErr_Clear(); + PySys_SetObject( (char *)"last_traceback", NULL); } } else diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index 858416bae6a..3e1e0294321 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -1346,7 +1346,7 @@ struct OcclusionBuffer static int clip(const btVector4* pi,btVector4* po) { btScalar s[2*NP]; - btVector4 pn[2*NP], *p; + btVector4 pn[2*NP]; int i, j, m, n, ni; // deal with near clipping for(i=0, m=0;i Date: Wed, 15 Apr 2009 07:00:11 +0000 Subject: [PATCH 163/201] [#7789] 3DS Import , Mesh not correct since Blender 2.44 There is a problem importing 3ds files where I cant find a way to check if the transforms are applied to the vertex locations or not. Since 2.44 I made the importer assume they were not since you can manually remove transformations, but not reverse. Nevertheless most 3ds files have the matrix applied, better not give a bad import by default. Did some research and other 3ds importers (lib3ds for eg), have the same problem and just assume the transformations applied. 3dsMax imports both correctly so there must be a way to tell but I could not link it to the 3ds version or other mesh options. Added an option to workaround this problem in rare cases where its needed. - KX_GameObject.cpp & KX_Scene.cpp, clear the dict before removing the reference in case there is a circular reference. --- release/scripts/3ds_import.py | 5 +++++ source/gameengine/Ketsji/KX_GameObject.cpp | 1 + source/gameengine/Ketsji/KX_Scene.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/release/scripts/3ds_import.py b/release/scripts/3ds_import.py index 028b9633606..1963d2e7433 100644 --- a/release/scripts/3ds_import.py +++ b/release/scripts/3ds_import.py @@ -844,11 +844,13 @@ def load_3ds(filename, PREF_UI= True): # IMPORT_AS_INSTANCE= Blender.Draw.Create(0) IMPORT_CONSTRAIN_BOUNDS= Blender.Draw.Create(10.0) IMAGE_SEARCH= Blender.Draw.Create(1) + APPLY_MATRIX= Blender.Draw.Create(0) # Get USER Options pup_block= [\ ('Size Constraint:', IMPORT_CONSTRAIN_BOUNDS, 0.0, 1000.0, 'Scale the model by 10 until it reacehs the size constraint. Zero Disables.'),\ ('Image Search', IMAGE_SEARCH, 'Search subdirs for any assosiated images (Warning, may be slow)'),\ + ('Transform Fix', APPLY_MATRIX, 'Workaround for object transformations importing incorrectly'),\ #('Group Instance', IMPORT_AS_INSTANCE, 'Import objects into a new scene and group, creating an instance in the current scene.'),\ ] @@ -861,6 +863,7 @@ def load_3ds(filename, PREF_UI= True): IMPORT_CONSTRAIN_BOUNDS= IMPORT_CONSTRAIN_BOUNDS.val # IMPORT_AS_INSTANCE= IMPORT_AS_INSTANCE.val IMAGE_SEARCH = IMAGE_SEARCH.val + APPLY_MATRIX = APPLY_MATRIX.val if IMPORT_CONSTRAIN_BOUNDS: BOUNDS_3DS[:]= [1<<30, 1<<30, 1<<30, -1<<30, -1<<30, -1<<30] @@ -887,6 +890,8 @@ def load_3ds(filename, PREF_UI= True): if ob.type=='Mesh': me= ob.getData(mesh=1) me.verts.delete([me.verts[0],]) + if not APPLY_MATRIX: + me.transform(ob.matrixWorld.copy().invert()) # Done DUMMYVERT """ diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index a399d3b477a..fd9ba93f4b6 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -143,6 +143,7 @@ KX_GameObject::~KX_GameObject() } if (m_attrlist) { + PyDict_Clear(m_attrlist); /* incase of circular refs or other weired cases */ Py_DECREF(m_attrlist); } } diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 2bfa767dc3b..c63167e2d56 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -250,6 +250,7 @@ KX_Scene::~KX_Scene() { delete m_bucketmanager; } + PyDict_Clear(m_attrlist); Py_DECREF(m_attrlist); } From 19c869ab64a0e14727217c7d221e03d32a614132 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 08:08:42 +0000 Subject: [PATCH 164/201] BGE Py Api importing modules wasnt returning the error from the blender text if it failed. --- source/blender/python/BPY_interface.c | 3 +- .../python/api2_2x/bpy_internal_import.c | 70 ++++++++++++++----- .../python/api2_2x/bpy_internal_import.h | 4 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 18 +++-- 4 files changed, 67 insertions(+), 28 deletions(-) diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index c46c6c083b2..3b539be7a95 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -1275,7 +1275,8 @@ static int bpy_pydriver_create_dict(void) /* If there's a Blender text called pydrivers.py, import it. * Users can add their own functions to this module. */ if (G.f&G_DOSCRIPTLINKS) { - mod = importText("pydrivers"); /* can also use PyImport_Import() */ + int found; /* not used but needed as an arg */ + mod = importText("pydrivers", &found); /* can also use PyImport_Import() */ if (mod) { PyDict_SetItemString(d, "pydrivers", mod); PyDict_SetItemString(d, "p", mod); diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index 9d2d15e0991..d944c24d928 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -56,7 +56,7 @@ void bpy_import_main_set(struct Main *maggie) } -PyObject *importText( char *name ) +PyObject *importText( char *name, int *found ) { Text *text; char txtname[22]; /* 21+NULL */ @@ -64,6 +64,8 @@ PyObject *importText( char *name ) int namelen = strlen( name ); Main *maggie= bpy_import_main ? bpy_import_main:G.main; + *found= 0; + if (namelen>21-3) return NULL; /* we know this cant be importable, the name is too long for blender! */ memcpy( txtname, name, namelen ); @@ -76,7 +78,9 @@ PyObject *importText( char *name ) if( !text ) return NULL; - + else + *found = 1; + if( !text->compiled ) { buf = txt_to_buf( text ); text->compiled = Py_CompileString( buf, text->id.name+2, Py_file_input ); @@ -99,7 +103,7 @@ PyObject *importText( char *name ) * find in-memory module and recompile */ -PyObject *reimportText( PyObject *module ) +PyObject *reimportText( PyObject *module, int *found ) { Text *text; char *txtname; @@ -107,6 +111,8 @@ PyObject *reimportText( PyObject *module ) char *buf = NULL; Main *maggie= bpy_import_main ? bpy_import_main:G.main; + *found= 0; + /* get name, filename from the module itself */ txtname = PyModule_GetFilename( module ); @@ -125,6 +131,8 @@ PyObject *reimportText( PyObject *module ) /* uh-oh.... didn't find it */ if( !text ) return NULL; + else + *found = 1; /* if previously compiled, free the object */ /* (can't see how could be NULL, but check just in case) */ @@ -155,8 +163,9 @@ static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * k { PyObject *exception, *err, *tb; char *name; + int found= 0; PyObject *globals = NULL, *locals = NULL, *fromlist = NULL; - PyObject *m; + PyObject *newmodule; //PyObject_Print(args, stderr, 0); #if (PY_VERSION_HEX >= 0x02060000) @@ -173,24 +182,37 @@ static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * k &name, &globals, &locals, &fromlist ) ) return NULL; #endif - m = PyImport_ImportModuleEx( name, globals, locals, fromlist ); - if( m ) - return m; - else - PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ - - m = importText( name ); - if( m ) { /* found module, ignore above exception */ + /* import existing builtin modules or modules that have been imported alredy */ + newmodule = PyImport_ImportModuleEx( name, globals, locals, fromlist ); + + if(newmodule) + return newmodule; + + PyErr_Fetch( &exception, &err, &tb ); /* get the python error incase we cant import as blender text either */ + + /* importing from existing modules failed, see if we have this module as blender text */ + newmodule = importText( name, &found ); + + if( newmodule ) {/* found module as blender text, ignore above exception */ PyErr_Clear( ); Py_XDECREF( exception ); Py_XDECREF( err ); Py_XDECREF( tb ); /* printf( "imported from text buffer...\n" ); */ - } else { + } + else if (found==1) { /* blender text module failed to execute but was found, use its error message */ + Py_XDECREF( exception ); + Py_XDECREF( err ); + Py_XDECREF( tb ); + return NULL; + } + else { + /* no blender text was found that could import the module + * rause the original error from PyImport_ImportModuleEx */ PyErr_Restore( exception, err, tb ); } - return m; + return newmodule; } @@ -203,7 +225,8 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) PyObject *exception, *err, *tb; PyObject *module = NULL; PyObject *newmodule = NULL; - + int found= 0; + /* check for a module arg */ if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) return NULL; @@ -216,14 +239,25 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) /* no file, try importing from memory */ PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ - newmodule = reimportText( module ); - if( newmodule ) { /* found module, ignore above exception */ + newmodule = reimportText( module, &found ); + if( newmodule ) {/* found module as blender text, ignore above exception */ PyErr_Clear( ); Py_XDECREF( exception ); Py_XDECREF( err ); Py_XDECREF( tb ); - } else + /* printf( "imported from text buffer...\n" ); */ + } + else if (found==1) { /* blender text module failed to execute but was found, use its error message */ + Py_XDECREF( exception ); + Py_XDECREF( err ); + Py_XDECREF( tb ); + return NULL; + } + else { + /* no blender text was found that could import the module + * rause the original error from PyImport_ImportModuleEx */ PyErr_Restore( exception, err, tb ); + } return newmodule; } diff --git a/source/blender/python/api2_2x/bpy_internal_import.h b/source/blender/python/api2_2x/bpy_internal_import.h index c461565b5ac..7fe412019ab 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.h +++ b/source/blender/python/api2_2x/bpy_internal_import.h @@ -35,8 +35,8 @@ #include "compile.h" /* for the PyCodeObject */ #include "eval.h" /* for PyEval_EvalCode */ -PyObject *importText( char *name ); -PyObject *reimportText( PyObject *module ); +PyObject *importText( char *name, int *found ); +PyObject *reimportText( PyObject *module, int *found ); extern PyMethodDef bpy_import[]; extern PyMethodDef bpy_reload[]; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 7ed83465c49..924c5451608 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1209,6 +1209,7 @@ PyObject *KXpy_compile(PyObject *self, PyObject *args) { PyObject *KXpy_import(PyObject *self, PyObject *args) { char *name; + int found; PyObject *globals = NULL; PyObject *locals = NULL; PyObject *fromlist = NULL; @@ -1243,12 +1244,13 @@ PyObject *KXpy_import(PyObject *self, PyObject *args) } /* Import blender texts as python modules */ - m= importText(name); + m= importText(name, &found); if (m) return m; - - PyErr_Format(PyExc_ImportError, - "Import of external Module %.20s not allowed.", name); + + if(found==0) /* if its found but could not import then it has its own error */ + PyErr_Format(PyExc_ImportError, "Import of external Module %.20s not allowed.", name); + return NULL; } @@ -1260,7 +1262,7 @@ PyObject *KXpy_reload(PyObject *self, PyObject *args) { PyErr_SetString(PyExc_RuntimeError, "Sandbox: reload() function disabled!\nGame Scripts should not use this function."); return NULL; #endif - + int found; PyObject *module = NULL; PyObject *newmodule = NULL; @@ -1268,9 +1270,11 @@ PyObject *KXpy_reload(PyObject *self, PyObject *args) { if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) return NULL; - newmodule= reimportText( module ); + newmodule= reimportText( module, &found ); + if (newmodule) + return newmodule; - if (newmodule==NULL) + if (found==0) /* if its found but could not import then it has its own error */ PyErr_SetString(PyExc_ImportError, "failed to reload from blenders internal text"); return newmodule; From e8f4d9322112e64677df11ba834a26159874b332 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 10:57:28 +0000 Subject: [PATCH 165/201] Disable using KX_GameObjects in python that have been removed from the scene (zombie objects) by raising a RuntimeError when accessing methods, attributes or passing to a function. Common cases of this are when python references an object from the AddObject actuator that has ended, or a scene has been loaded and the old objects freed. This means some scripts will raise errors now in certain cases but better give the error early rather then failing silently with strange hard to track down behavior & crashes. Added "isValid" attribute for checking objects are in a scene. At the moment it uses the SceneGraph Node to check of the objects valid but it might be better to do this in a more generic way so scenes, meshes etc also have this check. --- source/gameengine/Ketsji/KX_Camera.cpp | 11 ++ source/gameengine/Ketsji/KX_GameObject.cpp | 152 ++++++++++++++++++++- source/gameengine/Ketsji/KX_GameObject.h | 110 ++------------- source/gameengine/Ketsji/KX_Light.cpp | 15 +- source/gameengine/PyDoc/KX_GameObject.py | 3 + 5 files changed, 186 insertions(+), 105 deletions(-) diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index 8032e939a50..befc8462aa3 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -534,11 +534,22 @@ PyParentObject KX_Camera::Parents[] = { PyObject* KX_Camera::py_getattro(PyObject *attr) { + if (ValidPythonToGameObject(this)==false) { + if (!strcmp(PyString_AsString(attr), "isValid")) { + PyErr_Clear(); + Py_RETURN_FALSE; + } + return NULL; /* ValidPythonToGameObject sets the error */ + } + py_getattro_up(KX_GameObject); } int KX_Camera::py_setattro(PyObject *attr, PyObject *value) { + if (ValidPythonToGameObject(this)==false) + return -1; + py_setattro_up(KX_GameObject); } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index fd9ba93f4b6..36fb9142adc 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1106,6 +1106,8 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("controllers", KX_GameObject, pyattr_get_controllers), KX_PYATTRIBUTE_RO_FUNCTION("actuators", KX_GameObject, pyattr_get_actuators), + KX_PYATTRIBUTE_RO_FUNCTION("isValid", KX_GameObject, pyattr_get_is_valid), + {NULL} //Sentinel }; @@ -1169,6 +1171,12 @@ PyObject* KX_GameObject::PyGetPosition(PyObject* self) Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) { KX_GameObject* self= static_cast(self_v); + + if (ValidPythonToGameObject(self)==false) { + PyErr_Clear(); + return 0; + } + Py_ssize_t len= self->GetPropertyCount(); if(self->m_attrlist) len += PyDict_Size(self->m_attrlist); @@ -1183,6 +1191,9 @@ PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) CValue* resultattr; PyObject* pyconvert; + if (ValidPythonToGameObject(self)==false) + return NULL; + /* first see if the attributes a string and try get the cvalue attribute */ if(attr_str && (resultattr=self->GetProperty(attr_str))) { pyconvert = resultattr->ConvertValueToPython(); @@ -1212,6 +1223,9 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) if(attr_str==NULL) PyErr_Clear(); + if (ValidPythonToGameObject(self)==false) + return -1; + if (val==NULL) { /* del ob["key"] */ int del= 0; @@ -1537,7 +1551,7 @@ int KX_GameObject::pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *at PyObject* KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); - SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); + SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); /* GetSGNode() is valid or exception would be raised */ if (sg_parent && sg_parent->IsSlowParent()) { return PyFloat_FromDouble(static_cast(sg_parent->GetParentRelation())->GetTimeOffset()); } else { @@ -1549,7 +1563,7 @@ int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF { KX_GameObject* self= static_cast(self_v); MT_Scalar val = PyFloat_AsDouble(value); - SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); + SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); /* GetSGNode() is valid or exception would be raised */ if (val < 0.0f) { /* also accounts for non float */ PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); return 1; @@ -1604,6 +1618,10 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE return meshes; } +PyObject* KX_GameObject::pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + Py_RETURN_TRUE; +} /* experemental! */ PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) @@ -1642,7 +1660,6 @@ PyObject* KX_GameObject::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE return resultlist; } - /* __dict__ only for the purpose of giving useful dir() results */ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { @@ -1674,7 +1691,6 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ return dict; } - PyObject* KX_GameObject::py_getattro(PyObject *attr) { py_getattro_up(SCA_IObject); @@ -1685,6 +1701,113 @@ int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro m py_setattro_up(SCA_IObject); } + +/* we need our own getattr and setattr types */ +/* See m_attrlist definition for rules on how this works */ +PyObject *KX_GameObject::py_base_getattro_gameobject(PyObject * self, PyObject *attr) +{ + if(((KX_GameObject *) self)->GetSGNode()==NULL) { + if (!strcmp(PyString_AsString(attr), "isValid")) { + PyErr_Clear(); + Py_INCREF(Py_False); + return Py_False; + } + + ValidPythonToGameObject(((KX_GameObject *) self)); // we know its invalid, just get the error + return NULL; + } + + PyObject *object= ((KX_GameObject *) self)->py_getattro(attr); + + if (object==NULL && ((KX_GameObject *) self)->m_attrlist) { + /* backup the exception incase the attr doesnt exist in the dict either */ + PyObject *err_type, *err_value, *err_tb; + PyErr_Fetch(&err_type, &err_value, &err_tb); + + object= PyDict_GetItem(((KX_GameObject *) self)->m_attrlist, attr); + if (object) { + Py_INCREF(object); + + PyErr_Clear(); + Py_XDECREF( err_type ); + Py_XDECREF( err_value ); + Py_XDECREF( err_tb ); + } + else { + PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ + } + } + return object; +} + +int KX_GameObject::py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value) +{ + int ret; + + /* Delete the item */ + if (value==NULL) + { + ret= ((PyObjectPlus*) self)->py_delattro(attr); + + if (ret != 0) /* CValue attribute failed, try KX_GameObject m_attrlist dict */ + { + if (((KX_GameObject *) self)->m_attrlist) + { + /* backup the exception incase the attr doesnt exist in the dict either */ + PyObject *err_type, *err_value, *err_tb; + PyErr_Fetch(&err_type, &err_value, &err_tb); + + if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) == 0) + { + ret= 0; + PyErr_Clear(); + Py_XDECREF( err_type ); + Py_XDECREF( err_value ); + Py_XDECREF( err_tb ); + } + else { + PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ + } + } + } + return ret; + } + + + ret= ((PyObjectPlus*) self)->py_setattro(attr, value); + + if (ret==PY_SET_ATTR_SUCCESS) { + /* remove attribute in our own dict to avoid double ups */ + if (((KX_GameObject *) self)->m_attrlist) { + if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) != 0) + PyErr_Clear(); + } + } + + if (ret==PY_SET_ATTR_COERCE_FAIL) { + /* CValue attribute exists, remove and add dict value */ + ((KX_GameObject *) self)->RemoveProperty(STR_String(PyString_AsString(attr))); + ret= PY_SET_ATTR_MISSING; + } + + if (ret==PY_SET_ATTR_MISSING) { + /* Lazy initialization */ + if (((KX_GameObject *) self)->m_attrlist==NULL) + ((KX_GameObject *) self)->m_attrlist = PyDict_New(); + + if (PyDict_SetItem(((KX_GameObject *) self)->m_attrlist, attr, value)==0) { + PyErr_Clear(); + ret= PY_SET_ATTR_SUCCESS; + } + else { + PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_GameObject internal dictionary"); + ret= PY_SET_ATTR_FAIL; + } + } + + return ret; +} + PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) { int local = 0; @@ -1992,7 +2115,7 @@ static void walk_children(SG_Node* node, CListValue* list, bool recursive) PyObject* KX_GameObject::PyGetChildren(PyObject* self) { CListValue* list = new CListValue(); - walk_children(m_pSGNode, list, 0); + walk_children(GetSGNode(), list, 0); /* GetSGNode() is always valid or it would have raised an exception before this */ return list; } @@ -2569,6 +2692,11 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py if (PyObject_TypeCheck(value, &KX_GameObject::Type)) { *object = static_cast(value); + + /* sets the error */ + if (ValidPythonToGameObject(*object)==false) + return false; + return true; } @@ -2582,3 +2710,17 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py return false; } + +bool ValidPythonToGameObject(KX_GameObject *object) +{ + if (object->GetSGNode()==NULL) { + PyErr_Format( + PyExc_RuntimeError, + "KX_GameObject \"%s\" is not longer in a scene, " + "check for this case with the \"isValid\" attribute", + object->GetName().ReadPtr() ); + return false; + } + + return true; +} \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 94192580859..0bf3e60f34b 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -51,7 +51,6 @@ #include "SCA_LogicManager.h" /* for ConvertPythonToGameObject to search object names */ #define KX_OB_DYNAMIC 1 - //Forward declarations. struct KX_ClientObjectInfo; class KX_RayCast; @@ -61,6 +60,10 @@ class PHY_IGraphicController; class PHY_IPhysicsEnvironment; struct Object; +/* utility conversion function */ +bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok); +bool ValidPythonToGameObject(KX_GameObject *object); + /** * KX_GameObject is the main class for dynamic objects. */ @@ -811,104 +814,15 @@ public: virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method - virtual PyObject* py_repr(void) { return PyString_FromString(GetName().ReadPtr()); } - - /* we need our own getattr and setattr types */ - /* See m_attrlist definition for rules on how this works */ - static PyObject *py_base_getattro_gameobject(PyObject * self, PyObject *attr) + virtual PyObject* py_repr(void) { - PyObject *object= ((KX_GameObject *) self)->py_getattro(attr); - - if (object==NULL && ((KX_GameObject *) self)->m_attrlist) { - /* backup the exception incase the attr doesnt exist in the dict either */ - PyObject *err_type, *err_value, *err_tb; - PyErr_Fetch(&err_type, &err_value, &err_tb); - - object= PyDict_GetItem(((KX_GameObject *) self)->m_attrlist, attr); - if (object) { - Py_INCREF(object); - - PyErr_Clear(); - Py_XDECREF( err_type ); - Py_XDECREF( err_value ); - Py_XDECREF( err_tb ); - } - else { - PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ - } - } - return object; + if (ValidPythonToGameObject(this)==false) + return NULL; + return PyString_FromString(GetName().ReadPtr()); } - static int py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value) - { - int ret; - - /* Delete the item */ - if (value==NULL) - { - ret= ((PyObjectPlus*) self)->py_delattro(attr); - - if (ret != 0) /* CValue attribute failed, try KX_GameObject m_attrlist dict */ - { - if (((KX_GameObject *) self)->m_attrlist) - { - /* backup the exception incase the attr doesnt exist in the dict either */ - PyObject *err_type, *err_value, *err_tb; - PyErr_Fetch(&err_type, &err_value, &err_tb); - - if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) == 0) - { - ret= 0; - PyErr_Clear(); - Py_XDECREF( err_type ); - Py_XDECREF( err_value ); - Py_XDECREF( err_tb ); - } - else { - PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ - } - } - } - return ret; - } - - - ret= ((PyObjectPlus*) self)->py_setattro(attr, value); - - if (ret==PY_SET_ATTR_SUCCESS) { - /* remove attribute in our own dict to avoid double ups */ - if (((KX_GameObject *) self)->m_attrlist) { - if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) != 0) - PyErr_Clear(); - } - } - - if (ret==PY_SET_ATTR_COERCE_FAIL) { - /* CValue attribute exists, remove and add dict value */ - ((KX_GameObject *) self)->RemoveProperty(STR_String(PyString_AsString(attr))); - ret= PY_SET_ATTR_MISSING; - } - - if (ret==PY_SET_ATTR_MISSING) { - /* Lazy initialization */ - if (((KX_GameObject *) self)->m_attrlist==NULL) - ((KX_GameObject *) self)->m_attrlist = PyDict_New(); - - if (PyDict_SetItem(((KX_GameObject *) self)->m_attrlist, attr, value)==0) { - PyErr_Clear(); - ret= PY_SET_ATTR_SUCCESS; - } - else { - PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_GameObject internal dictionary"); - ret= PY_SET_ATTR_FAIL; - } - } - - return ret; - } - - + static PyObject *py_base_getattro_gameobject(PyObject * self, PyObject *attr); + static int py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value); KX_PYMETHOD_NOARGS(KX_GameObject,GetPosition); KX_PYMETHOD_O(KX_GameObject,SetPosition); @@ -979,6 +893,7 @@ public: static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_meshes(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); @@ -1012,8 +927,5 @@ private : }; -/* utility conversion function */ -bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok); - #endif //__KX_GAMEOBJECT diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 059345ea8de..0fcd2c39078 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -177,6 +177,14 @@ PyObject* KX_LightObject::py_getattro(PyObject *attr) { char *attr_str= PyString_AsString(attr); + if (ValidPythonToGameObject(this)==false) { + if (!strcmp(attr_str, "isValid")) { + PyErr_Clear(); + Py_RETURN_FALSE; + } + return NULL; + } + if (!strcmp(attr_str, "layer")) return PyInt_FromLong(m_lightobj.m_layer); @@ -216,9 +224,14 @@ PyObject* KX_LightObject::py_getattro(PyObject *attr) py_getattro_up(KX_GameObject); } -int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) + +int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) { char *attr_str= PyString_AsString(attr); + + if (ValidPythonToGameObject(this)==false) + return -1; + if (PyInt_Check(pyvalue)) { int value = PyInt_AsLong(pyvalue); diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 44b84d44d8d..4aa9de2fe86 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -12,6 +12,7 @@ class KX_GameObject: # (SCA_IObject) All game objects are derived from this class. Properties assigned to game objects are accessible as attributes of this class. + - note: Calling ANY method or attribute on an object that has been removed from a scene will raise a RuntimeError, if an object may have been removed since last accessing it use the L{isValid} attribute to check. @ivar name: The object's name. (Read only) - note: Currently (Blender 2.49) the prefix "OB" is added to all objects name. This may change in blender 2.5. @@ -63,6 +64,8 @@ class KX_GameObject: # (SCA_IObject) - note: This attribute is experemental and may be removed (but probably wont be). - note: Changes to this list will not update the KX_GameObject. @type actuators: list + @ivar isValid: Retuerns fails when the object has been removed from the scene and can no longer be used. + @type isValid: bool """ def endObject(visible): """ From 514c78ba39f296fcac60b33d9a040af2051d23cc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 13:50:56 +0000 Subject: [PATCH 166/201] BGE MouseFocusSensor - fix for multiple viewpors broke single viewport (both work now) - python could get uninitialized values from m_prevTargetPoint and m_prevSourcePoint - getting the RayDirection for python could crash blender trying to normalize a zero length vector. - added python attributes - removed unused canvas from the MouseFocusSensor class --- .../Converter/KX_ConvertSensors.cpp | 1 - .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 309 ++++++++++++------ .../gameengine/Ketsji/KX_MouseFocusSensor.h | 26 +- .../gameengine/PyDoc/KX_MouseFocusSensor.py | 27 +- 4 files changed, 238 insertions(+), 125 deletions(-) diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp index 64cfc101751..19e594ff0cb 100644 --- a/source/gameengine/Converter/KX_ConvertSensors.cpp +++ b/source/gameengine/Converter/KX_ConvertSensors.cpp @@ -509,7 +509,6 @@ void BL_ConvertSensors(struct Object* blenderobject, starty, keytype, trackfocus, - canvas, kxscene, kxengine, gameobj); diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 2cb74ba65ab..65190937f35 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -61,14 +61,12 @@ KX_MouseFocusSensor::KX_MouseFocusSensor(SCA_MouseManager* eventmgr, int starty, short int mousemode, int focusmode, - RAS_ICanvas* canvas, KX_Scene* kxscene, KX_KetsjiEngine *kxengine, SCA_IObject* gameobj, PyTypeObject* T) : SCA_MouseSensor(eventmgr, startx, starty, mousemode, gameobj, T), m_focusmode(focusmode), - m_gp_canvas(canvas), m_kxscene(kxscene), m_kxengine(kxengine) { @@ -81,6 +79,11 @@ void KX_MouseFocusSensor::Init() m_positive_event = false; m_hitObject = 0; m_reset = true; + + m_hitPosition.setValue(0,0,0); + m_prevTargetPoint.setValue(0,0,0); + m_prevSourcePoint.setValue(0,0,0); + m_hitNormal.setValue(0,0,1); } bool KX_MouseFocusSensor::Evaluate(CValue* event) @@ -150,12 +153,8 @@ bool KX_MouseFocusSensor::RayHit(KX_ClientObjectInfo* client_info, KX_RayCast* r -bool KX_MouseFocusSensor::ParentObjectHasFocus() +bool KX_MouseFocusSensor::ParentObjectHasFocusCamera(KX_Camera *cam) { - m_hitObject = 0; - m_hitPosition.setValue(0,0,0); - m_hitNormal.setValue(1,0,0); - /* All screen handling in the gameengine is done by GL, * specifically the model/view and projection parts. The viewport * part is in the creator. @@ -187,11 +186,7 @@ bool KX_MouseFocusSensor::ParentObjectHasFocus() * = 1.0 - 2(y_blender - y_lb)/height * * */ - - MT_Vector4 frompoint; - MT_Vector4 topoint; - - bool result = false; + /* Because we don't want to worry about resize events, camera * changes and all that crap, we just determine this over and @@ -200,105 +195,138 @@ bool KX_MouseFocusSensor::ParentObjectHasFocus() * canvas, the test is irrelevant. The 1.0 makes sure the * calculations don't bomb. Maybe we should explicitly guard for * division by 0.0...*/ - list* cameras = m_kxscene->GetCameras(); - // Draw the scene once for each camera with an enabled viewport + RAS_Rect area, viewport; + m_kxengine->GetSceneViewport(m_kxscene, cam, area, viewport); + + /* Check if the mouse is in the viewport */ + if (( m_x < viewport.m_x2 && // less then right + m_x > viewport.m_x1 && // more then then left + m_y < viewport.m_y2 && // below top + m_y > viewport.m_y1) == 0) // above bottom + { + return false; + } + + float height = float(viewport.m_y2 - viewport.m_y1 + 1); + float width = float(viewport.m_x2 - viewport.m_x1 + 1); + + float x_lb = float(viewport.m_x1); + float y_lb = float(viewport.m_y1); + + MT_Vector4 frompoint; + MT_Vector4 topoint; + + /* There's some strangeness I don't fully get here... These values + * _should_ be wrong! - see from point Z values */ + + + /* build the from and to point in normalized device coordinates + * Looks like normailized device coordinates are [-1,1] in x [-1,1] in y + * [0,-1] in z + * + * The actual z coordinates used don't have to be exact just infront and + * behind of the near and far clip planes. + */ + frompoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, + 1.0 - (2 * (m_y - y_lb) / height), + 0.0, /* nearclip, see above comments */ + 1.0 ); + + topoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, + 1.0 - (2 * (m_y-y_lb) / height), + 1.0, /* farclip, see above comments */ + 1.0 ); + + /* camera to world */ + MT_Transform wcs_camcs_tranform = cam->GetWorldToCamera(); + if (!cam->GetCameraData()->m_perspective) + wcs_camcs_tranform.getOrigin()[2] *= 100.0; + MT_Transform cams_wcs_transform; + cams_wcs_transform.invert(wcs_camcs_tranform); + + MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cams_wcs_transform); + + /* badly defined, the first time round.... I wonder why... I might + * want to guard against floating point errors here.*/ + MT_Matrix4x4 clip_camcs_matrix = MT_Matrix4x4(cam->GetProjectionMatrix()); + clip_camcs_matrix.invert(); + + /* shoot-points: clip to cam to wcs . win to clip was already done.*/ + frompoint = clip_camcs_matrix * frompoint; + topoint = clip_camcs_matrix * topoint; + frompoint = camcs_wcs_matrix * frompoint; + topoint = camcs_wcs_matrix * topoint; + + /* from hom wcs to 3d wcs: */ + m_prevSourcePoint.setValue( frompoint[0]/frompoint[3], + frompoint[1]/frompoint[3], + frompoint[2]/frompoint[3]); + + m_prevTargetPoint.setValue( topoint[0]/topoint[3], + topoint[1]/topoint[3], + topoint[2]/topoint[3]); + + /* 2. Get the object from PhysicsEnvironment */ + /* Shoot! Beware that the first argument here is an + * ignore-object. We don't ignore anything... */ + KX_IPhysicsController* physics_controller = cam->GetPhysicsController(); + PHY_IPhysicsEnvironment* physics_environment = m_kxscene->GetPhysicsEnvironment(); + + KX_RayCast::Callback callback(this,physics_controller); + + KX_RayCast::RayTest(physics_environment, m_prevSourcePoint, m_prevTargetPoint, callback); + + if (m_hitObject) + return true; + + return false; +} + +bool KX_MouseFocusSensor::ParentObjectHasFocus() +{ + m_hitObject = 0; + m_hitPosition.setValue(0,0,0); + m_hitNormal.setValue(1,0,0); + + KX_Camera *cam= m_kxscene->GetActiveCamera(); + + if(ParentObjectHasFocusCamera(cam)) + return true; + + list* cameras = m_kxscene->GetCameras(); list::iterator it = cameras->begin(); + while(it != cameras->end()) { - if((*it)->GetViewport()) - { - KX_Camera* cam= (*it); + if(((*it) != cam) && (*it)->GetViewport()) + if (ParentObjectHasFocusCamera(*it)) + return true; - /* get the scenes current viewport. we recompute it because there - * may be multiple cameras and m_kxscene->GetSceneViewport() only - * has the one that was last drawn */ - - RAS_Rect area, viewport; - m_kxengine->GetSceneViewport(m_kxscene, cam, area, viewport); - - /* Check if the mouse is in the viewport */ - if ( m_x < viewport.m_x2 && // less then right - m_x > viewport.m_x1 && // more then then left - m_y < viewport.m_y2 && // below top - m_y > viewport.m_y1) // above bottom - { - float height = float(viewport.m_y2 - viewport.m_y1 + 1); - float width = float(viewport.m_x2 - viewport.m_x1 + 1); - - float x_lb = float(viewport.m_x1); - float y_lb = float(viewport.m_y1); - - /* There's some strangeness I don't fully get here... These values - * _should_ be wrong! - see from point Z values */ - - - /* build the from and to point in normalized device coordinates - * Looks like normailized device coordinates are [-1,1] in x [-1,1] in y - * [0,-1] in z - * - * The actual z coordinates used don't have to be exact just infront and - * behind of the near and far clip planes. - */ - frompoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, - 1.0 - (2 * (m_y - y_lb) / height), - 0.0, /* nearclip, see above comments */ - 1.0 ); - - topoint.setValue( (2 * (m_x-x_lb) / width) - 1.0, - 1.0 - (2 * (m_y-y_lb) / height), - 1.0, /* farclip, see above comments */ - 1.0 ); - - /* camera to world */ - MT_Transform wcs_camcs_tranform = cam->GetWorldToCamera(); - if (!cam->GetCameraData()->m_perspective) - wcs_camcs_tranform.getOrigin()[2] *= 100.0; - MT_Transform cams_wcs_transform; - cams_wcs_transform.invert(wcs_camcs_tranform); - - MT_Matrix4x4 camcs_wcs_matrix = MT_Matrix4x4(cams_wcs_transform); - - /* badly defined, the first time round.... I wonder why... I might - * want to guard against floating point errors here.*/ - MT_Matrix4x4 clip_camcs_matrix = MT_Matrix4x4(cam->GetProjectionMatrix()); - clip_camcs_matrix.invert(); - - /* shoot-points: clip to cam to wcs . win to clip was already done.*/ - frompoint = clip_camcs_matrix * frompoint; - topoint = clip_camcs_matrix * topoint; - frompoint = camcs_wcs_matrix * frompoint; - topoint = camcs_wcs_matrix * topoint; - - /* from hom wcs to 3d wcs: */ - m_prevSourcePoint.setValue( frompoint[0]/frompoint[3], - frompoint[1]/frompoint[3], - frompoint[2]/frompoint[3]); - - m_prevTargetPoint.setValue( topoint[0]/topoint[3], - topoint[1]/topoint[3], - topoint[2]/topoint[3]); - - /* 2. Get the object from PhysicsEnvironment */ - /* Shoot! Beware that the first argument here is an - * ignore-object. We don't ignore anything... */ - KX_IPhysicsController* physics_controller = cam->GetPhysicsController(); - PHY_IPhysicsEnvironment* physics_environment = m_kxscene->GetPhysicsEnvironment(); - - KX_RayCast::Callback callback(this,physics_controller); - - KX_RayCast::RayTest(physics_environment, m_prevSourcePoint, m_prevTargetPoint, callback); - - if (m_hitObject) { - result= true; - break; - } - } - } it++; } - return result; + return false; +} + +const MT_Point3& KX_MouseFocusSensor::RaySource() const +{ + return m_prevSourcePoint; +} + +const MT_Point3& KX_MouseFocusSensor::RayTarget() const +{ + return m_prevTargetPoint; +} + +const MT_Point3& KX_MouseFocusSensor::HitPosition() const +{ + return m_hitPosition; +} + +const MT_Vector3& KX_MouseFocusSensor::HitNormal() const +{ + return m_hitNormal; } /* ------------------------------------------------------------------------- */ @@ -342,11 +370,16 @@ PyMethodDef KX_MouseFocusSensor::Methods[] = { {"getHitNormal",(PyCFunction) KX_MouseFocusSensor::sPyGetHitNormal,METH_NOARGS, (PY_METHODCHAR)GetHitNormal_doc}, {"getRayDirection",(PyCFunction) KX_MouseFocusSensor::sPyGetRayDirection,METH_NOARGS, (PY_METHODCHAR)GetRayDirection_doc}, - {NULL,NULL} //Sentinel }; PyAttributeDef KX_MouseFocusSensor::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("raySource", KX_MouseFocusSensor, pyattr_get_ray_source), + KX_PYATTRIBUTE_RO_FUNCTION("rayTarget", KX_MouseFocusSensor, pyattr_get_ray_target), + KX_PYATTRIBUTE_RO_FUNCTION("rayDirection", KX_MouseFocusSensor, pyattr_get_ray_direction), + KX_PYATTRIBUTE_RO_FUNCTION("hitObject", KX_MouseFocusSensor, pyattr_get_hit_object), + KX_PYATTRIBUTE_RO_FUNCTION("hitPosition", KX_MouseFocusSensor, pyattr_get_hit_position), + KX_PYATTRIBUTE_RO_FUNCTION("hitNormal", KX_MouseFocusSensor, pyattr_get_hit_normal), { NULL } //Sentinel }; @@ -360,6 +393,8 @@ const char KX_MouseFocusSensor::GetHitObject_doc[] = "\tReturns the object that was hit by this ray.\n"; PyObject* KX_MouseFocusSensor::PyGetHitObject(PyObject* self) { + ShowDeprecationWarning("GetHitObject()", "the hitObject property"); + if (m_hitObject) return m_hitObject->AddRef(); @@ -372,6 +407,8 @@ const char KX_MouseFocusSensor::GetHitPosition_doc[] = "\tReturns the position (in worldcoordinates) where the object was hit by this ray.\n"; PyObject* KX_MouseFocusSensor::PyGetHitPosition(PyObject* self) { + ShowDeprecationWarning("getHitPosition()", "the hitPosition property"); + return PyObjectFrom(m_hitPosition); } @@ -380,9 +417,11 @@ const char KX_MouseFocusSensor::GetRayDirection_doc[] = "\tReturns the direction from the ray (in worldcoordinates) .\n"; PyObject* KX_MouseFocusSensor::PyGetRayDirection(PyObject* self) { - + ShowDeprecationWarning("getRayDirection()", "the rayDirection property"); + MT_Vector3 dir = m_prevTargetPoint - m_prevSourcePoint; - dir.normalize(); + if(MT_fuzzyZero(dir)) dir.setValue(0,0,0); + else dir.normalize(); return PyObjectFrom(dir); } @@ -391,6 +430,8 @@ const char KX_MouseFocusSensor::GetHitNormal_doc[] = "\tReturns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray.\n"; PyObject* KX_MouseFocusSensor::PyGetHitNormal(PyObject* self) { + ShowDeprecationWarning("getHitNormal()", "the hitNormal property"); + return PyObjectFrom(m_hitNormal); } @@ -400,7 +441,10 @@ const char KX_MouseFocusSensor::GetRayTarget_doc[] = "getRayTarget()\n" "\tReturns the target of the ray that seeks the focus object,\n" "\tin worldcoordinates."; -PyObject* KX_MouseFocusSensor::PyGetRayTarget(PyObject* self) { +PyObject* KX_MouseFocusSensor::PyGetRayTarget(PyObject* self) +{ + ShowDeprecationWarning("getRayTarget()", "the rayTarget property"); + return PyObjectFrom(m_prevTargetPoint); } @@ -409,9 +453,58 @@ const char KX_MouseFocusSensor::GetRaySource_doc[] = "getRaySource()\n" "\tReturns the source of the ray that seeks the focus object,\n" "\tin worldcoordinates."; -PyObject* KX_MouseFocusSensor::PyGetRaySource(PyObject* self) { +PyObject* KX_MouseFocusSensor::PyGetRaySource(PyObject* self) +{ + ShowDeprecationWarning("getRaySource()", "the raySource property"); + return PyObjectFrom(m_prevSourcePoint); } +/* Attributes */ +PyObject* KX_MouseFocusSensor::pyattr_get_ray_source(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + return PyObjectFrom(self->RaySource()); +} + +PyObject* KX_MouseFocusSensor::pyattr_get_ray_target(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + return PyObjectFrom(self->RayTarget()); +} + +PyObject* KX_MouseFocusSensor::pyattr_get_ray_direction(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + MT_Vector3 dir = self->RayTarget() - self->RaySource(); + if(MT_fuzzyZero(dir)) dir.setValue(0,0,0); + else dir.normalize(); + return PyObjectFrom(dir); +} + +PyObject* KX_MouseFocusSensor::pyattr_get_hit_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + + if(self->m_hitObject) + return self->m_hitObject->AddRef(); + + Py_RETURN_NONE; +} + +PyObject* KX_MouseFocusSensor::pyattr_get_hit_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + return PyObjectFrom(self->HitPosition()); +} + +PyObject* KX_MouseFocusSensor::pyattr_get_hit_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_MouseFocusSensor* self= static_cast(self_v); + return PyObjectFrom(self->HitNormal()); +} + + + /* eof */ diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h index 804f34e6076..8de1f88c5c3 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h @@ -54,7 +54,6 @@ class KX_MouseFocusSensor : public SCA_MouseSensor int starty, short int mousemode, int focusmode, - RAS_ICanvas* canvas, KX_Scene* kxscene, KX_KetsjiEngine* kxengine, SCA_IObject* gameobj, @@ -82,7 +81,10 @@ class KX_MouseFocusSensor : public SCA_MouseSensor bool RayHit(KX_ClientObjectInfo* client, KX_RayCast* result, void * const data); bool NeedRayCast(KX_ClientObjectInfo* client) { return true; } - + const MT_Point3& RaySource() const; + const MT_Point3& RayTarget() const; + const MT_Point3& HitPosition() const; + const MT_Vector3& HitNormal() const; /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ @@ -97,6 +99,14 @@ class KX_MouseFocusSensor : public SCA_MouseSensor KX_PYMETHOD_DOC_NOARGS(KX_MouseFocusSensor,GetHitNormal); KX_PYMETHOD_DOC_NOARGS(KX_MouseFocusSensor,GetRayDirection); + /* attributes */ + static PyObject* pyattr_get_ray_source(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_ray_target(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_ray_direction(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_hit_object(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_hit_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_hit_normal(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + /* --------------------------------------------------------------------- */ SCA_IObject* m_hitObject; @@ -116,9 +126,13 @@ class KX_MouseFocusSensor : public SCA_MouseSensor */ bool m_positive_event; + /** + * Tests whether the object is in mouse focus for this camera + */ + bool ParentObjectHasFocusCamera(KX_Camera *cam); /** - * Tests whether the object is in mouse focus in this frame. + * Tests whether the object is in mouse focus in this scene. */ bool ParentObjectHasFocus(void); @@ -142,12 +156,6 @@ class KX_MouseFocusSensor : public SCA_MouseSensor * the object was hit. */ MT_Vector3 m_hitNormal; - - /** - * The active canvas. The size of this canvas determines a part of - * the start position of the picking ray. */ - RAS_ICanvas* m_gp_canvas; - /** * The KX scene that holds the camera. The camera position * determines a part of the start location of the picking ray. */ diff --git a/source/gameengine/PyDoc/KX_MouseFocusSensor.py b/source/gameengine/PyDoc/KX_MouseFocusSensor.py index ceab5b8c511..24f7716218b 100644 --- a/source/gameengine/PyDoc/KX_MouseFocusSensor.py +++ b/source/gameengine/PyDoc/KX_MouseFocusSensor.py @@ -8,46 +8,59 @@ class KX_MouseFocusSensor(SCA_MouseSensor): The mouse focus sensor works by transforming the mouse coordinates from 2d device space to 3d space then raycasting away from the camera. + + @ivar raySource: The worldspace source of the ray (the view position) + @type raySource: list (vector of 3 floats) + @ivar rayTarget: The worldspace target of the ray. + @type rayTarget: list (vector of 3 floats) + @ivar rayDirection: The L{rayTarget} - L{raySource} normalized. + @type rayDirection: list (normalized vector of 3 floats) + @ivar hitObject: the last object the mouse was over. + @type hitObject: L{KX_GameObject} or None + @ivar hitPosition: The worldspace position of the ray intersecton. + @type hitPosition: list (vector of 3 floats) + @ivar hitNormal: the worldspace normal from the face at point of intersection. + @type hitNormal: list (normalized vector of 3 floats) """ def getHitNormal(): """ - Returns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray. - + Returns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray. (B{deprecated}) + @rtype: list [x, y, z] @return: the ray collision normal. """ def getHitObject(): """ - Returns the object that was hit by this ray or None. + Returns the object that was hit by this ray or None. (B{deprecated}) @rtype: L{KX_GameObject} or None @return: the collision object. """ def getHitPosition(): """ - Returns the position (in worldcoordinates) at the point of collision where the object was hit by this ray. + Returns the position (in worldcoordinates) at the point of collision where the object was hit by this ray. (B{deprecated}) @rtype: list [x, y, z] @return: the ray collision position. """ def getRayDirection(): """ - Returns the normalized direction (in worldcoordinates) of the ray cast by the mouse. + Returns the normalized direction (in worldcoordinates) of the ray cast by the mouse. (B{deprecated}) @rtype: list [x, y, z] @return: the ray direction. """ def getRaySource(): """ - Returns the position (in worldcoordinates) the ray was cast from by the mouse. + Returns the position (in worldcoordinates) the ray was cast from by the mouse. (B{deprecated}) @rtype: list [x, y, z] @return: the ray source. """ def getRayTarget(): """ - Returns the target of the ray (in worldcoordinates) that seeks the focus object. + Returns the target of the ray (in worldcoordinates) that seeks the focus object. (B{deprecated}) @rtype: list [x, y, z] @return: the ray target. From 3616eb9031df319b2865172482413d7dd916c46c Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Wed, 15 Apr 2009 16:16:00 +0000 Subject: [PATCH 167/201] Fixing more errors coverity found. Imagepaint make sure ibuf exists before we use it. This is CID# 545 editmesh_tools.c make sure were not indexing array with -1 This is CID# 137 (also removed some trailing whitespace I found) anim5.c totlen could be -1 so check its > -1 This is CID# 134 Kent --- source/blender/imbuf/intern/anim5.c | 2 +- source/blender/src/editmesh_tools.c | 26 +++++++++++++++----------- source/blender/src/imagepaint.c | 3 +-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/source/blender/imbuf/intern/anim5.c b/source/blender/imbuf/intern/anim5.c index ab203fe80de..b6f29b6a145 100644 --- a/source/blender/imbuf/intern/anim5.c +++ b/source/blender/imbuf/intern/anim5.c @@ -425,7 +425,7 @@ int startanim5(struct anim * anim) { /* de hele file wordt in het geheugen gemapped */ totlen = BLI_filesize(file); - if (totlen && file>=0) { + if (totlen>0 && file>=0) { lseek(file, 0L, SEEK_SET); mem= MEM_mallocN(totlen, "mmap"); diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 690b4481ec9..377cb42e2f5 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -2520,11 +2520,13 @@ void esubdivideflag(int flag, float rad, int beauty, int numcuts, int seltype) } } } - sort[hold]->f &= ~SELECT; - sort[hold]->f2 |= EDGENEW; - length[hold] = -1; - } - } + if (hold > -1) { + sort[hold]->f &= ~SELECT; + sort[hold]->f2 |= EDGENEW; + length[hold] = -1; + } + } + } // Beauty Long Edges else { @@ -2541,13 +2543,15 @@ void esubdivideflag(int flag, float rad, int beauty, int numcuts, int seltype) } } } - sort[hold]->f &= ~SELECT; - sort[hold]->f2 |= EDGENEW; - length[hold] = -1; - } - } + if (hold > -1) { + sort[hold]->f &= ~SELECT; + sort[hold]->f2 |= EDGENEW; + length[hold] = -1; + } + } + } } - } + } } gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp); diff --git a/source/blender/src/imagepaint.c b/source/blender/src/imagepaint.c index ede6679b9f5..4d6c0898bce 100644 --- a/source/blender/src/imagepaint.c +++ b/source/blender/src/imagepaint.c @@ -708,8 +708,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float } ibuf = BKE_image_get_ibuf((Image *)tf->tpage, NULL); /* TODO - this may be slow, the only way around it is to have an ibuf index per face */ - - + if (!ibuf) return 0; if (interp) { float x, y; From f46f93ea139b52fa28e303216803222c61f4e451 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Wed, 15 Apr 2009 16:23:13 +0000 Subject: [PATCH 168/201] This is patch [#18408] Build issues with make on Cygwin hosted MinGW (2.48.1) submitted by Wayne Dennis adds an include, changes pythonlib and does a little cleaning of dlltool stuff. Kent --- source/gameengine/GamePlayer/common/windows/Makefile | 1 + source/nan_definitions.mk | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/gameengine/GamePlayer/common/windows/Makefile b/source/gameengine/GamePlayer/common/windows/Makefile index b0fb25f35b8..f35642f9651 100644 --- a/source/gameengine/GamePlayer/common/windows/Makefile +++ b/source/gameengine/GamePlayer/common/windows/Makefile @@ -50,6 +50,7 @@ CPPFLAGS += -I$(NAN_MOTO)/include CPPFLAGS += -I$(NAN_STRING)/include CPPFLAGS += -I$(NAN_BMFONT)/include CPPFLAGS += -I$(NAN_SOUNDSYSTEM)/include +CPPFLAGS += -I$(NAN_GLEW)/include # Blender stuff CPPFLAGS += -I$(SRCHOME)/blender/blenkernel diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index 027a97eaf8e..f7bcd47930c 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -516,7 +516,7 @@ endif ifeq ($(FREE_WINDOWS), true) export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/freegettext.a $(NAN_ICONV)/lib/freeiconv.a export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) - export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/freepy.a + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/lib25_vs2005/libpython25.a export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype export NAN_ODE ?= $(LCGDIR)/gcc/ode export NAN_SDL ?= $(LCGDIR)/gcc/sdl From b7e40b955fd635d703b70344dd91afc1506ecbc4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 18:20:19 +0000 Subject: [PATCH 169/201] Optional margin for packing UV islands and the 'Pack Islands' menu item. Useful for baking with bleed enabled. --- source/blender/makesdna/DNA_scene_types.h | 2 ++ source/blender/src/buttons_editing.c | 5 ++++- source/blender/src/parametrizer.c | 12 ++++++------ source/blender/src/parametrizer.h | 2 +- source/blender/src/unwrapper.c | 4 ++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index bf5b2ad3df5..d26bdd469f6 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -412,6 +412,8 @@ typedef struct ToolSettings { short unwrapper; float uvcalc_radius; float uvcalc_cubesize; + float uvcalc_margin; + float pad; short uvcalc_mapdir; short uvcalc_mapalign; short uvcalc_flag; diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 2ec30bfa864..779909ec713 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -6622,7 +6622,10 @@ static void editing_panel_mesh_uvautocalculation(void) uiDefButBitS(block, TOGN, UVCALC_NO_ASPECT_CORRECT, B_NOP, "Image Aspect",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Scale the UV Unwrapping to correct for the current images aspect ratio"); row-= butHB+butS; - uiDefButBitS(block, TOG, UVCALC_TRANSFORM_CORRECT, B_NOP, "Transform Correction",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Correct for UV distortion while transforming, (only works with edge slide now)"); + uiDefButBitS(block, TOG, UVCALC_TRANSFORM_CORRECT, B_NOP, "Transform Correction",100,row,200,butH,&G.scene->toolsettings->uvcalc_flag, 0, 0, 0, 0, "Correct for UV distortion while transforming, (only works with edge slide now)"); + + row-= butHB+butS; + uiDefButF(block, NUM,B_NOP ,"Pack Margin:",100,row,200,butH, &G.scene->toolsettings->uvcalc_margin, 0.0, 1.0, 10, 2, "Add a margin between UV islands when unwrapping or with 'Pack Islands' in the UV window"); row= 180; diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c index 1cf796d86bc..654113f5f0c 100644 --- a/source/blender/src/parametrizer.c +++ b/source/blender/src/parametrizer.c @@ -4125,8 +4125,8 @@ void param_smooth_area(ParamHandle *handle) } } -void param_pack(ParamHandle *handle) -{ +void param_pack(ParamHandle *handle, float margin) +{ /* box packing variables */ boxPack *boxarray, *box; float tot_width, tot_height, scale; @@ -4158,13 +4158,13 @@ void param_pack(ParamHandle *handle) p_chart_uv_bbox(chart, trans, chart->u.pack.size); - trans[0] = -trans[0]; - trans[1] = -trans[1]; + trans[0] = -(trans[0] - margin); + trans[1] = -(trans[1] - margin); p_chart_uv_translate(chart, trans); - box->w = chart->u.pack.size[0] + trans[0]; - box->h = chart->u.pack.size[1] + trans[1]; + box->w = (chart->u.pack.size[0] + trans[0]) + margin*2; + box->h = (chart->u.pack.size[1] + trans[1]) + margin*2; box->index = i; /* warning this index skips PCHART_NOPACK boxes */ } diff --git a/source/blender/src/parametrizer.h b/source/blender/src/parametrizer.h index c468b8d62c5..f1454ee3865 100644 --- a/source/blender/src/parametrizer.h +++ b/source/blender/src/parametrizer.h @@ -73,7 +73,7 @@ void param_smooth_area(ParamHandle *handle); /* Packing */ -void param_pack(ParamHandle *handle); +void param_pack(ParamHandle *handle, float margin); /* Average area for all charts */ diff --git a/source/blender/src/unwrapper.c b/source/blender/src/unwrapper.c index 612e068c6ca..fadc087df65 100644 --- a/source/blender/src/unwrapper.c +++ b/source/blender/src/unwrapper.c @@ -327,7 +327,7 @@ void unwrap_lscm(short seamcut) param_lscm_solve(handle); param_lscm_end(handle); - param_pack(handle); + param_pack(handle, G.scene->toolsettings->uvcalc_margin); param_flush(handle); @@ -442,7 +442,7 @@ void pack_charts_tface_uv(void) if(!EM_texFaceCheck()) return; handle = construct_param_handle(em, 1, 0, 1); - param_pack(handle); + param_pack(handle, G.scene->toolsettings->uvcalc_margin); param_flush(handle); param_delete(handle); From 52a3d5c518cb969dad321d6f0486d9f33dd95791 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 15 Apr 2009 19:20:12 +0000 Subject: [PATCH 170/201] BGE Python API Free python modules defined within the blendfile between loading scenes since they would end up accessing old GameLogic, Rasterizer modules as well as old game engine data in the module namespace which can cause problems. --- .../python/api2_2x/bpy_internal_import.c | 62 +++++++++++++++++++ .../python/api2_2x/bpy_internal_import.h | 1 + source/gameengine/Ketsji/KX_PythonInit.cpp | 9 ++- 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index d944c24d928..a62ae689f59 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -265,3 +265,65 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) PyMethodDef bpy_import[] = { {"bpy_import", blender_import, METH_KEYWORDS, "blenders import"} }; PyMethodDef bpy_reload[] = { {"bpy_reload", blender_reload, METH_VARARGS, "blenders reload"} }; + +/* Clear user modules. + * This is to clear any modules that could be defined from running scripts in blender. + * + * Its also needed for the BGE Python api so imported scripts are not used between levels + * + * This clears every modules that has a __file__ attribute (is not a builtin) + * and is a filename only (no path). since pythons bultins include a full path even for win32. + * even if we remove a python module a reimport will bring it back again. + */ + + +#if defined(WIN32) || defined(WIN64) +#define SEPSTR "\\" +#else +#define SEPSTR "/" +#endif + + +void importClearUserModules(void) +{ + PyObject *modules= PySys_GetObject("modules"); + + char *fname; + char *file_extension; + + /* looping over the dict */ + PyObject *key, *value; + Py_ssize_t pos = 0; + + /* new list */ + PyObject *list= PyList_New(0); + + /* go over sys.modules and remove anything with a + * sys.modukes[x].__file__ thats ends with a .py and has no path + */ + while (PyDict_Next(modules, &pos, &key, &value)) { + fname= PyModule_GetFilename(value); + if(fname) { + if ((strstr(fname, SEPSTR))==0) { /* no path ? */ + file_extension = strstr(fname, ".py"); + if(file_extension && *(file_extension + 3) == '\0') { /* .py extension ? */ + /* now we can be fairly sure its a python import from the blendfile */ + PyList_Append(list, key); /* free'd with the list */ + } + } + } + else { + PyErr_Clear(); + } + } + + /* remove all our modules */ + for(pos=0; pos < PyList_Size(list); pos++) { + /* PyObject_Print(key, stderr, 0); */ + key= PyList_GET_ITEM(list, pos); + PyDict_DelItem(modules, key); + } + + Py_DECREF(list); /* removes all references from append */ +} + diff --git a/source/blender/python/api2_2x/bpy_internal_import.h b/source/blender/python/api2_2x/bpy_internal_import.h index 7fe412019ab..9d440406636 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.h +++ b/source/blender/python/api2_2x/bpy_internal_import.h @@ -37,6 +37,7 @@ PyObject *importText( char *name, int *found ); PyObject *reimportText( PyObject *module, int *found ); +void importClearUserModules( void ); /* Clear user modules */ extern PyMethodDef bpy_import[]; extern PyMethodDef bpy_reload[]; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 924c5451608..eafb7fc0cb8 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -102,7 +102,7 @@ extern "C" { #include "GPU_material.h" static void setSandbox(TPythonSecurityLevel level); - +static void clearGameModules(); // 'local' copy of canvas ptr, for window height/width python scripts static RAS_ICanvas* gp_Canvas = NULL; @@ -1402,6 +1402,10 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev initPyTypes(); bpy_import_main_set(maggie); + + /* run this to clear game modules and user modules which + * may contain references to in game data */ + clearGameModules(); PyObject* moduleobj = PyImport_AddModule("__main__"); return PyModule_GetDict(moduleobj); @@ -1434,6 +1438,9 @@ static void clearGameModules() clearModule(modules, "Mathutils"); clearModule(modules, "BGL"); PyErr_Clear(); // incase some of these were alredy removed. + + /* clear user defined modules */ + importClearUserModules(); } void exitGamePythonScripting() From 0c1bfa4a37d9ba40b8ad66656363ecfa77e0db1d Mon Sep 17 00:00:00 2001 From: Andre Susano Pinto Date: Wed, 15 Apr 2009 19:33:25 +0000 Subject: [PATCH 171/201] Merging Shrinkwrap Constraint! +bvhtree cache (if the derived model doenst gets destroyed then the same BVHtree can be used) this was needed to allow shrinkwrap constraint to be usable. It has been ready for a long time.. but only got merged now, for 2.49. --- source/blender/blenkernel/BKE_DerivedMesh.h | 2 + source/blender/blenkernel/BKE_bvhutils.h | 45 ++- source/blender/blenkernel/BKE_shrinkwrap.h | 4 +- .../blender/blenkernel/intern/DerivedMesh.c | 5 + source/blender/blenkernel/intern/bvhutils.c | 204 ++++++++++--- source/blender/blenkernel/intern/constraint.c | 162 +++++++++++ source/blender/blenkernel/intern/shrinkwrap.c | 271 +++++++++--------- source/blender/blenloader/intern/readfile.c | 13 + source/blender/include/butspace.h | 1 + .../blender/makesdna/DNA_constraint_types.h | 12 +- source/blender/src/buttons_editing.c | 14 +- source/blender/src/buttons_object.c | 40 +++ source/blender/src/editconstraint.c | 5 + 13 files changed, 579 insertions(+), 199 deletions(-) diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 5a1e266adeb..263b17151e7 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -44,6 +44,7 @@ #include "DNA_customdata_types.h" #include "BKE_customdata.h" +#include "BKE_bvhutils.h" struct MVert; struct MEdge; @@ -69,6 +70,7 @@ struct DerivedMesh { int numVertData, numEdgeData, numFaceData; int needsFree; /* checked on ->release, is set to 0 for cached results */ int deformedOnly; /* set by modifier stack if only deformed from original */ + BVHCache bvhCache; /* Misc. Queries */ diff --git a/source/blender/blenkernel/BKE_bvhutils.h b/source/blender/blenkernel/BKE_bvhutils.h index dd9ea61f24b..66c8d99959a 100644 --- a/source/blender/blenkernel/BKE_bvhutils.h +++ b/source/blender/blenkernel/BKE_bvhutils.h @@ -31,6 +31,7 @@ #define BKE_BVHUTILS_H #include "BLI_kdopbvh.h" +#include "BLI_linklist.h" /* * This header encapsulates necessary code to buld a BVH @@ -52,7 +53,7 @@ typedef struct BVHTreeFromMesh BVHTree_RayCastCallback raycast_callback; /* Mesh represented on this BVHTree */ - struct DerivedMesh *mesh; + struct DerivedMesh *mesh; /* Vertex array, so that callbacks have instante access to data */ struct MVert *vert; @@ -61,6 +62,9 @@ typedef struct BVHTreeFromMesh /* radius for raycast */ float sphere_radius; + /* Private data */ + int cached; + } BVHTreeFromMesh; /* @@ -74,7 +78,7 @@ typedef struct BVHTreeFromMesh * * free_bvhtree_from_mesh should be called when the tree is no longer needed. */ -void bvhtree_from_mesh_verts(struct BVHTreeFromMesh *data, struct DerivedMesh *mesh, float epsilon, int tree_type, int axis); +BVHTree* bvhtree_from_mesh_verts(struct BVHTreeFromMesh *data, struct DerivedMesh *mesh, float epsilon, int tree_type, int axis); /* * Builds a bvh tree where nodes are the faces of the given mesh. @@ -84,15 +88,50 @@ void bvhtree_from_mesh_verts(struct BVHTreeFromMesh *data, struct DerivedMesh *m * so that the coordinates and rays are first translated on the mesh local coordinates. * Reason for this is that later bvh_from_mesh_* might use a cache system and so it becames possible to reuse * a BVHTree. + * + * The returned value is the same as in data->tree, its only returned to make it easier to test + * the success * * free_bvhtree_from_mesh should be called when the tree is no longer needed. */ -void bvhtree_from_mesh_faces(struct BVHTreeFromMesh *data, struct DerivedMesh *mesh, float epsilon, int tree_type, int axis); +BVHTree* bvhtree_from_mesh_faces(struct BVHTreeFromMesh *data, struct DerivedMesh *mesh, float epsilon, int tree_type, int axis); /* * Frees data allocated by a call to bvhtree_from_mesh_*. */ void free_bvhtree_from_mesh(struct BVHTreeFromMesh *data); + +/* + * BVHCache + */ + +//Using local coordinates +#define BVHTREE_FROM_FACES 0 +#define BVHTREE_FROM_VERTICES 1 + +typedef LinkNode* BVHCache; + + +/* + * Queries a bvhcache for the chache bvhtree of the request type + */ +BVHTree *bvhcache_find(BVHCache *cache, int type); + +/* + * Inserts a BVHTree of the given type under the cache + * After that the caller no longer needs to worry when to free the BVHTree + * as that will be done when the cache is freed. + * + * A call to this assumes that there was no previous cached tree of the given type + */ +void bvhcache_insert(BVHCache *cache, BVHTree *tree, int type); + +/* + * inits and frees a bvhcache + */ +void bvhcache_init(BVHCache *cache); +void bvhcache_free(BVHCache *cache); + #endif diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h index eed22ff9d8e..6ce449f7824 100644 --- a/source/blender/blenkernel/BKE_shrinkwrap.h +++ b/source/blender/blenkernel/BKE_shrinkwrap.h @@ -95,6 +95,8 @@ void space_transform_invert_normal(const SpaceTransform *data, float *no); struct Object; struct DerivedMesh; +struct MVert; +struct MDeformVert; struct ShrinkwrapModifierData; struct MDeformVert; struct BVHTree; @@ -105,8 +107,8 @@ typedef struct ShrinkwrapCalcData ShrinkwrapModifierData *smd; //shrinkwrap modifier data struct Object *ob; //object we are applying shrinkwrap to - struct DerivedMesh *original; //mesh before shrinkwrap + MVert *vert; //Array of verts being projected (to fetch normals or other data) float (*vertexCos)[3]; //vertexs being shrinkwraped int numVerts; diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index c934f7d9fe7..d43cbdebe72 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -77,6 +77,7 @@ #include "BKE_texture.h" #include "BKE_utildefines.h" #include "BKE_particle.h" +#include "BKE_bvhutils.h" #include "BLO_sys_types.h" // for intptr_t support @@ -182,6 +183,8 @@ void DM_init_funcs(DerivedMesh *dm) dm->getVertDataArray = DM_get_vert_data_layer; dm->getEdgeDataArray = DM_get_edge_data_layer; dm->getFaceDataArray = DM_get_face_data_layer; + + bvhcache_init(&dm->bvhCache); } void DM_init(DerivedMesh *dm, @@ -218,6 +221,8 @@ void DM_from_template(DerivedMesh *dm, DerivedMesh *source, int DM_release(DerivedMesh *dm) { if (dm->needsFree) { + bvhcache_free(&dm->bvhCache); + CustomData_free(&dm->vertData, dm->numVertData); CustomData_free(&dm->edgeData, dm->numEdgeData); CustomData_free(&dm->faceData, dm->numFaceData); diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index ae449843d2a..d9e005811d0 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "BKE_bvhutils.h" @@ -45,6 +46,8 @@ #include "BKE_global.h" #include "BLI_arithb.h" +#include "BLI_linklist.h" +#include "MEM_guardedalloc.h" /* Math stuff for ray casting on mesh faces and for nearest surface */ @@ -480,30 +483,47 @@ static void mesh_faces_spherecast(void *userdata, int index, const BVHTreeRay *r * BVH builders */ // Builds a bvh tree.. where nodes are the vertexs of the given mesh -void bvhtree_from_mesh_verts(BVHTreeFromMesh *data, DerivedMesh *mesh, float epsilon, int tree_type, int axis) +BVHTree* bvhtree_from_mesh_verts(BVHTreeFromMesh *data, DerivedMesh *mesh, float epsilon, int tree_type, int axis) { - int i; - int numVerts= mesh->getNumVerts(mesh); - MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); - BVHTree *tree = NULL; + BVHTree *tree = bvhcache_find(&mesh->bvhCache, BVHTREE_FROM_VERTICES); - memset(data, 0, sizeof(*data)); - - if(vert == NULL) + //Not in cache + if(tree == NULL) { - printf("bvhtree cant be build: cant get a vertex array"); - return; + int i; + int numVerts= mesh->getNumVerts(mesh); + MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); + + if(vert != NULL) + { + tree = BLI_bvhtree_new(numVerts, epsilon, tree_type, axis); + + if(tree != NULL) + { + for(i = 0; i < numVerts; i++) + BLI_bvhtree_insert(tree, i, vert[i].co, 1); + + BLI_bvhtree_balance(tree); + + //Save on cache for later use +// printf("BVHTree built and saved on cache\n"); + bvhcache_insert(&mesh->bvhCache, tree, BVHTREE_FROM_VERTICES); + } + } + } + else + { +// printf("BVHTree is already build, using cached tree\n"); } - tree = BLI_bvhtree_new(numVerts, epsilon, tree_type, axis); - if(tree != NULL) + + //Setup BVHTreeFromMesh + memset(data, 0, sizeof(*data)); + data->tree = tree; + + if(data->tree) { - for(i = 0; i < numVerts; i++) - BLI_bvhtree_insert(tree, i, vert[i].co, 1); - - BLI_bvhtree_balance(tree); - - data->tree = tree; + data->cached = TRUE; //a NULL nearest callback works fine //remeber the min distance to point is the same as the min distance to BV of point @@ -516,43 +536,62 @@ void bvhtree_from_mesh_verts(BVHTreeFromMesh *data, DerivedMesh *mesh, float eps data->sphere_radius = epsilon; } + + return data->tree; } // Builds a bvh tree.. where nodes are the faces of the given mesh. -void bvhtree_from_mesh_faces(BVHTreeFromMesh *data, DerivedMesh *mesh, float epsilon, int tree_type, int axis) +BVHTree* bvhtree_from_mesh_faces(BVHTreeFromMesh *data, DerivedMesh *mesh, float epsilon, int tree_type, int axis) { - int i; - int numFaces= mesh->getNumFaces(mesh); - MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); - MFace *face = mesh->getFaceDataArray(mesh, CD_MFACE); - BVHTree *tree = NULL; + BVHTree *tree = bvhcache_find(&mesh->bvhCache, BVHTREE_FROM_FACES); - memset(data, 0, sizeof(*data)); - - if(vert == NULL && face == NULL) + //Not in cache + if(tree == NULL) { - printf("bvhtree cant be build: cant get a vertex/face array"); - return; + int i; + int numFaces= mesh->getNumFaces(mesh); + MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); + MFace *face = mesh->getFaceDataArray(mesh, CD_MFACE); + + if(vert != NULL && face != NULL) + { + /* Create a bvh-tree of the given target */ + tree = BLI_bvhtree_new(numFaces, epsilon, tree_type, axis); + if(tree != NULL) + { + for(i = 0; i < numFaces; i++) + { + float co[4][3]; + VECCOPY(co[0], vert[ face[i].v1 ].co); + VECCOPY(co[1], vert[ face[i].v2 ].co); + VECCOPY(co[2], vert[ face[i].v3 ].co); + if(face[i].v4) + VECCOPY(co[3], vert[ face[i].v4 ].co); + + BLI_bvhtree_insert(tree, i, co[0], face[i].v4 ? 4 : 3); + } + BLI_bvhtree_balance(tree); + + //Save on cache for later use +// printf("BVHTree built and saved on cache\n"); + bvhcache_insert(&mesh->bvhCache, tree, BVHTREE_FROM_FACES); + } + } + } + else + { +// printf("BVHTree is already build, using cached tree\n"); } - /* Create a bvh-tree of the given target */ - tree = BLI_bvhtree_new(numFaces, epsilon, tree_type, axis); - if(tree != NULL) - { - for(i = 0; i < numFaces; i++) - { - float co[4][3]; - VECCOPY(co[0], vert[ face[i].v1 ].co); - VECCOPY(co[1], vert[ face[i].v2 ].co); - VECCOPY(co[2], vert[ face[i].v3 ].co); - if(face[i].v4) - VECCOPY(co[3], vert[ face[i].v4 ].co); - - BLI_bvhtree_insert(tree, i, co[0], face[i].v4 ? 4 : 3); - } - BLI_bvhtree_balance(tree); - data->tree = tree; + //Setup BVHTreeFromMesh + memset(data, 0, sizeof(*data)); + data->tree = tree; + + if(data->tree) + { + data->cached = TRUE; + data->nearest_callback = mesh_faces_nearest_point; data->raycast_callback = mesh_faces_spherecast; @@ -562,6 +601,8 @@ void bvhtree_from_mesh_faces(BVHTreeFromMesh *data, DerivedMesh *mesh, float eps data->sphere_radius = epsilon; } + return data->tree; + } // Frees data allocated by a call to bvhtree_from_mesh_*. @@ -569,9 +610,78 @@ void free_bvhtree_from_mesh(struct BVHTreeFromMesh *data) { if(data->tree) { - BLI_bvhtree_free(data->tree); + if(!data->cached) + BLI_bvhtree_free(data->tree); + memset( data, 0, sizeof(data) ); } } +/* BVHCache */ +typedef struct BVHCacheItem +{ + int type; + BVHTree *tree; + +} BVHCacheItem; + +static void bvhcacheitem_set_if_match(void *_cached, void *_search) +{ + BVHCacheItem * cached = (BVHCacheItem *)_cached; + BVHCacheItem * search = (BVHCacheItem *)_search; + + if(search->type == cached->type) + { + search->tree = cached->tree; + } +} + +BVHTree *bvhcache_find(BVHCache *cache, int type) +{ + BVHCacheItem item; + item.type = type; + item.tree = NULL; + + BLI_linklist_apply(*cache, bvhcacheitem_set_if_match, &item); + return item.tree; +} + +void bvhcache_insert(BVHCache *cache, BVHTree *tree, int type) +{ + BVHCacheItem *item = NULL; + + assert( tree != NULL ); + assert( bvhcache_find(cache, type) == NULL ); + + item = MEM_mallocN(sizeof(BVHCacheItem), "BVHCacheItem"); + assert( item != NULL ); + + item->type = type; + item->tree = tree; + + BLI_linklist_prepend( cache, item ); +} + + +void bvhcache_init(BVHCache *cache) +{ + *cache = NULL; +} + +static void bvhcacheitem_free(void *_item) +{ + BVHCacheItem *item = (BVHCacheItem *)_item; + + BLI_bvhtree_free(item->tree); + MEM_freeN(item); +} + + +void bvhcache_free(BVHCache *cache) +{ + BLI_linklist_free(*cache, (LinkNodeFreeFP)bvhcacheitem_free); + *cache = NULL; +} + + diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index db98c200566..f93fc403404 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -40,6 +40,7 @@ #include "DNA_armature_types.h" #include "DNA_constraint_types.h" +#include "DNA_modifier_types.h" #include "DNA_object_types.h" #include "DNA_action_types.h" #include "DNA_curve_types.h" @@ -63,6 +64,7 @@ #include "BKE_global.h" #include "BKE_library.h" #include "BKE_idprop.h" +#include "BKE_shrinkwrap.h" #ifndef DISABLE_PYTHON #include "BPY_extern.h" @@ -3239,6 +3241,165 @@ static bConstraintTypeInfo CTI_TRANSFORM = { transform_evaluate /* evaluate */ }; +/* ---------- Shrinkwrap Constraint ----------- */ + +static int shrinkwrap_get_tars (bConstraint *con, ListBase *list) +{ + if (con && list) { + bShrinkwrapConstraint *data = con->data; + bConstraintTarget *ct; + + SINGLETARGETNS_GET_TARS(con, data->target, ct, list) + + return 1; + } + + return 0; +} + + +static void shrinkwrap_flush_tars (bConstraint *con, ListBase *list, short nocopy) +{ + if (con && list) { + bShrinkwrapConstraint *data = con->data; + bConstraintTarget *ct= list->first; + + SINGLETARGETNS_FLUSH_TARS(con, data->target, ct, list, nocopy) + } +} + + +static void shrinkwrap_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float ctime) +{ + bShrinkwrapConstraint *scon = (bShrinkwrapConstraint *) con->data; + + if( VALID_CONS_TARGET(ct) && (ct->tar->type == OB_MESH) ) + { + int fail = FALSE; + float co[3] = {0.0f, 0.0f, 0.0f}; + float no[3] = {0.0f, 0.0f, 0.0f}; + float dist; + + SpaceTransform transform; + DerivedMesh *target = object_get_derived_final(ct->tar, CD_MASK_BAREMESH); + BVHTreeRayHit hit; + BVHTreeNearest nearest; + + BVHTreeFromMesh treeData; + memset( &treeData, 0, sizeof(treeData) ); + + nearest.index = -1; + nearest.dist = FLT_MAX; + + hit.index = -1; + hit.dist = 100000.0f; //TODO should use FLT_MAX.. but normal projection doenst yet supports it + + Mat4One(ct->matrix); + + if(target != NULL) + { + space_transform_from_matrixs(&transform, cob->matrix, ct->tar->obmat); + + switch(scon->shrinkType) + { + case MOD_SHRINKWRAP_NEAREST_SURFACE: + case MOD_SHRINKWRAP_NEAREST_VERTEX: + + if(scon->shrinkType == MOD_SHRINKWRAP_NEAREST_VERTEX) + bvhtree_from_mesh_verts(&treeData, target, 0.0, 2, 6); + else + bvhtree_from_mesh_faces(&treeData, target, 0.0, 2, 6); + + if(treeData.tree == NULL) + { + fail = TRUE; + break; + } + + space_transform_apply(&transform, co); + + BLI_bvhtree_find_nearest(treeData.tree, co, &nearest, treeData.nearest_callback, &treeData); + + dist = VecLenf(co, nearest.co); + VecLerpf(co, co, nearest.co, (dist - scon->dist)/dist); /* linear interpolation */ + space_transform_invert(&transform, co); + break; + + case MOD_SHRINKWRAP_PROJECT: + if(scon->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS) no[0] = 1.0f; + if(scon->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS) no[1] = 1.0f; + if(scon->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS) no[2] = 1.0f; + + if(INPR(no,no) < FLT_EPSILON) + { + fail = TRUE; + break; + } + + Normalize(no); + + + bvhtree_from_mesh_faces(&treeData, target, scon->dist, 4, 6); + if(treeData.tree == NULL) + { + fail = TRUE; + break; + } + + if(normal_projection_project_vertex(0, co, no, &transform, treeData.tree, &hit, treeData.raycast_callback, &treeData) == FALSE) + { + fail = TRUE; + break; + } + VECCOPY(co, hit.co); + break; + } + + free_bvhtree_from_mesh(&treeData); + + target->release(target); + + if(fail == TRUE) + { + /* Don't move the point */ + co[0] = co[1] = co[2] = 0.0f; + } + + /* co is in local object coordinates, change it to global and update target position */ + VecMat4MulVecfl(co, cob->matrix, co); + VECCOPY(ct->matrix[3], co); + } + } +} + +static void shrinkwrap_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *targets) +{ + bConstraintTarget *ct= targets->first; + + /* only evaluate if there is a target */ + if (VALID_CONS_TARGET(ct)) + { + VECCOPY(cob->matrix[3], ct->matrix[3]); + } +} + +static bConstraintTypeInfo CTI_SHRINKWRAP = { + CONSTRAINT_TYPE_SHRINKWRAP, /* type */ + sizeof(bShrinkwrapConstraint), /* size */ + "Shrinkwrap", /* name */ + "bShrinkwrapConstraint", /* struct name */ + NULL, /* free data */ + NULL, /* relink data */ + NULL, /* copy data */ + NULL, /* new data */ + shrinkwrap_get_tars, /* get constraint targets */ + shrinkwrap_flush_tars, /* flush constraint targets */ + shrinkwrap_get_tarmat, /* get a target matrix */ + shrinkwrap_evaluate /* evaluate */ +}; + + + /* ************************* Constraints Type-Info *************************** */ /* All of the constraints api functions use bConstraintTypeInfo structs to carry out * and operations that involve constraint specifc code. @@ -3270,6 +3431,7 @@ static void constraints_init_typeinfo () { constraintsTypeInfo[17]= &CTI_RIGIDBODYJOINT; /* RigidBody Constraint */ constraintsTypeInfo[18]= &CTI_CLAMPTO; /* ClampTo Constraint */ constraintsTypeInfo[19]= &CTI_TRANSFORM; /* Transformation Constraint */ + constraintsTypeInfo[20]= &CTI_SHRINKWRAP; /* Shrinkwrap Constraint */ } /* This function should be used for getting the appropriate type-info when only diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index ab98fb1f007..6784f014efa 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -148,6 +148,7 @@ static float squared_dist(const float *a, const float *b) void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedMesh *dm, float (*vertexCos)[3], int numVerts) { + DerivedMesh *ss_mesh = NULL; ShrinkwrapCalcData calc = NULL_ShrinkwrapCalcData; //remove loop dependencies on derived meshs (TODO should this be done elsewhere?) @@ -158,15 +159,14 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM //Configure Shrinkwrap calc data calc.smd = smd; calc.ob = ob; - calc.original = dm; calc.numVerts = numVerts; calc.vertexCos = vertexCos; //DeformVertex calc.vgroup = get_named_vertexgroup_num(calc.ob, calc.smd->vgroup_name); - if(calc.original) + if(dm) { - calc.dvert = calc.original->getVertDataArray(calc.original, CD_MDEFORMVERT); + calc.dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); } else if(calc.ob->type == OB_LATTICE) { @@ -176,17 +176,54 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM if(smd->target) { - //TODO currently we need a copy in case object_get_derived_final returns an emDM that does not defines getVertArray or getFace array - calc.target = CDDM_copy( object_get_derived_final(smd->target, CD_MASK_BAREMESH) ); + calc.target = object_get_derived_final(smd->target, CD_MASK_BAREMESH); - //TODO there might be several "bugs" on non-uniform scales matrixs.. because it will no longer be nearest surface, not sphere projection + //TODO there might be several "bugs" on non-uniform scales matrixs + //because it will no longer be nearest surface, not sphere projection //because space has been deformed space_transform_setup(&calc.local2target, ob, smd->target); - calc.keepDist = smd->keepDist; //TODO: smd->keepDist is in global units.. must change to local + //TODO: smd->keepDist is in global units.. must change to local + calc.keepDist = smd->keepDist; } + + calc.vgroup = get_named_vertexgroup_num(calc.ob, smd->vgroup_name); + + if(dm != NULL) + { + //Setup arrays to get vertexs positions, normals and deform weights + calc.vert = dm->getVertDataArray(dm, CD_MVERT); + calc.dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + + //Using vertexs positions/normals as if a subsurface was applied + if(smd->subsurfLevels) + { + SubsurfModifierData ssmd; + memset(&ssmd, 0, sizeof(ssmd)); + ssmd.subdivType = ME_CC_SUBSURF; //catmull clark + ssmd.levels = smd->subsurfLevels; //levels + + ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, FALSE, NULL, 0, 0); + + if(ss_mesh) + { + calc.vert = ss_mesh->getVertDataArray(ss_mesh, CD_MVERT); + if(calc.vert) + { + //TRICKY: this code assumes subsurface will have the transformed original vertices + //in their original order at the end of the vert array. + calc.vert = calc.vert + ss_mesh->getNumVerts(ss_mesh) - dm->getNumVerts(dm); + } + } + + //Just to make sure we are not letting any memory behind + assert(ssmd.emCache == NULL); + assert(ssmd.mCache == NULL); + } + } + //Projecting target defined - lets work! if(calc.target) { @@ -207,8 +244,8 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM } //free memory - if(calc.target) - calc.target->release( calc.target ); + if(ss_mesh) + ss_mesh->release(ss_mesh); } /* @@ -244,8 +281,17 @@ void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); if(weight == 0.0f) continue; - VECCOPY(tmp_co, co); - space_transform_apply(&calc->local2target, tmp_co); //Convert the coordinates to the tree coordinates + + //Convert the vertex to tree coordinates + if(calc->vert) + { + VECCOPY(tmp_co, calc->vert[i].co); + } + else + { + VECCOPY(tmp_co, co); + } + space_transform_apply(&calc->local2target, tmp_co); //Use local proximity heuristics (to reduce the nearest search) // @@ -348,172 +394,115 @@ void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) int i; //Options about projection direction - const char use_normal = calc->smd->shrinkOpts; - float proj_axis[3] = {0.0f, 0.0f, 0.0f}; - MVert *vert = NULL; //Needed in case of vertex normal - DerivedMesh* ss_mesh = NULL; + const char use_normal = calc->smd->shrinkOpts; + float proj_axis[3] = {0.0f, 0.0f, 0.0f}; //Raycast and tree stuff BVHTreeRayHit hit; - BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; //target + BVHTreeFromMesh treeData= NULL_BVHTreeFromMesh; //auxiliar target - DerivedMesh * aux_mesh = NULL; - BVHTreeFromMesh auxData= NULL_BVHTreeFromMesh; + DerivedMesh *auxMesh = NULL; + BVHTreeFromMesh auxData = NULL_BVHTreeFromMesh; SpaceTransform local2aux; -do -{ + //If the user doesn't allows to project in any direction of projection axis + //then theres nothing todo. + if((use_normal & (MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR | MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR)) == 0) + return; + //Prepare data to retrieve the direction in which we should project each vertex if(calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL) { - //No Mvert information: jump to "free memory and return" part - if(calc->original == NULL) break; - - if(calc->smd->subsurfLevels) - { - SubsurfModifierData smd; - memset(&smd, 0, sizeof(smd)); - smd.subdivType = ME_CC_SUBSURF; //catmull clark - smd.levels = calc->smd->subsurfLevels; //levels - - ss_mesh = subsurf_make_derived_from_derived(calc->original, &smd, FALSE, NULL, 0, 0); - - if(ss_mesh) - { - vert = ss_mesh->getVertDataArray(ss_mesh, CD_MVERT); - if(vert) - { - //TRICKY: this code assumes subsurface will have the transformed original vertices - //in their original order at the end of the vert array. - vert = vert - + ss_mesh->getNumVerts(ss_mesh) - - calc->original->getNumVerts(calc->original); - } - } - - //To make sure we are not letting any memory behind - assert(smd.emCache == NULL); - assert(smd.mCache == NULL); - } - else - vert = calc->original->getVertDataArray(calc->original, CD_MVERT); - - //Not able to get vert information: jump to "free memory and return" part - if(vert == NULL) break; + if(calc->vert == NULL) return; } else { - //The code supports any axis that is a combination of X,Y,Z.. altought currently UI only allows to set the 3 diferent axis + //The code supports any axis that is a combination of X,Y,Z + //altought currently UI only allows to set the 3 diferent axis if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS) proj_axis[0] = 1.0f; if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS) proj_axis[1] = 1.0f; if(calc->smd->projAxis & MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS) proj_axis[2] = 1.0f; Normalize(proj_axis); - //Invalid projection direction: jump to "free memory and return" part - if(INPR(proj_axis, proj_axis) < FLT_EPSILON) break; + //Invalid projection direction + if(INPR(proj_axis, proj_axis) < FLT_EPSILON) + return; } - //If the user doesn't allows to project in any direction of projection axis... then theres nothing todo. - if((use_normal & (MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR | MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR)) == 0) - break; //jump to "free memory and return" part - - - //Build target tree - BENCH(bvhtree_from_mesh_faces(&treeData, calc->target, calc->keepDist, 4, 6)); - if(treeData.tree == NULL) - break; //jump to "free memory and return" part - - - //Build auxiliar target if(calc->smd->auxTarget) { + auxMesh = object_get_derived_final(calc->smd->auxTarget, CD_MASK_BAREMESH); space_transform_setup( &local2aux, calc->ob, calc->smd->auxTarget); - - aux_mesh = CDDM_copy( object_get_derived_final(calc->smd->auxTarget, CD_MASK_BAREMESH) ); //TODO currently we need a copy in case object_get_derived_final returns an emDM that does not defines getVertArray or getFace array - if(aux_mesh) - BENCH(bvhtree_from_mesh_faces(&auxData, aux_mesh, 0.0, 4, 6)); - else - printf("Auxiliar target finalDerived mesh is null\n"); } - - //Now, everything is ready to project the vertexs! -#pragma omp parallel for private(i,hit) schedule(static) - for(i = 0; inumVerts; ++i) + //After sucessufuly build the trees, start projection vertexs + if( bvhtree_from_mesh_faces(&treeData, calc->target, calc->keepDist, 4, 6) + && (auxMesh == NULL || bvhtree_from_mesh_faces(&auxData, auxMesh, 0.0, 4, 6))) { - float *co = calc->vertexCos[i]; - float tmp_co[3], tmp_no[3]; - float lim = 10000.0f; //TODO: we should use FLT_MAX here, but sweepsphere code isnt prepared for that - float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); - if(weight == 0.0f) continue; - - if(ss_mesh) +#pragma omp parallel for private(i,hit) schedule(static) + for(i = 0; inumVerts; ++i) { - VECCOPY(tmp_co, vert[i].co); - } - else - { - VECCOPY(tmp_co, co); - } + float *co = calc->vertexCos[i]; + float tmp_co[3], tmp_no[3]; + float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); + + if(weight == 0.0f) continue; + + if(calc->vert) + { + VECCOPY(tmp_co, calc->vert[i].co); + if(calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL) + NormalShortToFloat(tmp_no, calc->vert[i].no); + else + VECCOPY(tmp_no, proj_axis); + } + else + { + VECCOPY(tmp_co, co); + VECCOPY(tmp_no, proj_axis); + } - if(vert) - NormalShortToFloat(tmp_no, vert[i].no); - else - VECCOPY( tmp_no, proj_axis ); + hit.index = -1; + hit.dist = 10000.0f; //TODO: we should use FLT_MAX here, but sweepsphere code isnt prepared for that + + //Project over positive direction of axis + if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR) + { + + if(auxData.tree) + normal_projection_project_vertex(0, tmp_co, tmp_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData); + + normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, tmp_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData); + } + + //Project over negative direction of axis + if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR) + { + float inv_no[3] = { -tmp_no[0], -tmp_no[1], -tmp_no[2] }; - hit.index = -1; - hit.dist = lim; + if(auxData.tree) + normal_projection_project_vertex(0, tmp_co, inv_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData); + + normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, inv_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData); + } - //Project over positive direction of axis - if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR) - { - - if(auxData.tree) - normal_projection_project_vertex(0, tmp_co, tmp_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData); - - normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, tmp_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData); - } - - //Project over negative direction of axis - if(use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR) - { - float inv_no[3] = { -tmp_no[0], -tmp_no[1], -tmp_no[2] }; - - - if(auxData.tree) - normal_projection_project_vertex(0, tmp_co, inv_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData); - - normal_projection_project_vertex(calc->smd->shrinkOpts, tmp_co, inv_no, &calc->local2target, treeData.tree, &hit, treeData.raycast_callback, &treeData); - } - - - if(hit.index != -1) - { - VecLerpf(co, co, hit.co, weight); + if(hit.index != -1) + { + VecLerpf(co, co, hit.co, weight); + } } } - -//Simple do{} while(0) structure to allow to easily jump to the "free memory and return" part -} while(0); - //free data structures - free_bvhtree_from_mesh(&treeData); free_bvhtree_from_mesh(&auxData); - - if(aux_mesh) - aux_mesh->release(aux_mesh); - - if(ss_mesh) - ss_mesh->release(ss_mesh); } /* @@ -529,8 +518,6 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; BVHTreeNearest nearest = NULL_BVHTreeNearest; - - //Create a bvh-tree of the given target BENCH(bvhtree_from_mesh_faces( &treeData, calc->target, 0.0, 2, 6)); if(treeData.tree == NULL) @@ -554,7 +541,14 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) if(weight == 0.0f) continue; //Convert the vertex to tree coordinates - VECCOPY(tmp_co, co); + if(calc->vert) + { + VECCOPY(tmp_co, calc->vert[i].co); + } + else + { + VECCOPY(tmp_co, co); + } space_transform_apply(&calc->local2target, tmp_co); //Use local proximity heuristics (to reduce the nearest search) @@ -593,7 +587,6 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) } } - free_bvhtree_from_mesh(&treeData); } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c3a355160e0..c88e06a9993 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1850,6 +1850,13 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist) data->tar = newlibadr(fd, id->lib, data->tar); } break; + case CONSTRAINT_TYPE_SHRINKWRAP: + { + bShrinkwrapConstraint *data; + data= ((bShrinkwrapConstraint*)con->data); + data->target = newlibadr(fd, id->lib, data->target); + } + break; case CONSTRAINT_TYPE_NULL: break; } @@ -8633,6 +8640,12 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb) expand_doit(fd, mainvar, data->tar); } break; + case CONSTRAINT_TYPE_SHRINKWRAP: + { + bShrinkwrapConstraint *data = (bShrinkwrapConstraint*)curcon->data; + expand_doit(fd, mainvar, data->target); + } + break; default: break; } diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h index 868d0c3e6c0..8a9c1933c97 100644 --- a/source/blender/include/butspace.h +++ b/source/blender/include/butspace.h @@ -729,6 +729,7 @@ enum { B_CONSTRAINT_ADD_PYTHON, B_CONSTRAINT_ADD_CLAMPTO, B_CONSTRAINT_ADD_TRANSFORM, + B_CONSTRAINT_ADD_SHRINKWRAP, B_CONSTRAINT_INF }; diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index fe19cf60f12..79f032d0d21 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -317,6 +317,15 @@ typedef struct bDistLimitConstraint { int pad; } bDistLimitConstraint; +typedef struct bShrinkwrapConstraint { + Object *target; + float dist; /* distance to kept from target */ + short shrinkType; /* shrink type (look on MOD shrinkwrap for values) */ + char projAxis; /* axis to project over UP_X, UP_Y, UP_Z */ + char pad[9]; +} bShrinkwrapConstraint; + + /* ------------------------------------------ */ /* bConstraint->type @@ -344,10 +353,11 @@ typedef enum B_CONSTAINT_TYPES { CONSTRAINT_TYPE_RIGIDBODYJOINT, /* rigidbody constraint */ CONSTRAINT_TYPE_CLAMPTO, /* clampto constraint */ CONSTRAINT_TYPE_TRANSFORM, /* transformation (loc/rot/size -> loc/rot/size) constraint */ + CONSTRAINT_TYPE_SHRINKWRAP, /* shrinkwrap (loc/rot) constraint */ /* NOTE: everytime a new constraint is added, update this */ - NUM_CONSTRAINT_TYPES= CONSTRAINT_TYPE_TRANSFORM + NUM_CONSTRAINT_TYPES= CONSTRAINT_TYPE_SHRINKWRAP } B_CONSTRAINT_TYPES; /* bConstraint->flag */ diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 779909ec713..1ecc63fe93d 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -1735,6 +1735,7 @@ static int modifier_is_fluid_particles(ModifierData *md) { } return 0; } + static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco, int *yco, int index, int cageIndex, int lastCageIndex) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); @@ -1903,12 +1904,10 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco height = 94; } else if (md->type==eModifierType_Shrinkwrap) { ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) md; - height = 86 + 3; + height = 105 + 3; + if (smd->shrinkType == MOD_SHRINKWRAP_PROJECT) - { height += 19*5; - if(smd->projAxis == 0) height += 19; - } else if (smd->shrinkType == MOD_SHRINKWRAP_NEAREST_SURFACE) height += 19; } else if (md->type == eModifierType_Mask) { @@ -2596,16 +2595,14 @@ static void draw_modifier(uiBlock *block, Object *ob, ModifierData *md, int *xco cy -= 3; uiDefButS(block, MENU, B_MODIFIER_RECALC, shrinktypemenu, lx,(cy-=19),buttonWidth,19, &smd->shrinkType, 0, 0, 0, 0, "Selects type of shrinkwrap algorithm for target position."); + uiDefButC(block, NUM, B_MODIFIER_RECALC, "SS Levels:", lx, (cy-=19), buttonWidth,19, &smd->subsurfLevels, 0, 6, 0, 0, "This indicates the number of CCSubdivisions that must be performed before extracting vertexs positions and normals"); + if (smd->shrinkType == MOD_SHRINKWRAP_PROJECT){ /* UI for projection axis */ uiBlockBeginAlign(block); uiDefButC(block, ROW, B_MODIFIER_RECALC, "Normal" , lx,(cy-=19),buttonWidth,19, &smd->projAxis, 18.0, MOD_SHRINKWRAP_PROJECT_OVER_NORMAL, 0, 0, "Projection over X axis"); - if(smd->projAxis == 0) - { - uiDefButC(block, NUM, B_MODIFIER_RECALC, "SS Levels:", lx, (cy-=19), buttonWidth,19, &smd->subsurfLevels, 0, 6, 0, 0, "This indicates the number of CCSubdivisions that must be performed before extracting vertexs positions and normals"); - } uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS, B_MODIFIER_RECALC, "X", lx+buttonWidth/3*0,(cy-=19),buttonWidth/3,19, &smd->projAxis, 0, 0, 0, 0, "Projection over X axis"); uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS, B_MODIFIER_RECALC, "Y", lx+buttonWidth/3*1,cy,buttonWidth/3,19, &smd->projAxis, 0, 0, 0, 0, "Projection over Y axis"); @@ -6971,3 +6968,4 @@ void editing_panels() } uiClearButLock(); } + diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index 7161bc8c266..a41f954c4d8 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -1752,6 +1752,37 @@ static void draw_constraint (uiBlock *block, ListBase *list, bConstraint *con, s uiDefBut(block, ROUNDBOX, B_DIFF, "", *xco-10, *yco-height, width+40,height-1, NULL, 5.0, 0.0, 12, rb_col, ""); } break; + + case CONSTRAINT_TYPE_SHRINKWRAP: + { + bShrinkwrapConstraint *data = con->data; + + height = 78; + if(data->shrinkType == MOD_SHRINKWRAP_PROJECT) + height += 18; + + uiDefBut(block, ROUNDBOX, B_DIFF, "", *xco-10, *yco-height, width+40,height-1, NULL, 5.0, 0.0, 12, rb_col, ""); + + /* Draw parameters */ + uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Target:", *xco+65, *yco-24, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiDefIDPoinBut(block, test_meshobpoin_but, ID_OB, B_CONSTRAINT_CHANGETARGET, "OB:", *xco+120, *yco-24, 135, 18, &data->target, "Target Object"); + + uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Dist:", *xco + 75, *yco-42, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiDefButF(block, NUM, B_CONSTRAINT_TEST, "", *xco+120, *yco-42, 135, 18, &data->dist, -100.0f, 100.0f, 1.0f, 0.0f, "Distance to target"); + + uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Type:", *xco + 70, *yco-60, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiDefButS(block, MENU, B_MODIFIER_RECALC, "Shrinkwrap Type%t|Nearest Surface Point %x0|Projection %x1|Nearest Vertex %x2", *xco+120, *yco-60, 135, 18, &data->shrinkType, 0, 0, 0, 0, "Selects type of shrinkwrap algorithm for target position."); + + if(data->shrinkType == MOD_SHRINKWRAP_PROJECT) + { + /* Draw XYZ toggles */ + uiDefBut(block, LABEL,B_CONSTRAINT_TEST, "Axis:", *xco+ 75, *yco-78, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, ""); + uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS, B_CONSTRAINT_TEST, "X",*xco+120, *yco-78, 45, 18, &data->projAxis, 0, 0, 0, 0, "Projection over X axis"); + uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS, B_CONSTRAINT_TEST, "Y",*xco+165, *yco-78, 45, 18, &data->projAxis, 0, 0, 0, 0, "Projection over Y axis"); + uiDefButBitC(block, TOG, MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS, B_CONSTRAINT_TEST, "Z",*xco+210, *yco-78, 45, 18, &data->projAxis, 0, 0, 0, 0, "Projection over Z axis"); + } + } + break; default: height = 0; break; @@ -1813,6 +1844,7 @@ static uiBlock *add_constraintmenu(void *arg_unused) uiDefBut(block, BUTM, B_CONSTRAINT_ADD_MINMAX, "Floor", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 0, ""); uiDefBut(block, BUTM, B_CONSTRAINT_ADD_LOCKTRACK, "Locked Track", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 0, ""); uiDefBut(block, BUTM, B_CONSTRAINT_ADD_FOLLOWPATH, "Follow Path", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 0, ""); + uiDefBut(block, BUTM, B_CONSTRAINT_ADD_SHRINKWRAP, "Shrinkwrap" , 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 0, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, 120, 6, NULL, 0.0, 0.0, 0, 0, ""); @@ -2049,6 +2081,14 @@ void do_constraintbuts(unsigned short event) BIF_undo_push("Add constraint"); } break; + case B_CONSTRAINT_ADD_SHRINKWRAP: + { + con = add_new_constraint(CONSTRAINT_TYPE_SHRINKWRAP); + add_constraint_to_active(ob, con); + + BIF_undo_push("Add constraint"); + } + break; default: break; diff --git a/source/blender/src/editconstraint.c b/source/blender/src/editconstraint.c index 42972e4aa5d..865bf1ba29d 100644 --- a/source/blender/src/editconstraint.c +++ b/source/blender/src/editconstraint.c @@ -366,6 +366,8 @@ void add_constraint (short only_IK) nr= pupmenu("Add Constraint to Active Bone%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Stretch To%x7|%l|Action%x16|Script%x18"); else if ((obsel) && (obsel->type==OB_CURVE)) nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Follow Path%x6|Clamp To%x17|Stretch To%x7|%l|Action%x16|Script%x18"); + else if ((obsel) && (obsel->type==OB_MESH)) + nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Shrinkwrap%x22|Stretch To%x7|%l|Action%x16|Script%x18"); else if (obsel) nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Stretch To%x7|%l|Action%x16|Script%x18"); else @@ -374,6 +376,8 @@ void add_constraint (short only_IK) else { if ((obsel) && (obsel->type==OB_CURVE)) nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Follow Path%x6|Clamp To%x17|%l|Action%x16|Script%x18"); + else if ((obsel) && (obsel->type==OB_MESH)) + nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|Shrinkwrap%x22|%l|Action%x16|Script%x18"); else if (obsel) nr= pupmenu("Add Constraint to Active Object%t|Child Of%x19|Transformation%x20|%l|Copy Location%x1|Copy Rotation%x2|Copy Scale%x8|%l|Limit Location%x13|Limit Rotation%x14|Limit Scale%x15|Limit Distance%x21|%l|Track To%x3|Floor%x4|Locked Track%x5|%l|Action%x16|Script%x18"); else @@ -476,6 +480,7 @@ void add_constraint (short only_IK) } else if (nr==20) con = add_new_constraint(CONSTRAINT_TYPE_TRANSFORM); else if (nr==21) con = add_new_constraint(CONSTRAINT_TYPE_DISTLIMIT); + else if (nr==22) con = add_new_constraint(CONSTRAINT_TYPE_SHRINKWRAP); if (con==NULL) return; /* paranoia */ From bbdaa03d6598a6f09e7272ade1ef96abf3ce1d53 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Wed, 15 Apr 2009 21:17:08 +0000 Subject: [PATCH 172/201] BGE bug #18168: Get local orientation of object using game engine python script system. Added localOrientation and worldOrientation. orientation attribute deprecated. Same for position and scaling. World attributes are read-only except for worldPosition. Add systematic check on NULL SGNode in all python functions. This is necessary to handle zombie objects (deleted by the game but kept alive by a reference in a list). --- source/gameengine/Ketsji/KX_GameObject.cpp | 171 ++++++++++++++------- source/gameengine/Ketsji/KX_GameObject.h | 16 +- source/gameengine/PyDoc/KX_GameObject.py | 21 ++- 3 files changed, 143 insertions(+), 65 deletions(-) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 36fb9142adc..283b78c2947 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -76,6 +76,10 @@ typedef unsigned long uint_ptr; #include "KX_SG_NodeRelationships.h" static MT_Point3 dummy_point= MT_Point3(0.0, 0.0, 0.0); +static MT_Vector3 dummy_scaling = MT_Vector3(1.0, 1.0, 1.0); +static MT_Matrix3x3 dummy_orientation = MT_Matrix3x3( 1.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 1.0); KX_GameObject::KX_GameObject( void* sgReplicationInfo, @@ -373,11 +377,14 @@ void KX_GameObject::ApplyTorque(const MT_Vector3& torque,bool local) void KX_GameObject::ApplyMovement(const MT_Vector3& dloc,bool local) { - if (m_pPhysicsController1) // (IsDynamic()) + if (GetSGNode()) { - m_pPhysicsController1->RelativeTranslate(dloc,local); + if (m_pPhysicsController1) // (IsDynamic()) + { + m_pPhysicsController1->RelativeTranslate(dloc,local); + } + GetSGNode()->RelativeTranslate(dloc,GetSGNode()->GetSGParent(),local); } - GetSGNode()->RelativeTranslate(dloc,GetSGNode()->GetSGParent(),local); } @@ -385,11 +392,13 @@ void KX_GameObject::ApplyMovement(const MT_Vector3& dloc,bool local) void KX_GameObject::ApplyRotation(const MT_Vector3& drot,bool local) { MT_Matrix3x3 rotmat(drot); + + if (GetSGNode()) { + GetSGNode()->RelativeRotate(rotmat,local); - GetSGNode()->RelativeRotate(rotmat,local); - - if (m_pPhysicsController1) { // (IsDynamic()) - m_pPhysicsController1->RelativeRotate(rotmat,local); + if (m_pPhysicsController1) { // (IsDynamic()) + m_pPhysicsController1->RelativeRotate(rotmat,local); + } } } @@ -402,16 +411,17 @@ double* KX_GameObject::GetOpenGLMatrix() { // todo: optimize and only update if necessary double* fl = m_OpenGL_4x4Matrix.getPointer(); - MT_Transform trans; + if (GetSGNode()) { + MT_Transform trans; - trans.setOrigin(GetSGNode()->GetWorldPosition()); - trans.setBasis(GetSGNode()->GetWorldOrientation()); + trans.setOrigin(GetSGNode()->GetWorldPosition()); + trans.setBasis(GetSGNode()->GetWorldOrientation()); - MT_Vector3 scaling = GetSGNode()->GetWorldScaling(); - m_bIsNegativeScaling = ((scaling[0] < 0.0) ^ (scaling[1] < 0.0) ^ (scaling[2] < 0.0)) ? true : false; - trans.scale(scaling[0], scaling[1], scaling[2]); - trans.getValue(fl); - + MT_Vector3 scaling = GetSGNode()->GetWorldScaling(); + m_bIsNegativeScaling = ((scaling[0] < 0.0) ^ (scaling[1] < 0.0) ^ (scaling[2] < 0.0)) ? true : false; + trans.scale(scaling[0], scaling[1], scaling[2]); + trans.getValue(fl); + } return fl; } @@ -442,13 +452,15 @@ static void UpdateBuckets_recursive(SG_Node* node) void KX_GameObject::UpdateBuckets( bool recursive ) { - double* fl = GetOpenGLMatrixPtr()->getPointer(); + if (GetSGNode()) { + double* fl = GetOpenGLMatrixPtr()->getPointer(); - for (size_t i=0;iUpdateBuckets(this, fl, m_bUseObjectColor, m_objectColor, m_bVisible, m_bCulled); + for (size_t i=0;iUpdateBuckets(this, fl, m_bUseObjectColor, m_objectColor, m_bVisible, m_bCulled); - if (recursive) { - UpdateBuckets_recursive(m_pSGNode); + if (recursive) { + UpdateBuckets_recursive(GetSGNode()); + } } } @@ -599,9 +611,11 @@ KX_GameObject::SetVisible( bool recursive ) { - m_bVisible = v; - if (recursive) - setVisible_recursive(m_pSGNode, v); + if (GetSGNode()) { + m_bVisible = v; + if (recursive) + setVisible_recursive(GetSGNode(), v); + } } static void setOccluder_recursive(SG_Node* node, bool v) @@ -627,9 +641,11 @@ KX_GameObject::SetOccluder( bool recursive ) { - m_bOccluder = v; - if (recursive) - setOccluder_recursive(m_pSGNode, v); + if (GetSGNode()) { + m_bOccluder = v; + if (recursive) + setOccluder_recursive(GetSGNode(), v); + } } void @@ -929,7 +945,9 @@ void KX_GameObject::NodeSetRelativeScale(const MT_Vector3& scale) void KX_GameObject::NodeSetWorldPosition(const MT_Point3& trans) { - SG_Node* parent = m_pSGNode->GetSGParent(); + if (!GetSGNode()) + return; + SG_Node* parent = GetSGNode()->GetSGParent(); if (parent != NULL) { // Make sure the objects have some scale @@ -964,13 +982,9 @@ void KX_GameObject::NodeUpdateGS(double time) const MT_Matrix3x3& KX_GameObject::NodeGetWorldOrientation() const { - static MT_Matrix3x3 defaultOrientation = MT_Matrix3x3( 1.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 0.0, 0.0, 1.0); - // check on valid node in case a python controller holds a reference to a deleted object if (!GetSGNode()) - return defaultOrientation; + return dummy_orientation; return GetSGNode()->GetWorldOrientation(); } @@ -978,11 +992,9 @@ const MT_Matrix3x3& KX_GameObject::NodeGetWorldOrientation() const const MT_Vector3& KX_GameObject::NodeGetWorldScaling() const { - static MT_Vector3 defaultScaling = MT_Vector3(1.0, 1.0, 1.0); - // check on valid node in case a python controller holds a reference to a deleted object if (!GetSGNode()) - return defaultScaling; + return dummy_scaling; return GetSGNode()->GetWorldScaling(); } @@ -1091,13 +1103,19 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("linVelocityMax", KX_GameObject, pyattr_get_lin_vel_max, pyattr_set_lin_vel_max), KX_PYATTRIBUTE_RW_FUNCTION("visible", KX_GameObject, pyattr_get_visible, pyattr_set_visible), KX_PYATTRIBUTE_BOOL_RW ("occlusion", KX_GameObject, m_bOccluder), - KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_position, pyattr_set_position), + KX_PYATTRIBUTE_RW_FUNCTION("position", KX_GameObject, pyattr_get_worldPosition, pyattr_set_localPosition), KX_PYATTRIBUTE_RO_FUNCTION("localInertia", KX_GameObject, pyattr_get_localInertia), - KX_PYATTRIBUTE_RW_FUNCTION("orientation",KX_GameObject,pyattr_get_orientation,pyattr_set_orientation), - KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_scaling, pyattr_set_scaling), + KX_PYATTRIBUTE_RW_FUNCTION("orientation",KX_GameObject,pyattr_get_worldOrientation,pyattr_set_localOrientation), + KX_PYATTRIBUTE_RW_FUNCTION("scaling", KX_GameObject, pyattr_get_worldScaling, pyattr_set_localScaling), KX_PYATTRIBUTE_RW_FUNCTION("timeOffset",KX_GameObject, pyattr_get_timeOffset,pyattr_set_timeOffset), KX_PYATTRIBUTE_RW_FUNCTION("state", KX_GameObject, pyattr_get_state, pyattr_set_state), KX_PYATTRIBUTE_RO_FUNCTION("meshes", KX_GameObject, pyattr_get_meshes), + KX_PYATTRIBUTE_RW_FUNCTION("localOrientation",KX_GameObject,pyattr_get_localOrientation,pyattr_set_localOrientation), + KX_PYATTRIBUTE_RO_FUNCTION("worldOrientation",KX_GameObject,pyattr_get_worldOrientation), + KX_PYATTRIBUTE_RW_FUNCTION("localPosition", KX_GameObject, pyattr_get_localPosition, pyattr_set_localPosition), + KX_PYATTRIBUTE_RW_FUNCTION("worldPosition", KX_GameObject, pyattr_get_worldPosition, pyattr_set_worldPosition), + KX_PYATTRIBUTE_RW_FUNCTION("localScaling", KX_GameObject, pyattr_get_localScaling, pyattr_set_localScaling), + KX_PYATTRIBUTE_RO_FUNCTION("worldScaling", KX_GameObject, pyattr_get_worldScaling), KX_PYATTRIBUTE_RO_FUNCTION("__dict__", KX_GameObject, pyattr_get_dir_dict), @@ -1448,13 +1466,34 @@ int KX_GameObject::pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *at return 0; } -PyObject* KX_GameObject::pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +PyObject* KX_GameObject::pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); return PyObjectFrom(self->NodeGetWorldPosition()); } -int KX_GameObject::pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +int KX_GameObject::pyattr_set_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_GameObject* self= static_cast(self_v); + MT_Point3 pos; + if (!PyVecTo(value, pos)) + return 1; + + self->NodeSetWorldPosition(pos); + self->NodeUpdateGS(0.f); + return 0; +} + +PyObject* KX_GameObject::pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + if (self->GetSGNode()) + return PyObjectFrom(self->GetSGNode()->GetLocalPosition()); + else + return PyObjectFrom(dummy_point); +} + +int KX_GameObject::pyattr_set_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_GameObject* self= static_cast(self_v); MT_Point3 pos; @@ -1476,13 +1515,22 @@ PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIB return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f); } -PyObject* KX_GameObject::pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +PyObject* KX_GameObject::pyattr_get_worldOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); return PyObjectFrom(self->NodeGetWorldOrientation()); } -int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +PyObject* KX_GameObject::pyattr_get_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + if (self->GetSGNode()) + return PyObjectFrom(self->GetSGNode()->GetLocalOrientation()); + else + return PyObjectFrom(dummy_orientation); +} + +int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_GameObject* self= static_cast(self_v); if (!PySequence_Check(value)) { @@ -1530,13 +1578,22 @@ int KX_GameObject::pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF return 1; } -PyObject* KX_GameObject::pyattr_get_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +PyObject* KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); return PyObjectFrom(self->NodeGetWorldScaling()); } -int KX_GameObject::pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +PyObject* KX_GameObject::pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_GameObject* self= static_cast(self_v); + if (self->GetSGNode()) + return PyObjectFrom(self->GetSGNode()->GetLocalScale()); + else + return PyObjectFrom(dummy_scaling); +} + +int KX_GameObject::pyattr_set_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_GameObject* self= static_cast(self_v); MT_Vector3 scale; @@ -1551,8 +1608,8 @@ int KX_GameObject::pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *at PyObject* KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_GameObject* self= static_cast(self_v); - SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); /* GetSGNode() is valid or exception would be raised */ - if (sg_parent && sg_parent->IsSlowParent()) { + SG_Node* sg_parent; + if (self->GetSGNode() && (sg_parent = self->GetSGNode()->GetSGParent()) != NULL && sg_parent->IsSlowParent()) { return PyFloat_FromDouble(static_cast(sg_parent->GetParentRelation())->GetTimeOffset()); } else { return PyFloat_FromDouble(0.0); @@ -1562,16 +1619,16 @@ PyObject* KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUT int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_GameObject* self= static_cast(self_v); - MT_Scalar val = PyFloat_AsDouble(value); - SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); /* GetSGNode() is valid or exception would be raised */ - if (val < 0.0f) { /* also accounts for non float */ - PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); - return 1; + if (self->GetSGNode()) { + MT_Scalar val = PyFloat_AsDouble(value); + SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); + if (val < 0.0f) { /* also accounts for non float */ + PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + return 1; + } + if (sg_parent && sg_parent->IsSlowParent()) + static_cast(sg_parent->GetParentRelation())->SetTimeOffset(val); } - - if (sg_parent && sg_parent->IsSlowParent()) - static_cast(sg_parent->GetParentRelation())->SetTimeOffset(val); - return 0; } @@ -2092,6 +2149,8 @@ PyObject* KX_GameObject::PyRemoveParent(PyObject* self) static void walk_children(SG_Node* node, CListValue* list, bool recursive) { + if (!node) + return; NodeList& children = node->GetSGChildren(); for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) @@ -2122,7 +2181,7 @@ PyObject* KX_GameObject::PyGetChildren(PyObject* self) PyObject* KX_GameObject::PyGetChildrenRecursive(PyObject* self) { CListValue* list = new CListValue(); - walk_children(m_pSGNode, list, 1); + walk_children(GetSGNode(), list, 1); return list; } diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 0bf3e60f34b..cf0c0e6b0f5 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -880,14 +880,18 @@ public: static int pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - static PyObject* pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static int pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - static PyObject* pyattr_get_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static int pyattr_set_orientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - static PyObject* pyattr_get_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static int pyattr_set_scaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_worldOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); + static PyObject* pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static int pyattr_set_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/PyDoc/KX_GameObject.py b/source/gameengine/PyDoc/KX_GameObject.py index 4aa9de2fe86..21ddf439924 100644 --- a/source/gameengine/PyDoc/KX_GameObject.py +++ b/source/gameengine/PyDoc/KX_GameObject.py @@ -39,11 +39,26 @@ class KX_GameObject: # (SCA_IObject) @ivar occlusion: occlusion capability flag. @type occlusion: boolean @ivar position: The object's position. - @type position: list [x, y, z] + DEPRECATED: use localPosition and worldPosition + @type position: list [x, y, z] On write: local position, on read: world position @ivar orientation: The object's orientation. 3x3 Matrix. You can also write a Quaternion or Euler vector. - @type orientation: 3x3 Matrix [[float]] + DEPRECATED: use localOrientation and worldOrientation + @type orientation: 3x3 Matrix [[float]] On write: local orientation, on read: world orientation @ivar scaling: The object's scaling factor. list [sx, sy, sz] - @type scaling: list [sx, sy, sz] + DEPRECATED: use localScaling and worldScaling + @type scaling: list [sx, sy, sz] On write: local scaling, on read: world scaling + @ivar localOrientation: The object's local orientation. 3x3 Matrix. You can also write a Quaternion or Euler vector. + @type localOrientation: 3x3 Matrix [[float]] + @ivar worldOrientation: The object's world orientation. Read-only. + @type worldOrientation: 3x3 Matrix [[float]] + @ivar localScaling: The object's local scaling factor. + @type localScaling: list [sx, sy, sz] + @ivar worldScaling: The object's world scaling factor. Read-only + @type worldScaling: list [sx, sy, sz] + @ivar localPosition: The object's local position. + @type localPosition: list [x, y, z] + @ivar worldPosition: The object's world position. + @type worldPosition: list [x, y, z] @ivar timeOffset: adjust the slowparent delay at runtime. @type timeOffset: float @ivar state: the game object's state bitmask, using the first 30 bits, one bit must always be set. From 32253dfaaf43751037d4dcabd834e812902d6538 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 16 Apr 2009 06:24:47 +0000 Subject: [PATCH 173/201] bpy_internal_import.c should build with py2.3 now, also gave bpy_internal_import functions better names. --- source/blender/python/BPY_interface.c | 6 ++-- .../python/api2_2x/bpy_internal_import.c | 33 +++++++++++-------- .../python/api2_2x/bpy_internal_import.h | 10 +++--- source/gameengine/Ketsji/KX_PythonInit.cpp | 12 +++---- 4 files changed, 33 insertions(+), 28 deletions(-) diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index 3b539be7a95..ea3d6a54162 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -1276,7 +1276,7 @@ static int bpy_pydriver_create_dict(void) * Users can add their own functions to this module. */ if (G.f&G_DOSCRIPTLINKS) { int found; /* not used but needed as an arg */ - mod = importText("pydrivers", &found); /* can also use PyImport_Import() */ + mod = bpy_text_import("pydrivers", &found); /* can also use PyImport_Import() */ if (mod) { PyDict_SetItemString(d, "pydrivers", mod); PyDict_SetItemString(d, "p", mod); @@ -2831,7 +2831,7 @@ static void DoAllScriptsFromList( ListBase * list, short event ) static void init_ourImport( void ) { PyObject *m, *d; - PyObject *import = PyCFunction_New( bpy_import, NULL ); + PyObject *import = PyCFunction_New( bpy_import_meth, NULL ); m = PyImport_AddModule( "__builtin__" ); d = PyModule_GetDict( m ); @@ -2842,7 +2842,7 @@ static void init_ourImport( void ) static void init_ourReload( void ) { PyObject *m, *d; - PyObject *reload = PyCFunction_New( bpy_reload, NULL ); + PyObject *reload = PyCFunction_New( bpy_reload_meth, NULL ); m = PyImport_AddModule( "__builtin__" ); d = PyModule_GetDict( m ); diff --git a/source/blender/python/api2_2x/bpy_internal_import.c b/source/blender/python/api2_2x/bpy_internal_import.c index a62ae689f59..1e1454dcd5c 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.c +++ b/source/blender/python/api2_2x/bpy_internal_import.c @@ -56,7 +56,7 @@ void bpy_import_main_set(struct Main *maggie) } -PyObject *importText( char *name, int *found ) +PyObject *bpy_text_import( char *name, int *found ) { Text *text; char txtname[22]; /* 21+NULL */ @@ -103,7 +103,7 @@ PyObject *importText( char *name, int *found ) * find in-memory module and recompile */ -PyObject *reimportText( PyObject *module, int *found ) +PyObject *bpy_text_reimport( PyObject *module, int *found ) { Text *text; char *txtname; @@ -172,13 +172,13 @@ static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * k int dummy_val; /* what does this do?*/ static char *kwlist[] = {"name", "globals", "locals", "fromlist", "level", 0}; - if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bpy_import", kwlist, + if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOOi:bpy_import_meth", kwlist, &name, &globals, &locals, &fromlist, &dummy_val) ) return NULL; #else static char *kwlist[] = {"name", "globals", "locals", "fromlist", 0}; - if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bpy_import", kwlist, + if( !PyArg_ParseTupleAndKeywords( args, kw, "s|OOO:bpy_import_meth", kwlist, &name, &globals, &locals, &fromlist ) ) return NULL; #endif @@ -192,7 +192,7 @@ static PyObject *blender_import( PyObject * self, PyObject * args, PyObject * k PyErr_Fetch( &exception, &err, &tb ); /* get the python error incase we cant import as blender text either */ /* importing from existing modules failed, see if we have this module as blender text */ - newmodule = importText( name, &found ); + newmodule = bpy_text_import( name, &found ); if( newmodule ) {/* found module as blender text, ignore above exception */ PyErr_Clear( ); @@ -228,7 +228,7 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) int found= 0; /* check for a module arg */ - if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) + if( !PyArg_ParseTuple( args, "O:bpy_reload_meth", &module ) ) return NULL; /* try reimporting from file */ @@ -239,7 +239,7 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) /* no file, try importing from memory */ PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */ - newmodule = reimportText( module, &found ); + newmodule = bpy_text_reimport( module, &found ); if( newmodule ) {/* found module as blender text, ignore above exception */ PyErr_Clear( ); Py_XDECREF( exception ); @@ -262,8 +262,8 @@ static PyObject *blender_reload( PyObject * self, PyObject * args ) return newmodule; } -PyMethodDef bpy_import[] = { {"bpy_import", blender_import, METH_KEYWORDS, "blenders import"} }; -PyMethodDef bpy_reload[] = { {"bpy_reload", blender_reload, METH_VARARGS, "blenders reload"} }; +PyMethodDef bpy_import_meth[] = { {"bpy_import_meth", blender_import, METH_KEYWORDS, "blenders import"} }; +PyMethodDef bpy_reload_meth[] = { {"bpy_reload_meth", blender_reload, METH_VARARGS, "blenders reload"} }; /* Clear user modules. @@ -284,20 +284,25 @@ PyMethodDef bpy_reload[] = { {"bpy_reload", blender_reload, METH_VARARGS, "blend #endif -void importClearUserModules(void) +void bpy_text_clear_modules(void) { - PyObject *modules= PySys_GetObject("modules"); + PyObject *modules= PySys_GetObject("modules"); char *fname; char *file_extension; /* looping over the dict */ PyObject *key, *value; - Py_ssize_t pos = 0; + int pos = 0; /* new list */ - PyObject *list= PyList_New(0); - + PyObject *list; + + if (modules==NULL) + return; /* should never happen but just incase */ + + list= PyList_New(0); + /* go over sys.modules and remove anything with a * sys.modukes[x].__file__ thats ends with a .py and has no path */ diff --git a/source/blender/python/api2_2x/bpy_internal_import.h b/source/blender/python/api2_2x/bpy_internal_import.h index 9d440406636..137818bb0db 100644 --- a/source/blender/python/api2_2x/bpy_internal_import.h +++ b/source/blender/python/api2_2x/bpy_internal_import.h @@ -35,11 +35,11 @@ #include "compile.h" /* for the PyCodeObject */ #include "eval.h" /* for PyEval_EvalCode */ -PyObject *importText( char *name, int *found ); -PyObject *reimportText( PyObject *module, int *found ); -void importClearUserModules( void ); /* Clear user modules */ -extern PyMethodDef bpy_import[]; -extern PyMethodDef bpy_reload[]; +PyObject* bpy_text_import( char *name, int *found ); +PyObject* bpy_text_reimport( PyObject *module, int *found ); +void bpy_text_clear_modules( void ); /* Clear user modules */ +extern PyMethodDef bpy_import_meth[]; +extern PyMethodDef bpy_reload_meth[]; /* The game engine has its own Main struct, if this is set search this rather then G.main */ struct Main *bpy_import_main_get(void); diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index eafb7fc0cb8..7643a043a7c 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1244,7 +1244,7 @@ PyObject *KXpy_import(PyObject *self, PyObject *args) } /* Import blender texts as python modules */ - m= importText(name, &found); + m= bpy_text_import(name, &found); if (m) return m; @@ -1267,10 +1267,10 @@ PyObject *KXpy_reload(PyObject *self, PyObject *args) { PyObject *newmodule = NULL; /* check for a module arg */ - if( !PyArg_ParseTuple( args, "O:bpy_reload", &module ) ) + if( !PyArg_ParseTuple( args, "O:bpy_reload_meth", &module ) ) return NULL; - newmodule= reimportText( module, &found ); + newmodule= bpy_text_reimport( module, &found ); if (newmodule) return newmodule; @@ -1353,8 +1353,8 @@ void setSandbox(TPythonSecurityLevel level) */ default: /* Allow importing internal text, from bpy_internal_import.py */ - PyDict_SetItemString(d, "reload", item=PyCFunction_New(bpy_reload, NULL)); Py_DECREF(item); - PyDict_SetItemString(d, "__import__", item=PyCFunction_New(bpy_import, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "reload", item=PyCFunction_New(bpy_reload_meth, NULL)); Py_DECREF(item); + PyDict_SetItemString(d, "__import__", item=PyCFunction_New(bpy_import_meth, NULL)); Py_DECREF(item); break; } } @@ -1440,7 +1440,7 @@ static void clearGameModules() PyErr_Clear(); // incase some of these were alredy removed. /* clear user defined modules */ - importClearUserModules(); + bpy_text_clear_modules(); } void exitGamePythonScripting() From 2c491b5d2e6db52e526a39e3040c59db4edd25de Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Thu, 16 Apr 2009 20:13:13 +0000 Subject: [PATCH 174/201] BGE: slow parent was causing scaling distortion, now use correct quaternion interpolation. --- intern/moto/include/MT_Quaternion.inl | 26 ++++++++++++------- .../Ketsji/KX_SG_NodeRelationships.cpp | 21 ++++----------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/intern/moto/include/MT_Quaternion.inl b/intern/moto/include/MT_Quaternion.inl index ecfd6699f67..ec747c453d3 100644 --- a/intern/moto/include/MT_Quaternion.inl +++ b/intern/moto/include/MT_Quaternion.inl @@ -74,19 +74,27 @@ GEN_INLINE MT_Scalar MT_Quaternion::angle(const MT_Quaternion& q) const GEN_INLINE MT_Quaternion MT_Quaternion::slerp(const MT_Quaternion& q, const MT_Scalar& t) const { - MT_Scalar theta = angle(q); - - if (!MT_fuzzyZero(theta)) + MT_Scalar d, s0, s1; + MT_Scalar s = dot(q); + bool neg = (s < 0.0); + + if (neg) + s = -s; + if ((1.0 - s) > 0.0001) { - MT_Scalar d = MT_Scalar(1.0) / sin(theta); - MT_Scalar s0 = sin((MT_Scalar(1.0) - t) * theta); - MT_Scalar s1 = sin(t * theta); - - return d*(*this * s0 + q * s1); + MT_Scalar theta = acos(s); + d = MT_Scalar(1.0) / sin(theta); + s0 = sin((MT_Scalar(1.0) - t) * theta); + s1 = sin(t * theta); } else { - return *this; + d = MT_Scalar(1.0); + s0 = MT_Scalar(1.0) - t; + s1 = t; } + if (neg) + s1 = -s1; + return d*(*this * s0 + q * s1); } diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp index 87ff3b53911..c3b0c21c8e0 100644 --- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp +++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp @@ -235,23 +235,12 @@ UpdateChildCoordinates( // now 'interpolate' the normal coordinates with the last // world coordinates to get the new world coordinates. - // problem 1: - // The child world scale needs to be initialized in some way for this - // to make sense - // problem 2: - // This is way of doing interpolation is nonsense - - int i; - MT_Scalar weight = MT_Scalar(1)/(m_relax + 1); - for (i=0;i <3 ;i++) { - child_w_scale[i] = (m_relax * child_w_scale[i] + child_n_scale[i]) * weight; - child_w_pos[i] = (m_relax * child_w_pos[i] + child_n_pos[i]) * weight; - child_w_rotation[0][i] = (m_relax * child_w_rotation[0][i] + child_n_rotation[0][i]) * weight; - child_w_rotation[1][i] = (m_relax * child_w_rotation[1][i] + child_n_rotation[1][i]) * weight; - child_w_rotation[2][i] = (m_relax * child_w_rotation[2][i] + child_n_rotation[2][i]) * weight; - } - + child_w_scale = (m_relax * child_w_scale + child_n_scale) * weight; + child_w_pos = (m_relax * child_w_pos + child_n_pos) * weight; + // for rotation we must go through quaternion + MT_Quaternion child_w_quat = child_w_rotation.getRotation().slerp(child_n_rotation.getRotation(), weight); + child_w_rotation.setRotation(child_w_quat); //FIXME: update physics controller. } else { child_w_scale = child_n_scale; From 0cda4903b1a6f8a94e45fef9847c5b3a5fe56890 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Apr 2009 02:33:14 +0000 Subject: [PATCH 175/201] [#18533] Little fix in Particle API doc from Alberto Santos (dnakhain) --- source/blender/python/api2_2x/doc/Particle.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/blender/python/api2_2x/doc/Particle.py b/source/blender/python/api2_2x/doc/Particle.py index 9728c896904..6107f0bda2f 100644 --- a/source/blender/python/api2_2x/doc/Particle.py +++ b/source/blender/python/api2_2x/doc/Particle.py @@ -40,13 +40,25 @@ This module provides access to the B{Particle} in Blender. - LINE: Draw as lines - PATH: Draw pathes - OBJECT: Draw object - - GROUP: Draw goup + - GROUP: Draw group - BILLBOARD: Draw as billboard @type CHILDTYPE: readonly dictionary @var CHILDTYPE: Constant dict used for whith L{Particle.CHILDTYPE} - NONE: set no children - PARTICLES: set children born from particles - FACES: set children born from faces +@type CHILDKINK: readonly dictionary +@var CHILDKINK: Type of periodic offset on the path + - NOTHING: set no offset on the path + - CURL: set curl offset on the path + - RADIAL: set radial offset on the path + - WAVE: set wave offset on the path + - BRAID: set braid offset on the path +@type CHILDKINKAXIS: readonly dictionary +@var CHILDKINKAXIS: Which axis to use for offset + - X: set X axis for offset + - Y: set Y axis for offset + - Z: set Z axis for offset """ class Particle: From aed9f92734b043ac686ffc10c3374b4cd5ce3153 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Apr 2009 06:21:49 +0000 Subject: [PATCH 176/201] packing from the UV window with margin had a problem with feedback, so running again and again would give different results. Scale the margin by the combined area of all boxes to give predictable results. --- source/blender/src/parametrizer.c | 36 +++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c index 654113f5f0c..feb774b604a 100644 --- a/source/blender/src/parametrizer.c +++ b/source/blender/src/parametrizer.c @@ -4134,6 +4134,7 @@ void param_pack(ParamHandle *handle, float margin) PChart *chart; int i, unpacked=0; float trans[2]; + double area= 0.0; PHandle *phandle = (PHandle*)handle; @@ -4146,6 +4147,7 @@ void param_pack(ParamHandle *handle, float margin) /* we may not use all these boxes */ boxarray = MEM_mallocN( phandle->ncharts*sizeof(boxPack), "boxPack box"); + for (i = 0; i < phandle->ncharts; i++) { chart = phandle->charts[i]; @@ -4158,14 +4160,40 @@ void param_pack(ParamHandle *handle, float margin) p_chart_uv_bbox(chart, trans, chart->u.pack.size); - trans[0] = -(trans[0] - margin); - trans[1] = -(trans[1] - margin); + trans[0] = -trans[0]; + trans[1] = -trans[1]; p_chart_uv_translate(chart, trans); - box->w = (chart->u.pack.size[0] + trans[0]) + margin*2; - box->h = (chart->u.pack.size[1] + trans[1]) + margin*2; + box->w = chart->u.pack.size[0] + trans[0]; + box->h = chart->u.pack.size[1] + trans[1]; box->index = i; /* warning this index skips PCHART_NOPACK boxes */ + + if(margin>0.0f) + area += sqrt(box->w*box->h); + } + + if(margin>0.0f) { + /* multiply the margin by the area to give pradictable results not dependant on UV scale, + * ...Without using the area running pack multiple times also gives a bad feedback loop. + * multiply by 0.1 so the margin value from the UI can be from 0.0 to 1.0 but not give a massive margin */ + margin = (margin*(float)area) * 0.1; + unpacked= 0; + for (i = 0; i < phandle->ncharts; i++) { + chart = phandle->charts[i]; + + if (chart->flag & PCHART_NOPACK) { + unpacked++; + continue; + } + + box = boxarray+(i-unpacked); + trans[0] = margin * area; + trans[1] = margin * area; + p_chart_uv_translate(chart, trans); + box->w += (margin * area) *2; + box->h += (margin * area) *2; + } } boxPack2D(boxarray, phandle->ncharts-unpacked, &tot_width, &tot_height); From 1dd980768d6f8c808e88251572a6bc503a2b905e Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 17 Apr 2009 10:24:44 +0000 Subject: [PATCH 177/201] Missing for abs() made this file not compile for me. --- source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp index eaffd483d70..c300baa9bd4 100644 --- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp +++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp @@ -29,6 +29,7 @@ #endif #include +#include #include "SCA_Joystick.h" #include "SCA_JoystickPrivate.h" From 6761cc00d4f79f603a7e52b33e0aad26e210cbd2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Apr 2009 10:34:09 +0000 Subject: [PATCH 178/201] let command line args override the 'blenderlite' target --- SConstruct | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/SConstruct b/SConstruct index 7366149c593..28e5001b12f 100644 --- a/SConstruct +++ b/SConstruct @@ -262,29 +262,35 @@ if 'blendernogame' in B.targets: env['WITH_BF_GAMEENGINE'] = False if 'blenderlite' in B.targets: - env['WITH_BF_GAMEENGINE'] = False - env['WITH_BF_OPENAL'] = False - env['WITH_BF_OPENEXR'] = False - env['WITH_BF_ICONV'] = False - env['WITH_BF_INTERNATIONAL'] = False - env['WITH_BF_OPENJPEG'] = False - env['WITH_BF_FFMPEG'] = False - env['WITH_BF_QUICKTIME'] = False - env['WITH_BF_YAFRAY'] = False - env['WITH_BF_REDCODE'] = False - env['WITH_BF_FTGL'] = False - env['WITH_BF_DDS'] = False - env['WITH_BF_ZLIB'] = False - env['WITH_BF_SDL'] = False - env['WITH_BF_JPEG'] = False - env['WITH_BF_PNG'] = False - env['WITH_BF_ODE'] = False - env['WITH_BF_BULLET'] = False - env['WITH_BF_SOLID'] = False - env['WITH_BF_BINRELOC'] = False - env['BF_BUILDINFO'] = False - env['BF_NO_ELBEEM'] = True - env['WITH_BF_PYTHON'] = False + target_env_defs = {} + target_env_defs['WITH_BF_GAMEENGINE'] = False + target_env_defs['WITH_BF_OPENAL'] = False + target_env_defs['WITH_BF_OPENEXR'] = False + target_env_defs['WITH_BF_ICONV'] = False + target_env_defs['WITH_BF_INTERNATIONAL'] = False + target_env_defs['WITH_BF_OPENJPEG'] = False + target_env_defs['WITH_BF_FFMPEG'] = False + target_env_defs['WITH_BF_QUICKTIME'] = False + target_env_defs['WITH_BF_YAFRAY'] = False + target_env_defs['WITH_BF_REDCODE'] = False + target_env_defs['WITH_BF_FTGL'] = False + target_env_defs['WITH_BF_DDS'] = False + target_env_defs['WITH_BF_ZLIB'] = False + target_env_defs['WITH_BF_SDL'] = False + target_env_defs['WITH_BF_JPEG'] = False + target_env_defs['WITH_BF_PNG'] = False + target_env_defs['WITH_BF_ODE'] = False + target_env_defs['WITH_BF_BULLET'] = False + target_env_defs['WITH_BF_SOLID'] = False + target_env_defs['WITH_BF_BINRELOC'] = False + target_env_defs['BF_BUILDINFO'] = False + target_env_defs['BF_NO_ELBEEM'] = True + target_env_defs['WITH_BF_PYTHON'] = False + + # Merge blenderlite, let command line to override + for k,v in target_env_defs.iteritems(): + if k not in B.arguments: + env[k] = v # lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir #B.root_build_dir = B.arguments.get('BF_BUILDDIR', '..'+os.sep+'build'+os.sep+platform+os.sep) From 80e40d504c457ed3041fed925a6b3f80f54dffe1 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 17 Apr 2009 10:38:10 +0000 Subject: [PATCH 179/201] bugfix #18287 Texture nodes hang when nodes have a cyclic case. Added a (temp?) provision to tag node->need_exec zero for cyclic nodes, and added check for this in texture nodes. There was also a bug in 'tag changed' for texture nodes, which not only tagged, but also called the tree exec (should not happen!). In general the texture exec needs recode; it doesn't use the stacks as provided per node, but recurses itself to previous nodes, giving problems like this. Node execs should only do their own bizz, the node system handles dependency and eval order nicely already. --- source/blender/blenkernel/intern/node.c | 39 ++++++++++++++----- .../nodes/intern/TEX_nodes/TEX_texture.c | 2 +- source/blender/nodes/intern/TEX_util.c | 9 ++++- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 9a78f8ea02a..e4e5883b2d8 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1644,7 +1644,8 @@ void ntreeSolveOrder(bNodeTree *ntree) might be different for editor or for "real" use... */ } -/* should be callback! */ +/* Should be callback! */ +/* Do not call execs here */ void NodeTagChanged(bNodeTree *ntree, bNode *node) { if(ntree->type==NTREE_COMPOSIT) { @@ -1664,8 +1665,6 @@ void NodeTagChanged(bNodeTree *ntree, bNode *node) } node->need_exec= 1; } - else if(ntree->type == NTREE_TEXTURE) - ntreeTexUpdatePreviews(ntree); } void NodeTagIDChanged(bNodeTree *ntree, ID *id) @@ -2067,6 +2066,11 @@ void ntreeBeginExecTree(bNodeTree *ntree) /* tag used outputs, so we know when we can skip operations */ for(node= ntree->nodes.first; node; node= node->next) { bNodeSocket *sock; + + /* composite has own need_exec tag handling */ + if(ntree->type!=NTREE_COMPOSIT) + node->need_exec= 1; + for(sock= node->inputs.first; sock; sock= sock->next) { if(sock->link) { ns= ntree->stack + sock->link->fromsock->stack_index; @@ -2075,9 +2079,22 @@ void ntreeBeginExecTree(bNodeTree *ntree) } else sock->ns.sockettype= sock->type; + + if(sock->link) { + bNodeLink *link= sock->link; + /* this is the test for a cyclic case */ + if(link->fromnode && link->tonode) { + if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF); + else { + node->need_exec= 0; + } + } + } } + if(node->type==NODE_GROUP && node->id) group_tag_used_outputs(node, ntree->stack); + } if(ntree->type==NTREE_COMPOSIT) @@ -2160,13 +2177,15 @@ void ntreeExecTree(bNodeTree *ntree, void *callerdata, int thread) } for(node= ntree->nodes.first; node; node= node->next) { - if(node->typeinfo->execfunc) { - node_get_stack(node, stack, nsin, nsout); - node->typeinfo->execfunc(callerdata, node, nsin, nsout); - } - else if(node->type==NODE_GROUP && node->id) { - node_get_stack(node, stack, nsin, nsout); - node_group_execute(stack, callerdata, node, nsin, nsout); + if(node->need_exec) { + if(node->typeinfo->execfunc) { + node_get_stack(node, stack, nsin, nsout); + node->typeinfo->execfunc(callerdata, node, nsin, nsout); + } + else if(node->type==NODE_GROUP && node->id) { + node_get_stack(node, stack, nsin, nsout); + node_group_execute(stack, callerdata, node, nsin, nsout); + } } } diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c index 884d2cd0eb6..30492b84764 100644 --- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c +++ b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c @@ -47,7 +47,7 @@ static void colorfn(float *out, float *coord, bNode *node, bNodeStack **in, shor Tex *nodetex = (Tex *)node->id; - if(node->custom2) { + if(node->custom2 || node->need_exec==0) { /* this node refers to its own texture tree! */ QUATCOPY( out, diff --git a/source/blender/nodes/intern/TEX_util.c b/source/blender/nodes/intern/TEX_util.c index 562072328a8..1aabb7ae514 100644 --- a/source/blender/nodes/intern/TEX_util.c +++ b/source/blender/nodes/intern/TEX_util.c @@ -34,6 +34,12 @@ obtain a colour value from this, a node further up the chain reads the TexDelegate* from its input stack, and uses tex_call_delegate to retrieve the colour from the delegate. + + comments: (ton) + + This system needs recode, a node system should rely on the stack, and + callbacks for nodes only should evaluate own node, not recursively go + over other previous ones. */ #include @@ -43,7 +49,8 @@ void tex_call_delegate(TexDelegate *dg, float *out, float *coord, short thread) { - dg->fn(out, coord, dg->node, dg->in, thread); + if(dg->node->need_exec) + dg->fn(out, coord, dg->node, dg->in, thread); } void tex_input(float *out, int sz, bNodeStack *in, float *coord, short thread) From 90c6cf77f10961de756f6ff06329d3fa65ce3da4 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Fri, 17 Apr 2009 13:42:40 +0000 Subject: [PATCH 180/201] Fixing SND_Scene.h missing include problems with cmake + bullet --- source/gameengine/Physics/Bullet/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/gameengine/Physics/Bullet/CMakeLists.txt b/source/gameengine/Physics/Bullet/CMakeLists.txt index 2cb2a540d97..ec2cdede683 100644 --- a/source/gameengine/Physics/Bullet/CMakeLists.txt +++ b/source/gameengine/Physics/Bullet/CMakeLists.txt @@ -34,7 +34,7 @@ SET(INC ../../../../intern/moto/include ../../../kernel/gen_system ../../../../intern/string - ../../../intern/SoundSystem + ../../../../intern/SoundSystem ../../Rasterizer ../../Ketsji ../../Expressions From df8cf26404c7e922751643b1095e38f1ab430811 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 17 Apr 2009 20:06:06 +0000 Subject: [PATCH 181/201] Added m_zombie to the base python class (PyObjectPlus), when this is set all the subclasses will raise an error on access to their members. Other small changes... - KX_Camera and KX_Light didnt have get/setitem access in their PyType definition. - CList.from_id() error checking for a long was checking for -1 against an unsigned value (own fault) - CValue::SpecialRelease was incrementing an int for no reason. - renamed m_attrlist to m_attr_dict since its a PyDict type. - removed custom getattro/setattro functions for KX_Scene and KX_GameObject, use py_base_getattro, py_base_setattro for all subclasses of PyObjectPlus. - lowercase windows.h in VideoBase.cpp for cross compiling. --- source/gameengine/Expressions/ListValue.cpp | 2 +- .../gameengine/Expressions/PyObjectPlus.cpp | 20 +- source/gameengine/Expressions/PyObjectPlus.h | 58 +++++- source/gameengine/Expressions/Value.cpp | 7 + source/gameengine/Expressions/Value.h | 10 +- .../GameLogic/SCA_PropertyActuator.cpp | 2 +- source/gameengine/Ketsji/KX_Camera.cpp | 22 +-- source/gameengine/Ketsji/KX_GameObject.cpp | 179 +++++++----------- source/gameengine/Ketsji/KX_GameObject.h | 26 +-- source/gameengine/Ketsji/KX_Light.cpp | 15 +- source/gameengine/Ketsji/KX_Scene.cpp | 70 +++++-- source/gameengine/Ketsji/KX_Scene.h | 26 +-- source/gameengine/VideoTexture/VideoBase.cpp | 2 +- 13 files changed, 235 insertions(+), 204 deletions(-) diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 0f163ad07c1..37feba38f8b 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -513,7 +513,7 @@ PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) BGE_ID_TYPE id= PyLong_FromUnsignedLongLong(value); #endif - if (id==-1 && PyErr_Occurred()) + if (PyErr_Occurred()) return NULL; int numelem = GetCount(); diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 33335ebef3e..0db2e8991fc 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -88,6 +88,7 @@ PyObjectPlus::PyObjectPlus(PyTypeObject *T) // constructor MT_assert(T != NULL); this->ob_type = T; _Py_NewReference(this); + SetZombie(false); }; /*------------------------------ @@ -99,9 +100,15 @@ PyMethodDef PyObjectPlus::Methods[] = { }; PyAttributeDef PyObjectPlus::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("isValid", PyObjectPlus, pyattr_get_is_valid), {NULL} //Sentinel }; +PyObject* PyObjectPlus::pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + Py_RETURN_TRUE; +} + /*------------------------------ * PyObjectPlus Parents -- Every class, even the abstract one should have parents ------------------------------*/ @@ -117,10 +124,19 @@ PyObject *PyObjectPlus::py_getattro(PyObject* attr) if (strcmp(PyString_AsString(attr), "__dict__")==0) { return py_getattr_dict(NULL, Type.tp_dict); /* no Attributes yet */ } - PyErr_SetString(PyExc_AttributeError, "attribute not found"); + PyErr_Format(PyExc_AttributeError, "attribute \"%s\" not found", PyString_AsString(attr)); return NULL; } else { - return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + /* Copied from py_getattro_up */ + if (PyCObject_Check(descr)) { + return py_get_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr)); + } else if (descr->ob_type->tp_descr_get) { + return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); + } else { + fprintf(stderr, "Unknown attribute type (PyObjectPlus::py_getattro)"); + return descr; + } + /* end py_getattro_up copy */ } //if (streq(attr, "type")) // return Py_BuildValue("s", (*(GetParents()))->tp_name); diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index ea26ea1d201..58a74e4ca74 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -400,10 +400,11 @@ class PyObjectPlus : public PyObject public: PyObjectPlus(PyTypeObject *T); + bool m_zombie; virtual ~PyObjectPlus(); // destructor static void PyDestructor(PyObject *P) // python wrapper - { + { delete ((PyObjectPlus *) P); }; @@ -417,6 +418,14 @@ public: virtual PyObject *py_getattro(PyObject *attr); // py_getattro method static PyObject *py_base_getattro(PyObject * self, PyObject *attr) // This should be the entry in Type. { + if (((PyObjectPlus*)self)->IsZombie()) { + if (!strcmp(PyString_AsString(attr), "isValid")) { + Py_RETURN_FALSE; + } + ((PyObjectPlus*)self)->IsZombiePyErr(); /* raise an error */ + return NULL; + } + return ((PyObjectPlus*) self)->py_getattro(attr); } @@ -432,10 +441,16 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method static int py_base_setattro(PyObject *self, PyObject *attr, PyObject *value) // the PyType should reference this { - if (value==NULL) - return ((PyObjectPlus*) self)->py_delattro(attr); + if (((PyObjectPlus*)self)->IsZombie()) { + /* you cant set isValid anyway */ + ((PyObjectPlus*)self)->IsZombiePyErr(); + return -1; + } - return ((PyObjectPlus*) self)->py_setattro(attr, value); + if (value==NULL) + return ((PyObjectPlus*)self)->py_delattro(attr); + + return ((PyObjectPlus*)self)->py_setattro(attr, value); } virtual PyObject *py_repr(void); // py_repr method @@ -452,6 +467,41 @@ public: { return ((PyObjectPlus*)self)->Py_isA(value); } + + /* Kindof dumb, always returns True, the false case is checked for, before this function gets accessed */ + static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); + + bool IsZombie() + { + return m_zombie; + } + + bool IsZombiePyErr() + { + if(m_zombie) { + /* + PyObject *this_pystr = PyObject_Repr(this); + + PyErr_Format( + PyExc_RuntimeError, + "\"%s\" of type \"%s\" has been freed by the blender game engine, " + "scripts cannot access this anymore, check for this case with the \"isValid\" attribute", + PyString_AsString(this_pystr), ob_type->tp_name ); + + Py_DECREF(this_pystr); + */ + + PyErr_SetString(PyExc_RuntimeError, "This value has been freed by the blender game engine but python is still holding a reference, this value cant be used."); + } + + return m_zombie; + } + + void SetZombie(bool is_zombie) + { + m_zombie= is_zombie; + } + }; PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict); diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index b8b7a05aa64..e969f0c33aa 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -602,6 +602,12 @@ int CValue::Release() // Decrease local reference count, if it reaches 0 the object should be freed if (--m_refcount > 0) { + // Benoit suggest this as a way to automatically set the zombie flag, but I couldnt get it working - Campbell + /* + if (m_refcount == 1 && ob_refcnt > 1) + SetZombie(true); // the remaining refcount is held by Python!! + */ + // Reference count normal, return new reference count return m_refcount; } @@ -609,6 +615,7 @@ int CValue::Release() { // Reference count reached 0, delete ourselves and return 0 // MT_assert(m_refcount==0, "Reference count reached sub-zero, object released too much"); + delete this; return 0; } diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index 4cdc80dc9bd..bcee355cda2 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -219,7 +219,7 @@ public: //static PyObject* PyMake(PyObject*,PyObject*); virtual PyObject *py_repr(void) { - return Py_BuildValue("s",(const char*)GetText()); + return PyString_FromString((const char*)GetText()); } @@ -228,14 +228,10 @@ public: void SpecialRelease() { - int i=0; - if (ob_refcnt == 0) + if (ob_refcnt == 0) /* make sure python always holds a reference */ { _Py_NewReference(this); - } else - { - i++; } Release(); } @@ -280,6 +276,7 @@ public: int GetRefCount() { return m_refcount; } virtual CValue* AddRef(); // Add a reference to this value virtual int Release(); // Release a reference to this value (when reference count reaches 0, the value is removed from the heap) + /// Property Management virtual void SetProperty(const STR_String& name,CValue* ioProperty); // Set property , overwrites and releases a previous property with the same name if needed @@ -355,6 +352,7 @@ private: std::map* m_pNamedPropertyArray; // Properties for user/game etc ValueFlags m_ValFlags; // Frequently used flags in a bitfield (low memoryusage) int m_refcount; // Reference Counter + bool m_zombie; // Object is invalid put its still being referenced (by python) static double m_sZeroVec[3]; static bool m_ignore_deprecation_warnings; diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 359ab8adac6..9dbdc0e89d1 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -95,7 +95,7 @@ bool SCA_PropertyActuator::Update() } newval->Release(); } - else if (userexpr = parser.ProcessText(m_exprtxt)) { + else if ((userexpr = parser.ProcessText(m_exprtxt))) { switch (m_type) { diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index befc8462aa3..daa37056d68 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -517,13 +517,20 @@ PyTypeObject KX_Camera::Type = { 0, 0, py_base_repr, - 0,0,0,0,0,0, + 0,0, + &KX_GameObject::Mapping, + 0,0,0, py_base_getattro, py_base_setattro, 0,0,0,0,0,0,0,0,0, Methods }; + + + + + PyParentObject KX_Camera::Parents[] = { &KX_Camera::Type, &KX_GameObject::Type, @@ -534,22 +541,11 @@ PyParentObject KX_Camera::Parents[] = { PyObject* KX_Camera::py_getattro(PyObject *attr) { - if (ValidPythonToGameObject(this)==false) { - if (!strcmp(PyString_AsString(attr), "isValid")) { - PyErr_Clear(); - Py_RETURN_FALSE; - } - return NULL; /* ValidPythonToGameObject sets the error */ - } - py_getattro_up(KX_GameObject); } int KX_Camera::py_setattro(PyObject *attr, PyObject *value) -{ - if (ValidPythonToGameObject(this)==false) - return -1; - +{ py_setattro_up(KX_GameObject); } diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 283b78c2947..3e7c99dc472 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -103,7 +103,7 @@ KX_GameObject::KX_GameObject( m_xray(false), m_pHitObject(NULL), m_isDeformable(false), - m_attrlist(NULL) + m_attr_dict(NULL) { m_ignore_activity_culling = false; m_pClient_info = new KX_ClientObjectInfo(this, KX_ClientObjectInfo::ACTOR); @@ -146,9 +146,9 @@ KX_GameObject::~KX_GameObject() delete m_pGraphicController; } - if (m_attrlist) { - PyDict_Clear(m_attrlist); /* incase of circular refs or other weired cases */ - Py_DECREF(m_attrlist); + if (m_attr_dict) { + PyDict_Clear(m_attr_dict); /* incase of circular refs or other weired cases */ + Py_DECREF(m_attr_dict); } } @@ -339,8 +339,8 @@ void KX_GameObject::ProcessReplica(KX_GameObject* replica) replica->m_pClient_info = new KX_ClientObjectInfo(*m_pClient_info); replica->m_pClient_info->m_gameobject = replica; replica->m_state = 0; - if(m_attrlist) - replica->m_attrlist= PyDict_Copy(m_attrlist); + if(m_attr_dict) + replica->m_attr_dict= PyDict_Copy(m_attr_dict); } @@ -1123,9 +1123,6 @@ PyAttributeDef KX_GameObject::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("sensors", KX_GameObject, pyattr_get_sensors), KX_PYATTRIBUTE_RO_FUNCTION("controllers", KX_GameObject, pyattr_get_controllers), KX_PYATTRIBUTE_RO_FUNCTION("actuators", KX_GameObject, pyattr_get_actuators), - - KX_PYATTRIBUTE_RO_FUNCTION("isValid", KX_GameObject, pyattr_get_is_valid), - {NULL} //Sentinel }; @@ -1190,14 +1187,15 @@ Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) { KX_GameObject* self= static_cast(self_v); - if (ValidPythonToGameObject(self)==false) { + if (self->IsZombie()) /* not sure what to do here */ + { PyErr_Clear(); return 0; } Py_ssize_t len= self->GetPropertyCount(); - if(self->m_attrlist) - len += PyDict_Size(self->m_attrlist); + if(self->m_attr_dict) + len += PyDict_Size(self->m_attr_dict); return len; } @@ -1209,7 +1207,7 @@ PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) CValue* resultattr; PyObject* pyconvert; - if (ValidPythonToGameObject(self)==false) + if (self->IsZombiePyErr()) return NULL; /* first see if the attributes a string and try get the cvalue attribute */ @@ -1217,8 +1215,8 @@ PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) pyconvert = resultattr->ConvertValueToPython(); return pyconvert ? pyconvert:resultattr; } - /* no CValue attribute, try get the python only m_attrlist attribute */ - else if (self->m_attrlist && (pyconvert=PyDict_GetItem(self->m_attrlist, item))) { + /* no CValue attribute, try get the python only m_attr_dict attribute */ + else if (self->m_attr_dict && (pyconvert=PyDict_GetItem(self->m_attr_dict, item))) { if (attr_str) PyErr_Clear(); @@ -1241,7 +1239,7 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) if(attr_str==NULL) PyErr_Clear(); - if (ValidPythonToGameObject(self)==false) + if (self->IsZombiePyErr()) return -1; if (val==NULL) { /* del ob["key"] */ @@ -1251,15 +1249,15 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) if(attr_str) del |= (self->RemoveProperty(attr_str)==true) ? 1:0; - if(self->m_attrlist) - del |= (PyDict_DelItem(self->m_attrlist, key)==0) ? 1:0; + if(self->m_attr_dict) + del |= (PyDict_DelItem(self->m_attr_dict, key)==0) ? 1:0; if (del==0) { if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not found", attr_str); else PyErr_SetString(PyExc_KeyError, "KX_GameObject key not found"); return -1; } - else if (self->m_attrlist) { + else if (self->m_attr_dict) { PyErr_Clear(); /* PyDict_DelItem sets an error when it fails */ } } @@ -1284,8 +1282,8 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) set= 1; /* try remove dict value to avoid double ups */ - if (self->m_attrlist){ - if (PyDict_DelItem(self->m_attrlist, key) != 0) + if (self->m_attr_dict){ + if (PyDict_DelItem(self->m_attr_dict, key) != 0) PyErr_Clear(); } } @@ -1296,11 +1294,11 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) if(set==0) { - if (self->m_attrlist==NULL) /* lazy init */ - self->m_attrlist= PyDict_New(); + if (self->m_attr_dict==NULL) /* lazy init */ + self->m_attr_dict= PyDict_New(); - if(PyDict_SetItem(self->m_attrlist, key, val)==0) + if(PyDict_SetItem(self->m_attr_dict, key, val)==0) { if(attr_str) self->RemoveProperty(attr_str); /* overwrite the CValue if it exists */ @@ -1343,8 +1341,8 @@ PyTypeObject KX_GameObject::Type = { 0,0, &Mapping, 0,0,0, - py_base_getattro_gameobject, - py_base_setattro_gameobject, + py_base_getattro, + py_base_setattro, 0,0,0,0,0,0,0,0,0, Methods }; @@ -1675,11 +1673,6 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE return meshes; } -PyObject* KX_GameObject::pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) -{ - Py_RETURN_TRUE; -} - /* experemental! */ PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { @@ -1741,47 +1734,36 @@ PyObject* KX_GameObject::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_ Py_DECREF(list); - /* Add m_attrlist if we have it */ - if(self->m_attrlist) - PyDict_Update(dict, self->m_attrlist); + /* Add m_attr_dict if we have it */ + if(self->m_attr_dict) + PyDict_Update(dict, self->m_attr_dict); return dict; } -PyObject* KX_GameObject::py_getattro(PyObject *attr) +/* We need these because the macros have a return in them */ +PyObject* KX_GameObject::py_getattro__internal(PyObject *attr) { py_getattro_up(SCA_IObject); } -int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro method +int KX_GameObject::py_setattro__internal(PyObject *attr, PyObject *value) // py_setattro method { py_setattro_up(SCA_IObject); } -/* we need our own getattr and setattr types */ -/* See m_attrlist definition for rules on how this works */ -PyObject *KX_GameObject::py_base_getattro_gameobject(PyObject * self, PyObject *attr) +PyObject* KX_GameObject::py_getattro(PyObject *attr) { - if(((KX_GameObject *) self)->GetSGNode()==NULL) { - if (!strcmp(PyString_AsString(attr), "isValid")) { - PyErr_Clear(); - Py_INCREF(Py_False); - return Py_False; - } - - ValidPythonToGameObject(((KX_GameObject *) self)); // we know its invalid, just get the error - return NULL; - } + PyObject *object= py_getattro__internal(attr); - PyObject *object= ((KX_GameObject *) self)->py_getattro(attr); - - if (object==NULL && ((KX_GameObject *) self)->m_attrlist) { + if (object==NULL && m_attr_dict) + { /* backup the exception incase the attr doesnt exist in the dict either */ PyObject *err_type, *err_value, *err_tb; PyErr_Fetch(&err_type, &err_value, &err_tb); - object= PyDict_GetItem(((KX_GameObject *) self)->m_attrlist, attr); + object= PyDict_GetItem(m_attr_dict, attr); if (object) { Py_INCREF(object); @@ -1797,62 +1779,33 @@ PyObject *KX_GameObject::py_base_getattro_gameobject(PyObject * self, PyObject * return object; } -int KX_GameObject::py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value) +int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro method { int ret; - /* Delete the item */ - if (value==NULL) - { - ret= ((PyObjectPlus*) self)->py_delattro(attr); - - if (ret != 0) /* CValue attribute failed, try KX_GameObject m_attrlist dict */ - { - if (((KX_GameObject *) self)->m_attrlist) - { - /* backup the exception incase the attr doesnt exist in the dict either */ - PyObject *err_type, *err_value, *err_tb; - PyErr_Fetch(&err_type, &err_value, &err_tb); - - if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) == 0) - { - ret= 0; - PyErr_Clear(); - Py_XDECREF( err_type ); - Py_XDECREF( err_value ); - Py_XDECREF( err_tb ); - } - else { - PyErr_Restore(err_type, err_value, err_tb); /* use the error from the parent function */ - } - } - } - return ret; - } - - - ret= ((PyObjectPlus*) self)->py_setattro(attr, value); + ret= py_setattro__internal(attr, value); if (ret==PY_SET_ATTR_SUCCESS) { /* remove attribute in our own dict to avoid double ups */ - if (((KX_GameObject *) self)->m_attrlist) { - if (PyDict_DelItem(((KX_GameObject *) self)->m_attrlist, attr) != 0) + /* NOTE: Annoying that we also do this for setting builtin attributes like mass and visibility :/ */ + if (m_attr_dict) { + if (PyDict_DelItem(m_attr_dict, attr) != 0) PyErr_Clear(); } } if (ret==PY_SET_ATTR_COERCE_FAIL) { - /* CValue attribute exists, remove and add dict value */ - ((KX_GameObject *) self)->RemoveProperty(STR_String(PyString_AsString(attr))); + /* CValue attribute exists, remove CValue and add PyDict value */ + RemoveProperty(STR_String(PyString_AsString(attr))); ret= PY_SET_ATTR_MISSING; } if (ret==PY_SET_ATTR_MISSING) { /* Lazy initialization */ - if (((KX_GameObject *) self)->m_attrlist==NULL) - ((KX_GameObject *) self)->m_attrlist = PyDict_New(); + if (m_attr_dict==NULL) + m_attr_dict = PyDict_New(); - if (PyDict_SetItem(((KX_GameObject *) self)->m_attrlist, attr, value)==0) { + if (PyDict_SetItem(m_attr_dict, attr, value)==0) { PyErr_Clear(); ret= PY_SET_ATTR_SUCCESS; } @@ -1862,9 +1815,25 @@ int KX_GameObject::py_base_setattro_gameobject(PyObject * self, PyObject *attr, } } - return ret; + return ret; } + +int KX_GameObject::py_delattro(PyObject *attr) +{ + char *attr_str= PyString_AsString(attr); + + if (RemoveProperty(STR_String(attr_str))) // XXX - should call CValues instead but its only 2 lines here + return 0; + + if (m_attr_dict && (PyDict_DelItem(m_attr_dict, attr) == 0)) + return 0; + + PyErr_Format(PyExc_AttributeError, "attribute \"%s\" dosnt exist", attr_str); + return 1; +} + + PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) { int local = 0; @@ -2374,11 +2343,11 @@ PyObject* KX_GameObject::PyGetPropertyNames(PyObject* self) { PyObject *list= ConvertKeysToPython(); - if(m_attrlist) { + if(m_attr_dict) { PyObject *key, *value; Py_ssize_t pos = 0; - while (PyDict_Next(m_attrlist, &pos, &key, &value)) { + while (PyDict_Next(m_attr_dict, &pos, &key, &value)) { PyList_Append(list, key); } } @@ -2685,8 +2654,8 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage, "to = Name of object to send the message to") { char* subject; - char* body = ""; - char* to = ""; + char* body = (char *)""; + char* to = (char *)""; const STR_String& from = GetName(); if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to)) @@ -2753,7 +2722,7 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py *object = static_cast(value); /* sets the error */ - if (ValidPythonToGameObject(*object)==false) + if ((*object)->IsZombiePyErr()) return false; return true; @@ -2769,17 +2738,3 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py return false; } - -bool ValidPythonToGameObject(KX_GameObject *object) -{ - if (object->GetSGNode()==NULL) { - PyErr_Format( - PyExc_RuntimeError, - "KX_GameObject \"%s\" is not longer in a scene, " - "check for this case with the \"isValid\" attribute", - object->GetName().ReadPtr() ); - return false; - } - - return true; -} \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index cf0c0e6b0f5..dd85c2f2faa 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -62,7 +62,6 @@ struct Object; /* utility conversion function */ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok); -bool ValidPythonToGameObject(KX_GameObject *object); /** * KX_GameObject is the main class for dynamic objects. @@ -119,15 +118,15 @@ public: // these can be used with property actuators // // For the python API, For types that cannot be converted into CValues (lists, dicts, GameObjects) - // these will be put into "m_attrlist", logic bricks cannot access them. + // these will be put into "m_attr_dict", logic bricks cannot access them. // // rules for setting attributes. // - // * there should NEVER be a CValue and a m_attrlist attribute with matching names. get/sets make sure of this. - // * if CValue conversion fails, use a PyObject in "m_attrlist" - // * when assigning a value, first see if it can be a CValue, if it can remove the "m_attrlist" and set the CValue + // * there should NEVER be a CValue and a m_attr_dict attribute with matching names. get/sets make sure of this. + // * if CValue conversion fails, use a PyObject in "m_attr_dict" + // * when assigning a value, first see if it can be a CValue, if it can remove the "m_attr_dict" and set the CValue // - PyObject* m_attrlist; + PyObject* m_attr_dict; virtual void /* This function should be virtual - derived classed override it */ Relink( @@ -814,16 +813,21 @@ public: virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method + virtual int py_delattro(PyObject *attr); virtual PyObject* py_repr(void) { - if (ValidPythonToGameObject(this)==false) + if (IsZombiePyErr()) return NULL; return PyString_FromString(GetName().ReadPtr()); } - static PyObject *py_base_getattro_gameobject(PyObject * self, PyObject *attr); - static int py_base_setattro_gameobject(PyObject * self, PyObject *attr, PyObject *value); + /* quite annoying that we need these but the bloody + * py_getattro_up and py_setattro_up macro's have a returns in them! */ + PyObject* py_getattro__internal(PyObject *attr); + int py_setattro__internal(PyObject *attr, PyObject *value); // py_setattro method + + KX_PYMETHOD_NOARGS(KX_GameObject,GetPosition); KX_PYMETHOD_O(KX_GameObject,SetPosition); KX_PYMETHOD_O(KX_GameObject,SetWorldPosition); @@ -897,7 +901,6 @@ public: static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); static PyObject* pyattr_get_meshes(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); @@ -913,7 +916,6 @@ public: static PyObject* Map_GetItem(PyObject *self_v, PyObject *item); static int Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val); - private : /** @@ -931,5 +933,7 @@ private : }; + + #endif //__KX_GAMEOBJECT diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 0fcd2c39078..29033c2d802 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -177,14 +177,6 @@ PyObject* KX_LightObject::py_getattro(PyObject *attr) { char *attr_str= PyString_AsString(attr); - if (ValidPythonToGameObject(this)==false) { - if (!strcmp(attr_str, "isValid")) { - PyErr_Clear(); - Py_RETURN_FALSE; - } - return NULL; - } - if (!strcmp(attr_str, "layer")) return PyInt_FromLong(m_lightobj.m_layer); @@ -229,9 +221,6 @@ int KX_LightObject::py_setattro(PyObject *attr, PyObject *pyvalue) { char *attr_str= PyString_AsString(attr); - if (ValidPythonToGameObject(this)==false) - return -1; - if (PyInt_Check(pyvalue)) { int value = PyInt_AsLong(pyvalue); @@ -347,7 +336,9 @@ PyTypeObject KX_LightObject::Type = { 0, 0, py_base_repr, - 0,0,0,0,0,0, + 0,0, + &KX_GameObject::Mapping, + 0,0,0, py_base_getattro, py_base_setattro, 0,0,0,0,0,0,0,0,0, diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index c63167e2d56..c99fa363ffe 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -196,7 +196,7 @@ KX_Scene::KX_Scene(class SCA_IInputDevice* keyboarddevice, m_canvasDesignWidth = 0; m_canvasDesignHeight = 0; - m_attrlist = PyDict_New(); /* new ref */ + m_attr_dict = PyDict_New(); /* new ref */ } @@ -250,8 +250,8 @@ KX_Scene::~KX_Scene() { delete m_bucketmanager; } - PyDict_Clear(m_attrlist); - Py_DECREF(m_attrlist); + PyDict_Clear(m_attr_dict); + Py_DECREF(m_attr_dict); } void KX_Scene::SetProjectionMatrix(MT_CmMatrix4x4& pmat) @@ -924,6 +924,8 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj) { int ret; KX_GameObject* newobj = (KX_GameObject*) gameobj; + + gameobj->SetZombie(true); /* disallow future python access */ // keep the blender->game object association up to date // note that all the replicas of an object will have the same @@ -998,6 +1000,7 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj) if (m_sceneConverter) m_sceneConverter->UnregisterGameObject(newobj); // return value will be 0 if the object is actually deleted (all reference gone) + return ret; } @@ -1591,7 +1594,7 @@ PyTypeObject KX_Scene::Type = { py_base_repr, 0,0,0,0,0,0, py_base_getattro, - py_base_setattro_scene, /* unlike almost all other types we need out own because user attributes are supported */ + py_base_setattro, 0,0,0,0,0,0,0,0,0, Methods }; @@ -1633,12 +1636,12 @@ PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_ PyObject* KX_Scene::pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_Scene* self= static_cast(self_v); - /* Useually done by py_getattro_up but in this case we want to include m_attrlist dict */ + /* Useually done by py_getattro_up but in this case we want to include m_attr_dict dict */ PyObject *dict_str= PyString_FromString("__dict__"); PyObject *dict= py_getattr_dict(self->PyObjectPlus::py_getattro(dict_str), Type.tp_dict); Py_DECREF(dict_str); - PyDict_Update(dict, self->m_attrlist); + PyDict_Update(dict, self->m_attr_dict); return dict; } @@ -1654,30 +1657,61 @@ PyAttributeDef KX_Scene::Attributes[] = { { NULL } //Sentinel }; + +PyObject* KX_Scene::py_getattro__internal(PyObject *attr) +{ + py_getattro_up(PyObjectPlus); +} + +int KX_Scene::py_setattro__internal(PyObject *attr, PyObject *pyvalue) +{ + return PyObjectPlus::py_setattro(attr, pyvalue); +} + PyObject* KX_Scene::py_getattro(PyObject *attr) { - PyObject *object = PyDict_GetItem(m_attrlist, attr); - if (object) + PyObject *object = py_getattro__internal(attr); + + if (object==NULL) { - Py_INCREF(object); - return object; + PyErr_Clear(); + object = PyDict_GetItem(m_attr_dict, attr); + if(object) { + Py_INCREF(object); + } + else { + PyErr_Format(PyExc_AttributeError, "KX_Scene attribute \"%s\" not found", PyString_AsString(attr)); + } } - py_getattro_up(PyObjectPlus); + return object; +} + + +int KX_Scene::py_setattro(PyObject *attr, PyObject *value) +{ + int ret= py_setattro__internal(attr, value); + + if (ret==PY_SET_ATTR_MISSING) { + if (PyDict_SetItem(m_attr_dict, attr, value)==0) { + PyErr_Clear(); + ret= PY_SET_ATTR_SUCCESS; + } + else { + PyErr_SetString(PyExc_AttributeError, "failed assigning value to KX_Scenes internal dictionary"); + ret= PY_SET_ATTR_FAIL; + } + } + + return ret; } int KX_Scene::py_delattro(PyObject *attr) { - PyDict_DelItem(m_attrlist, attr); + PyDict_DelItem(m_attr_dict, attr); return 0; } -/* py_base_setattro_scene deals with setting the dict, it will run if this returns an error */ -int KX_Scene::py_setattro(PyObject *attr, PyObject *pyvalue) -{ - return PyObjectPlus::py_setattro(attr, pyvalue); -} - KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getLightList, "getLightList() -> list [KX_Light]\n" "Returns a list of all lights in the scene.\n" diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index e1e89e253ed..a06c66ec5dd 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -295,7 +295,7 @@ protected: /** * This stores anything from python */ - PyObject* m_attrlist; + PyObject* m_attr_dict; struct Scene* m_blenderScene; @@ -597,34 +597,14 @@ public: /* for dir(), python3 uses __dir__() */ static PyObject* pyattr_get_dir_dict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static int py_base_setattro_scene(PyObject * self, PyObject *attr, PyObject *value) - { - if (value==NULL) - return ((PyObjectPlus*) self)->py_delattro(attr); - - int ret= ((PyObjectPlus*) self)->py_setattro(attr, value); - - if (ret==PY_SET_ATTR_MISSING) { - if (PyDict_SetItem(((KX_Scene *) self)->m_attrlist, attr, value)==0) { - PyErr_Clear(); - ret= PY_SET_ATTR_SUCCESS; - } - else { - PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_Scenes internal dictionary"); - ret= PY_SET_ATTR_FAIL; - } - } - - return ret; - } - - virtual PyObject* py_getattro(PyObject *attr); /* name, active_camera, gravity, suspended, viewport, framing, activity_culling, activity_culling_radius */ virtual int py_setattro(PyObject *attr, PyObject *pyvalue); virtual int py_delattro(PyObject *attr); virtual PyObject* py_repr(void) { return PyString_FromString(GetName().ReadPtr()); } + PyObject* py_getattro__internal(PyObject *attr); + int py_setattro__internal(PyObject *attr, PyObject *pyvalue); /** * Sets the time the scene was suspended diff --git a/source/gameengine/VideoTexture/VideoBase.cpp b/source/gameengine/VideoTexture/VideoBase.cpp index 10117c3af9e..3c703d75cda 100644 --- a/source/gameengine/VideoTexture/VideoBase.cpp +++ b/source/gameengine/VideoTexture/VideoBase.cpp @@ -22,7 +22,7 @@ http://www.gnu.org/copyleft/lesser.txt. #if defined WIN32 #define WINDOWS_LEAN_AND_MEAN -#include +#include #endif #include "VideoBase.h" From 53fd3847bcb577d580a16217a27b67fd3f679969 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sat, 18 Apr 2009 09:14:51 +0000 Subject: [PATCH 182/201] BGE: restore a feature that was lost in 2.48: sharing of display lists between duplicated objects. --- source/gameengine/Rasterizer/RAS_MaterialBucket.cpp | 10 +++++----- source/gameengine/Rasterizer/RAS_MaterialBucket.h | 4 +++- .../RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp | 4 ++-- .../RAS_OpenGLRasterizer/RAS_ListRasterizer.h | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp index 5ddcdd310b0..6beab28d61f 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp @@ -60,7 +60,7 @@ RAS_MeshSlot::RAS_MeshSlot() RAS_MeshSlot::~RAS_MeshSlot() { - vector::iterator it; + RAS_DisplayArrayList::iterator it; #ifdef USE_SPLIT Split(true); @@ -83,7 +83,7 @@ RAS_MeshSlot::~RAS_MeshSlot() RAS_MeshSlot::RAS_MeshSlot(const RAS_MeshSlot& slot) { - vector::iterator it; + RAS_DisplayArrayList::iterator it; m_clientObj = NULL; m_pDeformer = NULL; @@ -205,7 +205,7 @@ RAS_DisplayArray *RAS_MeshSlot::CurrentDisplayArray() void RAS_MeshSlot::SetDisplayArray(int numverts) { - vector::iterator it; + RAS_DisplayArrayList::iterator it; RAS_DisplayArray *darray = NULL; for(it=m_displayArrays.begin(); it!=m_displayArrays.end(); it++) { @@ -297,7 +297,7 @@ bool RAS_MeshSlot::Equals(RAS_MeshSlot *target) bool RAS_MeshSlot::Join(RAS_MeshSlot *target, MT_Scalar distance) { - vector::iterator it; + RAS_DisplayArrayList::iterator it; iterator mit; size_t i; @@ -362,7 +362,7 @@ bool RAS_MeshSlot::Split(bool force) { list::iterator jit; RAS_MeshSlot *target = m_joinSlot; - vector::iterator it, jt; + RAS_DisplayArrayList::iterator it, jt; iterator mit; size_t i, found0 = 0, found1 = 0; diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h index 211770318ae..f5c8cd3e107 100644 --- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h +++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h @@ -86,9 +86,11 @@ public: }; /* Entry of a RAS_MeshObject into RAS_MaterialBucket */ +typedef std::vector RAS_DisplayArrayList; class RAS_MeshSlot { + friend class RAS_ListRasterizer; private: // indices into display arrays int m_startarray; @@ -97,7 +99,7 @@ private: int m_endindex; int m_startvertex; int m_endvertex; - vector m_displayArrays; + RAS_DisplayArrayList m_displayArrays; // for construction only RAS_DisplayArray* m_currentArray; diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp index 2c4b55ff964..65aadd63a40 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp @@ -136,10 +136,10 @@ RAS_ListSlot* RAS_ListRasterizer::FindOrAdd(RAS_MeshSlot& ms) */ RAS_ListSlot* localSlot = (RAS_ListSlot*)ms.m_DisplayList; if(!localSlot) { - RAS_Lists::iterator it = mLists.find(&ms); + RAS_Lists::iterator it = mLists.find(ms.m_displayArrays); if(it == mLists.end()) { localSlot = new RAS_ListSlot(this); - mLists.insert(std::pair(&ms, localSlot)); + mLists.insert(std::pair(ms.m_displayArrays, localSlot)); } else { localSlot = static_cast(it->second->AddRef()); } diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h index 96d6d2a995d..653bb43e534 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h @@ -35,7 +35,7 @@ enum RAS_ListSlotFlags { LIST_REGEN =64 }; -typedef std::map RAS_Lists; +typedef std::map RAS_Lists; class RAS_ListRasterizer : public RAS_VAOpenGLRasterizer { From faef9f0ac77837fc0ff1ab305d68c102c4419ec9 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sat, 18 Apr 2009 17:16:08 +0000 Subject: [PATCH 183/201] SCons * some misc changes, mainly cleaning and style unification that were lying around --- source/blender/blenkernel/SConscript | 38 ++++++++++---------- source/blender/nodes/SConscript | 30 ++++++++-------- source/blender/python/SConscript | 9 +++-- source/blender/src/SConscript | 54 ++++++++++++++-------------- source/creator/SConscript | 16 +++++---- 5 files changed, 79 insertions(+), 68 deletions(-) diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index a7e4d8807b2..f68e2b70c86 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -15,56 +15,58 @@ incs += ' ../gpu #/extern/glew/include' incs += ' ' + env['BF_OPENGL_INC'] incs += ' ' + env['BF_ZLIB_INC'] -defs = '' +defs = [] if not env['WITH_BF_PYTHON']: - defs += 'DISABLE_PYTHON' + defs.append('DISABLE_PYTHON') else: incs += ' ../python' incs += ' ' + env['BF_PYTHON_INC'] + if env['BF_DEBUG']: + defs.append('_DEBUG') if env['WITH_BF_QUICKTIME']: - incs += ' ../quicktime' + incs += ' ../quicktime' if env['WITH_BF_SDL']: incs += ' ' + env['BF_SDL_INC'] else: - defs += ' DISABLE_SDL' + defs.append('DISABLE_SDL') if env['WITH_BF_INTERNATIONAL']: - defs += ' WITH_FREETYPE2' + defs.append('WITH_FREETYPE2') if env['WITH_BF_VERSE']: - defs += ' WITH_VERSE' + defs.append('WITH_VERSE') incs += ' ' + env['BF_VERSE_INCLUDE'] if env['WITH_BF_VERSE']: - defs += ' WITH_VERSE' + defs.append('WITH_VERSE') if env['WITH_BF_OPENEXR']: - defs += ' WITH_OPENEXR' + defs.append('WITH_OPENEXR') if env['WITH_BF_OPENJPEG']: - defs += ' WITH_OPENJPEG' + defs.append('WITH_OPENJPEG') if env['WITH_BF_DDS']: - defs += ' WITH_DDS' + defs.append('WITH_DDS') if env['WITH_BF_FFMPEG']: - defs += ' WITH_FFMPEG' - incs += ' ' + env['BF_FFMPEG_INC'] + defs.append('WITH_FFMPEG') + incs += ' ' + env['BF_FFMPEG_INC'] if env['WITH_BF_QUICKTIME']: - defs += ' WITH_QUICKTIME' - incs += ' ' + env['BF_QUICKTIME_INC'] + defs.append('WITH_QUICKTIME') + incs += ' ' + env['BF_QUICKTIME_INC'] if env['WITH_BF_BULLET']: - defs += ' WITH_BULLET' + defs.append('WITH_BULLET') if env['BF_NO_ELBEEM']: - defs += ' DISABLE_ELBEEM' + defs.append('DISABLE_ELBEEM') if env['WITH_BF_PLAYER']: - SConscript(['bad_level_call_stubs/SConscript']) + SConscript(['bad_level_call_stubs/SConscript']) -env.BlenderLib ( libname = 'bf_blenkernel', sources = sources, includes = Split(incs), defines = Split(defs), libtype=['core','player'], priority = [65, 20] ) +env.BlenderLib ( libname = 'bf_blenkernel', sources = sources, includes = Split(incs), defines = defs, libtype=['core','player'], priority = [65, 20] ) diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript index d38303d7d20..bf8df8a9156 100644 --- a/source/blender/nodes/SConscript +++ b/source/blender/nodes/SConscript @@ -17,29 +17,31 @@ incs += ' ../gpu #/extern/glew/include ' incs += ' ' + env['BF_OPENGL_INC'] incs += ' ' + env['BF_ZLIB_INC'] -defs = '' +defs = [] if env['WITH_BF_PYTHON']: - incs += ' ' + env['BF_PYTHON_INC'] - incs += ' ../python' + incs += ' ' + env['BF_PYTHON_INC'] + incs += ' ../python' + if env['BF_DEBUG']: + defs.append('_DEBUG') else: - defs += 'DISABLE_PYTHON' + defs.append('DISABLE_PYTHON') if env['WITH_BF_INTERNATIONAL']: - defs += ' WITH_FREETYPE2' + defs.append('WITH_FREETYPE2') if env['WITH_BF_OPENEXR']: - defs += ' WITH_OPENEXR' + defs.append('WITH_OPENEXR') if env['WITH_BF_FFMPEG']: - defs += ' WITH_FFMPEG' - incs += ' ' + env['BF_FFMPEG_INC'] + defs.append('WITH_FFMPEG') + incs += ' ' + env['BF_FFMPEG_INC'] if env['WITH_BF_QUICKTIME']: - defs += ' WITH_QUICKTIME' - incs += ' ' + env['BF_QUICKTIME_INC'] + defs.append('WITH_QUICKTIME') + incs += ' ' + env['BF_QUICKTIME_INC'] -env.BlenderLib ( libname = 'bf_nodes', sources = sources, includes = Split(incs), defines = Split(defs), libtype=['intern', 'core', 'player'], priority = [200, 200, 400] ) -env.BlenderLib ( libname = 'bf_cmpnodes', sources = cmpsources, includes = Split(incs), defines = Split(defs), libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) -env.BlenderLib ( libname = 'bf_shdnodes', sources = shdsources, includes = Split(incs), defines = Split(defs), libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) -env.BlenderLib ( libname = 'bf_texnodes', sources = texsources, includes = Split(incs), defines = Split(defs), libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) +env.BlenderLib ( libname = 'bf_nodes', sources = sources, includes = Split(incs), defines = defs, libtype=['intern', 'core', 'player'], priority = [200, 200, 400] ) +env.BlenderLib ( libname = 'bf_cmpnodes', sources = cmpsources, includes = Split(incs), defines = defs, libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) +env.BlenderLib ( libname = 'bf_shdnodes', sources = shdsources, includes = Split(incs), defines = defs, libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) +env.BlenderLib ( libname = 'bf_texnodes', sources = texsources, includes = Split(incs), defines = defs, libtype=['intern', 'core', 'player'], priority = [200, 175, 300] ) diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript index 670041a6504..e869cfba556 100644 --- a/source/blender/python/SConscript +++ b/source/blender/python/SConscript @@ -14,17 +14,20 @@ defs = [] if env['OURPLATFORM'] in ('win32-mingw') and env['BF_DEBUG']: defs.append('Py_TRACE_REFS') +if env['BF_DEBUG']: + defs.append('_DEBUG') + if env['WITH_BF_QUICKTIME']: incs += ' ' + env['BF_QUICKTIME_INC'] defs.append('WITH_QUICKTIME') if env['WITH_BF_OPENEXR']: - defs.append('WITH_OPENEXR') + defs.append('WITH_OPENEXR') if env['WITH_BF_FFMPEG']: - defs.append('WITH_FFMPEG') + defs.append('WITH_FFMPEG') if env['BF_BUILDINFO']: - defs.append('NAN_BUILDINFO') + defs.append('NAN_BUILDINFO') env.BlenderLib ( libname='blender_python', sources = Split(sources), includes = Split(incs), defines = defs, libtype=['core','game2'], priority = [60,115] ) diff --git a/source/blender/src/SConscript b/source/blender/src/SConscript index 2e5dda6c772..ff6db036459 100644 --- a/source/blender/src/SConscript +++ b/source/blender/src/SConscript @@ -34,39 +34,41 @@ incs += ' ' + env['BF_OPENGL_INC'] defs = [] if env['WITH_BF_PYTHON']: - incs += ' ../python ' + env['BF_PYTHON_INC'] + incs += ' ../python ' + env['BF_PYTHON_INC'] + if env['BF_DEBUG']: + defs.append('_DEBUG') else: - defs.append('DISABLE_PYTHON') + defs.append('DISABLE_PYTHON') if env['BF_TWEAK_MODE']: - defs.append('TWEAK_MODE') + defs.append('TWEAK_MODE') if not env['WITH_BF_YAFRAY']: - defs.append('DISABLE_YAFRAY') + defs.append('DISABLE_YAFRAY') if env['WITH_BF_INTERNATIONAL']: - incs += ' ../ftfont' - defs.append('INTERNATIONAL') - defs.append('FTGL_STATIC_LIBRARY') + incs += ' ../ftfont' + defs.append('INTERNATIONAL') + defs.append('FTGL_STATIC_LIBRARY') if env['WITH_BF_OPENEXR']: - defs.append('WITH_OPENEXR') + defs.append('WITH_OPENEXR') if env['WITH_BF_OPENJPEG']: - defs.append('WITH_OPENJPEG') + defs.append('WITH_OPENJPEG') if env['WITH_BF_DDS']: - defs.append('WITH_DDS') + defs.append('WITH_DDS') if env['WITH_BF_QUICKTIME']: - incs += ' ' + env['BF_QUICKTIME_INC'] - defs.append('WITH_QUICKTIME') + incs += ' ' + env['BF_QUICKTIME_INC'] + defs.append('WITH_QUICKTIME') if env['WITH_BF_ICONV']: - incs += ' ../quicktime' - incs += ' ' + env['BF_ICONV_INC'] - defs.append('WITH_ICONV') + incs += ' ../quicktime' + incs += ' ' + env['BF_ICONV_INC'] + defs.append('WITH_ICONV') if env['WITH_BF_GAMEENGINE']: defs.append('GAMEBLENDER=1') @@ -74,33 +76,33 @@ if env['WITH_BF_GAMEENGINE']: defs.append('USE_SUMO_SOLID') if env['WITH_BF_FFMPEG']: - defs.append('WITH_FFMPEG') - incs += ' ' + env['BF_FFMPEG_INC'] + defs.append('WITH_FFMPEG') + incs += ' ' + env['BF_FFMPEG_INC'] if env['WITH_BF_OGG']: - defs.append('WITH_OGG') + defs.append('WITH_OGG') if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross'): - incs += ' ' + env['BF_PTHREADS_INC'] + incs += ' ' + env['BF_PTHREADS_INC'] if env['WITH_BF_VERSE']: - defs.append('WITH_VERSE') - incs += ' ' + env['BF_VERSE_INCLUDE'] + defs.append('WITH_VERSE') + incs += ' ' + env['BF_VERSE_INCLUDE'] # TODO buildinfo if env['BF_BUILDINFO']: - defs.append('NAN_BUILDINFO') + defs.append('NAN_BUILDINFO') if env['BF_NO_ELBEEM']: - defs.append('DISABLE_ELBEEM') + defs.append('DISABLE_ELBEEM') if env['WITH_BF_SDL']: - incs += ' ' + env['BF_SDL_INC'] + incs += ' ' + env['BF_SDL_INC'] else: - defs.append('DISABLE_SDL') + defs.append('DISABLE_SDL') if env['WITH_BF_BULLET']: - defs.append('WITH_BULLET') + defs.append('WITH_BULLET') if env['BF_SPLIT_SRC'] and (env['OURPLATFORM'] == 'win32-mingw'): for i in range(numlibs): diff --git a/source/creator/SConscript b/source/creator/SConscript index 505b69b8e6d..1aed0de370e 100644 --- a/source/creator/SConscript +++ b/source/creator/SConscript @@ -12,22 +12,24 @@ incs += ' ' + env['BF_OPENGL_INC'] defs = [] if env['WITH_BF_QUICKTIME']: - incs += ' ' + env['BF_QUICKTIME_INC'] - defs.append('WITH_QUICKTIME') + incs += ' ' + env['BF_QUICKTIME_INC'] + defs.append('WITH_QUICKTIME') if env['WITH_BF_BINRELOC']: - incs += ' ../../extern/binreloc/include' - defs.append('WITH_BINRELOC') + incs += ' ../../extern/binreloc/include' + defs.append('WITH_BINRELOC') if env['WITH_BF_OPENEXR']: - defs.append('WITH_OPENEXR') + defs.append('WITH_OPENEXR') if not env['WITH_BF_SDL']: defs.append('DISABLE_SDL') if env['WITH_BF_PYTHON']: - incs += ' ../blender/python' + incs += ' ../blender/python' + if env['BF_DEBUG']: + defs.append('_DEBUG') else: - defs.append('DISABLE_PYTHON') + defs.append('DISABLE_PYTHON') env.BlenderLib ( libname = 'blender_creator', sources = Split(sources), includes = Split(incs), defines = defs, libtype='core', priority = 1 ) From e4611218abf717c4d0790f22cc4f44e002380b5c Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 19 Apr 2009 00:09:47 +0000 Subject: [PATCH 184/201] BPy * access to sample buffers count of Lamp --- source/blender/python/api2_2x/Lamp.c | 28 +++++++++++++++++++++++ source/blender/python/api2_2x/doc/Lamp.py | 3 +++ 2 files changed, 31 insertions(+) diff --git a/source/blender/python/api2_2x/Lamp.c b/source/blender/python/api2_2x/Lamp.c index 799833d4ee0..3b7a785f32e 100644 --- a/source/blender/python/api2_2x/Lamp.c +++ b/source/blender/python/api2_2x/Lamp.c @@ -191,6 +191,7 @@ static PyObject *Lamp_getTypesConst( void ); static PyObject *Lamp_getMode( BPy_Lamp * self ); static PyObject *Lamp_getModesConst( void ); static PyObject *Lamp_getSamples( BPy_Lamp * self ); +static PyObject *Lamp_getSampleBuffers( BPy_Lamp * self ); static PyObject *Lamp_getRaySamplesX( BPy_Lamp * self ); static PyObject *Lamp_getRaySamplesY( BPy_Lamp * self ); static PyObject *Lamp_getAreaSizeX( BPy_Lamp * self ); @@ -241,6 +242,7 @@ static int Lamp_setIpo( BPy_Lamp * self, PyObject * args ); static int Lamp_setType( BPy_Lamp * self, PyObject * args ); static int Lamp_setMode( BPy_Lamp * self, PyObject * args ); static int Lamp_setSamples( BPy_Lamp * self, PyObject * args ); +static int Lamp_setSampleBuffers( BPy_Lamp * self, PyObject * args ); static int Lamp_setRaySamplesX( BPy_Lamp * self, PyObject * args ); static int Lamp_setRaySamplesY( BPy_Lamp * self, PyObject * args ); static int Lamp_setAreaSizeX( BPy_Lamp * self, PyObject * args ); @@ -447,6 +449,10 @@ static PyGetSetDef BPy_Lamp_getseters[] = { (getter)Lamp_getSamples, (setter)Lamp_setSamples, "Lamp shadow map samples", NULL}, + {"sampleBuffers", + (getter)Lamp_getSampleBuffers, (setter)Lamp_setSampleBuffers, + "Lamp shadow samples buffers", + NULL}, {"raySamplesX", (getter)Lamp_getRaySamplesX, (setter)Lamp_setRaySamplesX, "Lamp raytracing samples on the X axis", @@ -923,6 +929,11 @@ static PyObject *Lamp_getSamples( BPy_Lamp * self ) return PyInt_FromLong( self->lamp->samp ); } +static PyObject *Lamp_getSampleBuffers( BPy_Lamp * self ) +{ + return PyInt_FromLong( self->lamp->buffers ); +} + static PyObject *Lamp_getRaySamplesX( BPy_Lamp * self ) { return PyInt_FromLong( self->lamp->ray_samp ); @@ -1063,6 +1074,23 @@ static int Lamp_setSamples( BPy_Lamp * self, PyObject * value ) EXPP_LAMP_SAMPLES_MAX, 'h' ); } +static int Lamp_setSampleBuffers( BPy_Lamp * self, PyObject * value ) +{ + int buffers= 1; + if( !PyInt_Check ( value ) ) { + return EXPP_ReturnIntError( PyExc_TypeError, "expected int argument" ); + } + buffers= PyInt_AS_LONG(value); + + if(buffers!=1 && buffers!=4 && buffers!=9) { + return EXPP_ReturnIntError( PyExc_TypeError, + "expected int argument of value 1, 4 or 9" ); + } + + self->lamp->buffers= buffers; + + return 0; +} static int Lamp_setRaySamplesX( BPy_Lamp * self, PyObject * value ) { diff --git a/source/blender/python/api2_2x/doc/Lamp.py b/source/blender/python/api2_2x/doc/Lamp.py index 162d94ccff3..878ca53bb15 100644 --- a/source/blender/python/api2_2x/doc/Lamp.py +++ b/source/blender/python/api2_2x/doc/Lamp.py @@ -136,6 +136,9 @@ class Lamp: @ivar samples: Lamp shadow map samples. Value is clamped to the range [1,16]. @type samples: int + @ivar sampleBuffers: Lamp amount of shadow map sample buffers. + Number of sample buffers for shadow buffer: 1, 4 or 9. + @type sampleBuffers: int @ivar raySamplesX: Lamp raytracing X samples (X is used for the Y axis with square area lamps). Value is clamped to the range [1,16]. @type raySamplesX: int From d2ec468cd36a0924de99708542c504af3a4ed31e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 06:29:15 +0000 Subject: [PATCH 185/201] Hidden faces were not rendering displayed in the game engine, only the invisible face flag should be used for this. Hiding faces is a editing option like selection and should not change rendering, it wasn't even working right because meshes without UVs ignored it. I thought this was needed for compatibility with old files but just noticed this messes up 2 of the files in demos-2.42.zip --- source/gameengine/Converter/BL_BlenderDataConversion.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 2ae47e47d74..792a3e309f3 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -602,10 +602,7 @@ BL_Material* ConvertMaterial( if( validface ) { - material->ras_mode |= !( - (mface->flag & ME_HIDE) || - (tface->mode & TF_INVISIBLE) - )?POLY_VIS:0; + material->ras_mode |= (tface->mode & TF_INVISIBLE)?0:POLY_VIS; material->transp = tface->transp; material->tile = tface->tile; @@ -900,7 +897,7 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, RAS_IRenderTools* tile = tface->tile; mode = tface->mode; - visible = !((mface->flag & ME_HIDE)||(tface->mode & TF_INVISIBLE)); + visible = !(tface->mode & TF_INVISIBLE); twoside = ((tface->mode & TF_TWOSIDE)!=0); uv0.setValue(tface->uv[0]); From 92cea7c1b1540d11ed9729bacfabd23ccb7a79c7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 06:48:27 +0000 Subject: [PATCH 186/201] KX_MeshProxy "numPolygons" and "numMaterials" attributes were using the "materials" attribute function, error made recently when converting attributes. --- source/gameengine/Expressions/Value.cpp | 105 +--------------------- source/gameengine/Ketsji/KX_MeshProxy.cpp | 10 +-- 2 files changed, 6 insertions(+), 109 deletions(-) diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index e969f0c33aa..63776c39d70 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -36,107 +36,6 @@ bool CValue::m_ignore_deprecation_warnings(false); #ifndef NO_EXP_PYTHON_EMBEDDING -PyObject* cvalue_add(PyObject*v, PyObject*w) -{ - return ((CValue*)v)->Calc(VALUE_ADD_OPERATOR,(CValue*)w); -} -PyObject* cvalue_sub(PyObject*v, PyObject*w) -{ - return ((CValue*)v)->Calc(VALUE_SUB_OPERATOR,(CValue*)w); -} -PyObject* cvalue_mul(PyObject*v, PyObject*w) -{ - return ((CValue*)v)->Calc(VALUE_MUL_OPERATOR,(CValue*)w); -} -PyObject* cvalue_div(PyObject*v, PyObject*w) -{ - return ((CValue*)v)->Calc(VALUE_DIV_OPERATOR,(CValue*)w); -} -PyObject* cvalue_mod(PyObject*v, PyObject*w) -{ - return ((CValue*)v)->Calc(VALUE_MOD_OPERATOR,(CValue*)w); -} -PyObject* cvalue_neg(PyObject*v) -{ - return ((CValue*)v)->Calc(VALUE_NEG_OPERATOR,(CValue*)v); -} -PyObject* cvalue_pos(PyObject*v) -{ - return ((CValue*)v)->Calc(VALUE_POS_OPERATOR,(CValue*)v); -} - - -int MyPyCompare (PyObject* v,PyObject* w) -{ - CValue* eqval = ((CValue*)v)->Calc(VALUE_EQL_OPERATOR,(CValue*)w); - STR_String txt = eqval->GetText(); - eqval->Release(); - if (txt=="TRUE") - return 0; - CValue* lessval = ((CValue*)v)->Calc(VALUE_LES_OPERATOR,(CValue*)w); - txt = lessval->GetText(); - lessval->Release(); - if (txt=="TRUE") - return -1; - - return 1; -} - - -int cvalue_coerce(PyObject** pv,PyObject** pw) -{ - if (PyInt_Check(*pw)) { - *pw = new CIntValue((cInt)PyInt_AsLong(*pw)); - Py_INCREF(*pv); - return 0; - } - else if (PyLong_Check(*pw)) { - *pw = new CIntValue((cInt)PyLong_AsLongLong(*pw)); - Py_INCREF(*pv); - return 0; - } - else if (PyFloat_Check(*pw)) { - *pw = new CFloatValue((float)PyFloat_AsDouble(*pw)); - Py_INCREF(*pv); - return 0; - } else if (PyString_Check(*pw)) { - const STR_String str = PyString_AsString(*pw); - *pw = new CStringValue(str,""); - Py_INCREF(*pv); - return 0; - } - - PyErr_SetString(PyExc_TypeError, "unable to coerce python type to cvalue"); - return 1; /* Can't do it */ - -} -static PyNumberMethods cvalue_as_number = { - (binaryfunc)cvalue_add, /*nb_add*/ - (binaryfunc)cvalue_sub, /*nb_subtract*/ - (binaryfunc)cvalue_mul, /*nb_multiply*/ - (binaryfunc)cvalue_div, /*nb_divide*/ - (binaryfunc)cvalue_mod, /*nb_remainder*/ - 0,//(binaryfunc)cvalue_divmod, /*nb_divmod*/ - 0,//0,//0,//0,//(ternaryfunc)cvalue_pow, /*nb_power*/ - (unaryfunc)cvalue_neg, /*nb_negative*/ - 0,//(unaryfunc)cvalue_pos, /*nb_positive*/ - 0,//(unaryfunc)cvalue_abs, /*nb_absolute*/ - 0,//(inquiry)cvalue_nonzero, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - (coercion)cvalue_coerce, /*nb_coerce*/ - 0,//(unaryfunc)cvalue_int, /*nb_int*/ - 0,//(unaryfunc)cvalue_long, /*nb_long*/ - 0,//(unaryfunc)cvalue_float, /*nb_float*/ - 0, /*nb_oct*/ - 0, /*nb_hex*/ -}; - - PyTypeObject CValue::Type = { PyObject_HEAD_INIT(NULL) 0, @@ -147,9 +46,9 @@ PyTypeObject CValue::Type = { 0, 0, 0, - &MyPyCompare, + 0, py_base_repr, - &cvalue_as_number, + 0, 0,0,0,0,0, py_base_getattro, py_base_setattro, diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 0710d301c14..93d92480b3d 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -91,8 +91,8 @@ KX_PYMETHODTABLE(KX_MeshProxy, reinstancePhysicsMesh), PyAttributeDef KX_MeshProxy::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("materials", KX_MeshProxy, pyattr_get_materials), - KX_PYATTRIBUTE_RO_FUNCTION("numPolygons", KX_MeshProxy, pyattr_get_materials), - KX_PYATTRIBUTE_RO_FUNCTION("numMaterials", KX_MeshProxy, pyattr_get_materials), + KX_PYATTRIBUTE_RO_FUNCTION("numPolygons", KX_MeshProxy, pyattr_get_numPolygons), + KX_PYATTRIBUTE_RO_FUNCTION("numMaterials", KX_MeshProxy, pyattr_get_numMaterials), { NULL } //Sentinel }; @@ -311,12 +311,10 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_ PyObject * KX_MeshProxy::pyattr_get_numMaterials(void * selfv, const KX_PYATTRIBUTE_DEF * attrdef) { KX_MeshProxy * self = static_cast (selfv); - int num = self->m_meshobj->NumMaterials(); - return PyInt_FromLong(num); + return PyInt_FromLong(self->m_meshobj->NumMaterials()); } PyObject * KX_MeshProxy::pyattr_get_numPolygons(void * selfv, const KX_PYATTRIBUTE_DEF * attrdef) { KX_MeshProxy * self = static_cast (selfv); - int num = self->m_meshobj->NumPolygons(); - return PyInt_FromLong(num); + return PyInt_FromLong(self->m_meshobj->NumPolygons()); } From 8d2cb5bea44f4245dd17f2d82cbd0251d8090fd5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 12:46:39 +0000 Subject: [PATCH 187/201] BGE Python API This changes how the BGE classes and Python work together, which hasnt changed since blender went opensource. The main difference is PyObjectPlus - the base class for most game engine classes, no longer inherit from PyObject, and cannot be cast to a PyObject. This has the advantage that the BGE does not have to keep 2 reference counts valid for C++ and Python. Previously C++ classes would never be freed while python held a reference, however this reference could be problematic eg: a GameObject that isnt in a scene anymore should not be used by python, doing so could even crash blender in some cases. Instead PyObjectPlus has a member "PyObject *m_proxy" which is lazily initialized when python needs it. m_proxy reference counts are managed by python, though it should never be freed while the C++ class exists since it holds a reference to avoid making and freeing it all the time. When the C++ class is free'd it sets the m_proxy reference to NULL, If python accesses this variable it will raise a RuntimeError, (check the isValid attribute to see if its valid without raising an error). - This replaces the m_zombie bool and IsZombie() tests added recently. In python return values that used to be.. return value->AddRef(); Are now return value->GetProxy(); or... return value->NewProxy(true); // true means python owns this C++ value which will be deleted when the PyObject is freed --- .../Converter/BL_BlenderDataConversion.cpp | 2 +- source/gameengine/Expressions/InputParser.cpp | 2 +- source/gameengine/Expressions/ListValue.cpp | 67 ++++++--- source/gameengine/Expressions/ListValue.h | 4 +- .../gameengine/Expressions/PyObjectPlus.cpp | 69 ++++++++- source/gameengine/Expressions/PyObjectPlus.h | 137 +++++++++--------- source/gameengine/Expressions/Value.cpp | 11 +- source/gameengine/Expressions/Value.h | 16 -- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 3 +- .../GameLogic/SCA_PythonController.cpp | 16 +- .../KXNetwork/KX_NetworkMessageSensor.cpp | 16 +- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 12 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 135 +++++++++-------- source/gameengine/Ketsji/KX_GameObject.h | 6 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 10 +- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 4 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 4 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 14 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 3 +- .../Ketsji/KX_PyConstraintBinding.cpp | 4 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 11 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 6 +- source/gameengine/Ketsji/KX_RaySensor.cpp | 4 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 9 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 2 +- source/gameengine/Ketsji/KX_Scene.cpp | 13 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 46 ++++-- source/gameengine/Ketsji/KX_TouchSensor.cpp | 8 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 4 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 5 +- source/gameengine/VideoTexture/FilterSource.h | 3 +- .../gameengine/VideoTexture/ImageRender.cpp | 23 ++- 33 files changed, 378 insertions(+), 295 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 792a3e309f3..9f214721c82 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -2354,7 +2354,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, // Remove the child reference in the local list! // Note: there may be descendents already if the children of the child were processed // by this loop before the child. In that case, we must remove the children also - CListValue* childrenlist = (CListValue*)childobj->PyGetChildrenRecursive(childobj); + CListValue* childrenlist = childobj->GetChildrenRecursive(); childrenlist->Add(childobj->AddRef()); for ( i=0;iGetCount();i++) { diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp index 1698f1919d1..66075dd8d42 100644 --- a/source/gameengine/Expressions/InputParser.cpp +++ b/source/gameengine/Expressions/InputParser.cpp @@ -649,7 +649,7 @@ PyObject* CParserPyMake(PyObject* ignored,PyObject* args) CExpression* expr = parser.ProcessText(txt); CValue* val = expr->Calculate(); expr->Release(); - return val; + return val->GetProxy(); } static PyMethodDef CParserMethods[] = diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 37feba38f8b..eaed2b5c400 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -27,45 +27,61 @@ #define Py_ssize_t int #endif -Py_ssize_t listvalue_bufferlen(PyObject* list) +Py_ssize_t listvalue_bufferlen(PyObject* self) { - return (Py_ssize_t)( ((CListValue*)list)->GetCount()); + CListValue *list= static_cast(BGE_PROXY_REF(self)); + if (list==NULL) + return 0; + + return (Py_ssize_t)list->GetCount(); } -PyObject* listvalue_buffer_item(PyObject* list,Py_ssize_t index) +PyObject* listvalue_buffer_item(PyObject* self, Py_ssize_t index) { - int count = ((CListValue*) list)->GetCount(); + CListValue *list= static_cast(BGE_PROXY_REF(self)); + if (list==NULL) { + PyErr_SetString(PyExc_IndexError, BGE_PROXY_ERROR_MSG); + return NULL; + } + + int count = list->GetCount(); if (index < 0) index = count+index; if (index >= 0 && index < count) { - PyObject* pyobj = ((CListValue*) list)->GetValue(index)->ConvertValueToPython(); + PyObject* pyobj = list->GetValue(index)->ConvertValueToPython(); if (pyobj) return pyobj; else - return ((CListValue*) list)->GetValue(index)->AddRef(); + return list->GetValue(index)->GetProxy(); } PyErr_SetString(PyExc_IndexError, "Python ListIndex out of range"); return NULL; } -PyObject* listvalue_mapping_subscript(PyObject* list,PyObject* pyindex) +PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex) { + CListValue *list= static_cast(BGE_PROXY_REF(self)); + if (list==NULL) { + PyErr_SetString(PyExc_IndexError, BGE_PROXY_ERROR_MSG); + return NULL; + } + if (PyString_Check(pyindex)) { STR_String index(PyString_AsString(pyindex)); CValue *item = ((CListValue*) list)->FindValue(index); if (item) - return (PyObject*) item; + return item->GetProxy(); } if (PyInt_Check(pyindex)) { int index = PyInt_AsLong(pyindex); - return listvalue_buffer_item(list, index); + return listvalue_buffer_item(self, index); } PyObject *pyindex_str = PyObject_Repr(pyindex); /* new ref */ @@ -76,10 +92,16 @@ PyObject* listvalue_mapping_subscript(PyObject* list,PyObject* pyindex) /* just slice it into a python list... */ -PyObject* listvalue_buffer_slice(PyObject* list,Py_ssize_t ilow, Py_ssize_t ihigh) +PyObject* listvalue_buffer_slice(PyObject* self,Py_ssize_t ilow, Py_ssize_t ihigh) { + CListValue *list= static_cast(BGE_PROXY_REF(self)); + if (list==NULL) { + PyErr_SetString(PyExc_IndexError, BGE_PROXY_ERROR_MSG); + return NULL; + } + int i, j; - PyListObject *newlist; + PyObject *newlist; if (ilow < 0) ilow = 0; @@ -90,18 +112,18 @@ PyObject* listvalue_buffer_slice(PyObject* list,Py_ssize_t ilow, Py_ssize_t ihig if (ihigh < ilow) ihigh = ilow; - newlist = (PyListObject *) PyList_New(ihigh - ilow); + newlist = PyList_New(ihigh - ilow); if (!newlist) return NULL; for (i = ilow, j = 0; i < ihigh; i++, j++) { - PyObject* pyobj = ((CListValue*) list)->GetValue(i)->ConvertValueToPython(); + PyObject* pyobj = list->GetValue(i)->ConvertValueToPython(); if (!pyobj) - pyobj = ((CListValue*) list)->GetValue(i)->AddRef(); - newlist->ob_item[j] = pyobj; + pyobj = list->GetValue(i)->GetProxy(); + PyList_SET_ITEM(newlist, i, pyobj); } - return (PyObject *) newlist; + return newlist; } @@ -109,11 +131,16 @@ PyObject* listvalue_buffer_slice(PyObject* list,Py_ssize_t ilow, Py_ssize_t ihig static PyObject * listvalue_buffer_concat(PyObject * self, PyObject * other) { + CListValue *listval= static_cast(BGE_PROXY_REF(self)); + if (listval==NULL) { + PyErr_SetString(PyExc_IndexError, BGE_PROXY_ERROR_MSG); + return NULL; + } + // for now, we support CListValue concatenated with items // and CListValue concatenated to Python Lists // and CListValue concatenated with another CListValue - - CListValue* listval = (CListValue*) self; + listval->AddRef(); if (other->ob_type == &PyList_Type) { @@ -519,8 +546,8 @@ PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) int numelem = GetCount(); for (int i=0;i(static_cast(m_pValueArray[i])) == id) - return GetValue(i); + if (reinterpret_cast(m_pValueArray[i]->m_proxy) == id) + return GetValue(i)->GetProxy(); } PyErr_SetString(PyExc_IndexError, "from_id(#), id not found in CValueList"); diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h index cf2976c2bbb..2af5a330c43 100644 --- a/source/gameengine/Expressions/ListValue.h +++ b/source/gameengine/Expressions/ListValue.h @@ -61,9 +61,11 @@ public: virtual PyObject* py_getattro(PyObject* attr); virtual PyObject* py_repr(void) { - PyObject *py_list= PySequence_List((PyObject *)this); + PyObject *py_proxy= this->GetProxy(); + PyObject *py_list= PySequence_List(py_proxy); PyObject *py_string= PyObject_Repr(py_list); Py_DECREF(py_list); + Py_DECREF(py_proxy); return py_string; } diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 0db2e8991fc..2c5ba3f39fc 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -54,6 +54,7 @@ * PyObjectPlus Type -- Every class, even the abstract one should have a Type ------------------------------*/ + PyTypeObject PyObjectPlus::Type = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ @@ -74,21 +75,33 @@ PyTypeObject PyObjectPlus::Type = { Methods }; + PyObjectPlus::~PyObjectPlus() { - if (ob_refcnt) - { - _Py_ForgetReference(this); + if(m_proxy) { + Py_DECREF(m_proxy); /* Remove own reference, python may still have 1 */ + BGE_PROXY_REF(m_proxy)= NULL; } // assert(ob_refcnt==0); } +void PyObjectPlus::PyDestructor(PyObject *self) // python wrapper +{ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus) { + if(BGE_PROXY_PYOWNS(self)) { /* Does python own this?, then delete it */ + delete self_plus; + } + + BGE_PROXY_REF(self)= NULL; // not really needed + } + PyObject_DEL( self ); +}; + PyObjectPlus::PyObjectPlus(PyTypeObject *T) // constructor { MT_assert(T != NULL); - this->ob_type = T; - _Py_NewReference(this); - SetZombie(false); + m_proxy= NULL; }; /*------------------------------ @@ -131,7 +144,7 @@ PyObject *PyObjectPlus::py_getattro(PyObject* attr) if (PyCObject_Check(descr)) { return py_get_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr)); } else if (descr->ob_type->tp_descr_get) { - return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); + return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, this->m_proxy); } else { fprintf(stderr, "Unknown attribute type (PyObjectPlus::py_getattro)"); return descr; @@ -794,5 +807,47 @@ PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict) return pydict; } + + +PyObject *PyObjectPlus::GetProxy_Ext(PyObjectPlus *self, PyTypeObject *tp) +{ + if (self->m_proxy==NULL) + { + self->m_proxy = reinterpret_castPyObject_NEW( PyObjectPlus_Proxy, tp); + BGE_PROXY_PYOWNS(self->m_proxy) = false; + } + //PyObject_Print(self->m_proxy, stdout, 0); + //printf("ref %d\n", self->m_proxy->ob_refcnt); + + BGE_PROXY_REF(self->m_proxy) = self; /* Its possible this was set to NULL, so set it back here */ + Py_INCREF(self->m_proxy); /* we own one, thos ones fore the return */ + return self->m_proxy; +} + +PyObject *PyObjectPlus::NewProxy_Ext(PyObjectPlus *self, PyTypeObject *tp, bool py_owns) +{ + if (self->m_proxy) + { + if(py_owns) + { /* Free */ + BGE_PROXY_REF(self->m_proxy) = NULL; + Py_DECREF(self->m_proxy); + self->m_proxy= NULL; + } + else { + Py_INCREF(self->m_proxy); + return self->m_proxy; + } + + } + + GetProxy_Ext(self, tp); + if(py_owns) { + BGE_PROXY_PYOWNS(self->m_proxy) = py_owns; + Py_DECREF(self->m_proxy); /* could avoid thrashing here but for now its ok */ + } + return self->m_proxy; +} + #endif //NO_EXP_PYTHON_EMBEDDING diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 58a74e4ca74..3be9a2f2bcb 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -81,6 +81,20 @@ static inline void Py_Fatal(const char *M) { exit(-1); }; +typedef struct { + PyObject_HEAD /* required python macro */ + class PyObjectPlus *ref; + bool py_owns; +} PyObjectPlus_Proxy; + +#define BGE_PROXY_ERROR_MSG "Blender Game Engine data has been freed, cannot use this python variable" +#define BGE_PROXY_REF(_self) (((PyObjectPlus_Proxy *)_self)->ref) +#define BGE_PROXY_PYOWNS(_self) (((PyObjectPlus_Proxy *)_self)->py_owns) + +/* Note, sometimes we dont care what BGE type this is as long as its a proxy */ +#define BGE_PROXY_CHECK_TYPE(_self) ((_self)->ob_type->tp_dealloc == PyDestructor) + + // This must be the first line of each // PyC++ class #define Py_Header \ @@ -90,7 +104,10 @@ static inline void Py_Fatal(const char *M) { static PyAttributeDef Attributes[]; \ static PyParentObject Parents[]; \ virtual PyTypeObject *GetType(void) {return &Type;}; \ - virtual PyParentObject *GetParents(void) {return Parents;} + virtual PyParentObject *GetParents(void) {return Parents;} \ + virtual PyObject *GetProxy() {return GetProxy_Ext(this, &Type);}; \ + virtual PyObject *NewProxy(bool py_owns) {return NewProxy_Ext(this, &Type, py_owns);}; \ + @@ -106,7 +123,7 @@ static inline void Py_Fatal(const char *M) { if (PyCObject_Check(descr)) { \ return py_get_attrdef((void *)this, (const PyAttributeDef*)PyCObject_AsVoidPtr(descr)); \ } else if (descr->ob_type->tp_descr_get) { \ - return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, (PyObject *)this); \ + return PyCFunction_New(((PyMethodDescrObject *)descr)->d_method, this->m_proxy); \ } else { \ fprintf(stderr, "unknown attribute type"); \ return descr; \ @@ -165,52 +182,60 @@ static inline void Py_Fatal(const char *M) { #define KX_PYMETHOD(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* args, PyObject* kwds); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args, PyObject* kwds) { \ - return ((class_name*) self)->Py##method_name(self, args, kwds); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self, args, kwds); \ }; \ #define KX_PYMETHOD_VARARGS(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* args); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args) { \ - return ((class_name*) self)->Py##method_name(self, args); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self, args); \ }; \ #define KX_PYMETHOD_NOARGS(class_name, method_name) \ PyObject* Py##method_name(PyObject* self); \ static PyObject* sPy##method_name( PyObject* self) { \ - return ((class_name*) self)->Py##method_name(self); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self); \ }; \ #define KX_PYMETHOD_O(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* value); \ static PyObject* sPy##method_name( PyObject* self, PyObject* value) { \ - return ((class_name*) self)->Py##method_name(self, value); \ + PyObjectPlus *self_plus= ((PyObjectPlus_Proxy *)self)->ref; \ + return ((class_name*) self_plus)->Py##method_name(self, value); \ }; \ #define KX_PYMETHOD_DOC(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* args, PyObject* kwds); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args, PyObject* kwds) { \ - return ((class_name*) self)->Py##method_name(self, args, kwds); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self, args, kwds); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_VARARGS(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* args); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args) { \ - return ((class_name*) self)->Py##method_name(self, args); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self, args); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_O(class_name, method_name) \ PyObject* Py##method_name(PyObject* self, PyObject* value); \ static PyObject* sPy##method_name( PyObject* self, PyObject* value) { \ - return ((class_name*) self)->Py##method_name(self, value); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self, value); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_NOARGS(class_name, method_name) \ PyObject* Py##method_name(PyObject* self); \ static PyObject* sPy##method_name( PyObject* self) { \ - return ((class_name*) self)->Py##method_name(self); \ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ + return ((class_name*)self_plus)->Py##method_name(self); \ }; \ static const char method_name##_doc[]; \ @@ -233,19 +258,19 @@ static inline void Py_Fatal(const char *M) { */ #define KX_PYMETHODDEF_DOC(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject*, PyObject* args, PyObject*) +PyObject* class_name::Py##method_name(PyObject* self, PyObject* args, PyObject*) #define KX_PYMETHODDEF_DOC_VARARGS(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject*, PyObject* args) +PyObject* class_name::Py##method_name(PyObject* self, PyObject* args) #define KX_PYMETHODDEF_DOC_O(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject*, PyObject* value) +PyObject* class_name::Py##method_name(PyObject* self, PyObject* value) #define KX_PYMETHODDEF_DOC_NOARGS(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject*) +PyObject* class_name::Py##method_name(PyObject* self) /** * Attribute management @@ -394,19 +419,17 @@ typedef struct KX_PYATTRIBUTE_DEF { ------------------------------*/ typedef PyTypeObject * PyParentObject; // Define the PyParent Object -class PyObjectPlus : public PyObject +class PyObjectPlus { // The PyObjectPlus abstract class Py_Header; // Always start with Py_Header public: PyObjectPlus(PyTypeObject *T); - bool m_zombie; + + PyObject *m_proxy; /* actually a PyObjectPlus_Proxy */ virtual ~PyObjectPlus(); // destructor - static void PyDestructor(PyObject *P) // python wrapper - { - delete ((PyObjectPlus *) P); - }; + static void PyDestructor(PyObject *self); // python wrapper // void INCREF(void) { // Py_INCREF(this); @@ -418,15 +441,15 @@ public: virtual PyObject *py_getattro(PyObject *attr); // py_getattro method static PyObject *py_base_getattro(PyObject * self, PyObject *attr) // This should be the entry in Type. { - if (((PyObjectPlus*)self)->IsZombie()) { - if (!strcmp(PyString_AsString(attr), "isValid")) { - Py_RETURN_FALSE; + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + if(!strcmp("isValid", PyString_AsString(attr))) { + Py_RETURN_TRUE; } - ((PyObjectPlus*)self)->IsZombiePyErr(); /* raise an error */ + PyErr_SetString(PyExc_RuntimeError, "data has been removed"); return NULL; } - - return ((PyObjectPlus*) self)->py_getattro(attr); + return self_plus->py_getattro(attr); } static PyObject* py_get_attrdef(void *self, const PyAttributeDef *attrdef); @@ -441,22 +464,29 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method static int py_base_setattro(PyObject *self, PyObject *attr, PyObject *value) // the PyType should reference this { - if (((PyObjectPlus*)self)->IsZombie()) { - /* you cant set isValid anyway */ - ((PyObjectPlus*)self)->IsZombiePyErr(); + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + PyErr_SetString(PyExc_RuntimeError, "data has been removed"); return -1; } if (value==NULL) - return ((PyObjectPlus*)self)->py_delattro(attr); + return self_plus->py_delattro(attr); - return ((PyObjectPlus*)self)->py_setattro(attr, value); + return self_plus->py_setattro(attr, value); } virtual PyObject *py_repr(void); // py_repr method - static PyObject *py_base_repr(PyObject *PyObj) // This should be the entry in Type. + static PyObject *py_base_repr(PyObject *self) // This should be the entry in Type. { - return ((PyObjectPlus*) PyObj)->py_repr(); + + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + PyErr_SetString(PyExc_RuntimeError, "data has been removed"); + return NULL; + } + + return self_plus->py_repr(); } // isA methods @@ -465,43 +495,20 @@ public: PyObject *Py_isA(PyObject *value); static PyObject *sPy_isA(PyObject *self, PyObject *value) { - return ((PyObjectPlus*)self)->Py_isA(value); + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + PyErr_SetString(PyExc_RuntimeError, "data has been removed"); + return NULL; + } + + return self_plus->Py_isA(value); } /* Kindof dumb, always returns True, the false case is checked for, before this function gets accessed */ static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - bool IsZombie() - { - return m_zombie; - } - - bool IsZombiePyErr() - { - if(m_zombie) { - /* - PyObject *this_pystr = PyObject_Repr(this); - - PyErr_Format( - PyExc_RuntimeError, - "\"%s\" of type \"%s\" has been freed by the blender game engine, " - "scripts cannot access this anymore, check for this case with the \"isValid\" attribute", - PyString_AsString(this_pystr), ob_type->tp_name ); - - Py_DECREF(this_pystr); - */ - - PyErr_SetString(PyExc_RuntimeError, "This value has been freed by the blender game engine but python is still holding a reference, this value cant be used."); - } - - return m_zombie; - } - - void SetZombie(bool is_zombie) - { - m_zombie= is_zombie; - } - + static PyObject *GetProxy_Ext(PyObjectPlus *self, PyTypeObject *tp); + static PyObject *NewProxy_Ext(PyObjectPlus *self, PyTypeObject *tp, bool py_owns); }; PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict); diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 63776c39d70..7958c16ca81 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -501,12 +501,6 @@ int CValue::Release() // Decrease local reference count, if it reaches 0 the object should be freed if (--m_refcount > 0) { - // Benoit suggest this as a way to automatically set the zombie flag, but I couldnt get it working - Campbell - /* - if (m_refcount == 1 && ob_refcnt > 1) - SetZombie(true); // the remaining refcount is held by Python!! - */ - // Reference count normal, return new reference count return m_refcount; } @@ -544,9 +538,6 @@ void CValue::AddDataToReplica(CValue *replica) { replica->m_refcount = 1; - //register with Python - _Py_NewReference(replica); - #ifdef _DEBUG //gRefCountValue++; #endif @@ -616,7 +607,7 @@ PyObject* CValue::py_getattro(PyObject *attr) if (pyconvert) return pyconvert; else - return resultattr; // also check if it's already in pythoninterpreter! + return resultattr->GetProxy(); } py_getattro_up(PyObjectPlus); } diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h index bcee355cda2..a687e1a493c 100644 --- a/source/gameengine/Expressions/Value.h +++ b/source/gameengine/Expressions/Value.h @@ -225,21 +225,6 @@ public: virtual PyObject* py_getattro(PyObject *attr); - - void SpecialRelease() - { - if (ob_refcnt == 0) /* make sure python always holds a reference */ - { - _Py_NewReference(this); - - } - Release(); - } - static void PyDestructor(PyObject *P) // python wrapper - { - ((CValue*)P)->SpecialRelease(); - }; - virtual PyObject* ConvertValueToPython() { return NULL; } @@ -352,7 +337,6 @@ private: std::map* m_pNamedPropertyArray; // Properties for user/game etc ValueFlags m_ValFlags; // Frequently used flags in a bitfield (low memoryusage) int m_refcount; // Reference Counter - bool m_zombie; // Object is invalid put its still being referenced (by python) static double m_sZeroVec[3]; static bool m_ignore_deprecation_warnings; diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 46e132c65fc..7fa55cfb1ee 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -294,8 +294,7 @@ PyObject* SCA_ILogicBrick::PyGetOwner(PyObject* self) CValue* parent = GetParent(); if (parent) { - parent->AddRef(); - return parent; + return parent->GetProxy(); } printf("ERROR: Python scriptblock without owner\n"); diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 1c5b597f937..687ae421af1 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -157,7 +157,7 @@ static const char* sPyGetCurrentController__doc__; PyObject* SCA_PythonController::sPyGetCurrentController(PyObject* self) { - return m_sCurrentController->AddRef(); + return m_sCurrentController->GetProxy(); } SCA_IActuator* SCA_PythonController::LinkedActuatorFromPy(PyObject *value) @@ -176,10 +176,10 @@ SCA_IActuator* SCA_PythonController::LinkedActuatorFromPy(PyObject *value) } } } - else { - /* Expecting an actuator type */ + else if (BGE_PROXY_CHECK_TYPE(value)) { + PyObjectPlus *value_plus= BGE_PROXY_REF(value); /* Expecting an actuator type */ // XXX TODO - CHECK TYPE for(it = lacts.begin(); it!= lacts.end(); it++) { - if( static_cast(value) == (*it) ) { + if( static_cast(value_plus) == (*it) ) { return *it; } } @@ -413,7 +413,7 @@ PyObject* SCA_PythonController::PyGetActuators(PyObject* self) PyObject* resultlist = PyList_New(m_linkedactuators.size()); for (unsigned int index=0;indexAddRef()); + PyList_SET_ITEM(resultlist,index, m_linkedactuators[index]->GetProxy()); } return resultlist; @@ -437,7 +437,7 @@ SCA_PythonController::PyGetSensor(PyObject* self, PyObject* value) STR_String realname = sensor->GetName(); if (realname == scriptArg) { - return sensor->AddRef(); + return sensor->GetProxy(); } } @@ -466,7 +466,7 @@ SCA_PythonController::PyGetActuator(PyObject* self, PyObject* value) SCA_IActuator* actua = m_linkedactuators[index]; if (actua->GetName() == scriptArg) { - return actua->AddRef(); + return actua->GetProxy(); } } @@ -484,7 +484,7 @@ SCA_PythonController::PyGetSensors(PyObject* self) PyObject* resultlist = PyList_New(m_linkedsensors.size()); for (unsigned int index=0;indexAddRef()); + PyList_SET_ITEM(resultlist,index, m_linkedsensors[index]->GetProxy()); } return resultlist; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 65600856377..8aca2e372d1 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -235,9 +235,9 @@ PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYAT { KX_NetworkMessageSensor *self = static_cast(self_v); if (self->m_BodyList) { - return ((PyObject*) self->m_BodyList->AddRef()); + return self->m_BodyList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } @@ -245,9 +245,9 @@ PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PY { KX_NetworkMessageSensor *self = static_cast(self_v); if (self->m_SubjectList) { - return ((PyObject*) self->m_SubjectList->AddRef()); + return self->m_SubjectList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } @@ -290,9 +290,9 @@ PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) { ShowDeprecationWarning("getBodies()", "bodies"); if (m_BodyList) { - return ((PyObject*) m_BodyList->AddRef()); + return m_BodyList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } @@ -316,9 +316,9 @@ PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) { ShowDeprecationWarning("getSubjects()", "subjects"); if (m_SubjectList) { - return ((PyObject*) m_SubjectList->AddRef()); + return m_SubjectList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } // <----- Deprecated \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index 0e417dde5d2..bdad21f76eb 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -827,8 +827,7 @@ KX_PYMETHODDEF_DOC( KX_BlenderMaterial, getShader , "getShader()") m_flag &= ~RAS_BLENDERGLSL; mMaterial->SetSharedMaterial(true); mScene->GetBucketManager()->ReleaseDisplayLists(this); - Py_INCREF(mShader); - return mShader; + return mShader->GetProxy(); }else { // decref all references to the object @@ -836,13 +835,8 @@ KX_PYMETHODDEF_DOC( KX_BlenderMaterial, getShader , "getShader()") // We will then go back to fixed functionality // for this material if(mShader) { - if(mShader->ob_refcnt > 1) { - Py_DECREF(mShader); - } - else { - delete mShader; - mShader=0; - } + delete mShader; /* will handle python de-referencing */ + mShader=0; } } Py_RETURN_NONE; diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 329d31cfa25..a1159dbc23f 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -449,7 +449,7 @@ PyObject* KX_CameraActuator::PyGetObject(PyObject* self, PyObject* args) if (ret_name_only) return PyString_FromString(m_ob->GetName()); else - return m_ob->AddRef(); + return m_ob->GetProxy(); } /* set obj ---------------------------------------------------------- */ const char KX_CameraActuator::SetObject_doc[] = @@ -597,7 +597,7 @@ PyObject* KX_CameraActuator::pyattr_get_object(void *self_v, const KX_PYATTRIBUT if (self->m_ob==NULL) Py_RETURN_NONE; else - return self->m_ob->AddRef(); + return self->m_ob->GetProxy(); } int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 3e7c99dc472..402c242315a 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1039,7 +1039,43 @@ void KX_GameObject::Suspend() } } +static void walk_children(SG_Node* node, CListValue* list, bool recursive) +{ + if (!node) + return; + NodeList& children = node->GetSGChildren(); + for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) + { + SG_Node* childnode = (*childit); + CValue* childobj = (CValue*)childnode->GetSGClientObject(); + if (childobj != NULL) // This is a GameObject + { + // add to the list + list->Add(childobj->AddRef()); + } + + // if the childobj is NULL then this may be an inverse parent link + // so a non recursive search should still look down this node. + if (recursive || childobj==NULL) { + walk_children(childnode, list, recursive); + } + } +} + +CListValue* KX_GameObject::GetChildren() +{ + CListValue* list = new CListValue(); + walk_children(GetSGNode(), list, 0); /* GetSGNode() is always valid or it would have raised an exception before this */ + return list; +} + +CListValue* KX_GameObject::GetChildrenRecursive() +{ + CListValue* list = new CListValue(); + walk_children(GetSGNode(), list, 1); + return list; +} /* ------- python stuff ---------------------------------------------------*/ @@ -1185,13 +1221,10 @@ PyObject* KX_GameObject::PyGetPosition(PyObject* self) Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) { - KX_GameObject* self= static_cast(self_v); + KX_GameObject* self= static_castBGE_PROXY_REF(self_v); - if (self->IsZombie()) /* not sure what to do here */ - { - PyErr_Clear(); + if (self==NULL) /* not sure what to do here */ return 0; - } Py_ssize_t len= self->GetPropertyCount(); if(self->m_attr_dict) @@ -1202,18 +1235,20 @@ Py_ssize_t KX_GameObject::Map_Len(PyObject* self_v) PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) { - KX_GameObject* self= static_cast(self_v); + KX_GameObject* self= static_castBGE_PROXY_REF(self_v); const char *attr_str= PyString_AsString(item); CValue* resultattr; PyObject* pyconvert; - if (self->IsZombiePyErr()) + if (self==NULL) { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); return NULL; + } /* first see if the attributes a string and try get the cvalue attribute */ if(attr_str && (resultattr=self->GetProperty(attr_str))) { pyconvert = resultattr->ConvertValueToPython(); - return pyconvert ? pyconvert:resultattr; + return pyconvert ? pyconvert:resultattr->GetProxy(); } /* no CValue attribute, try get the python only m_attr_dict attribute */ else if (self->m_attr_dict && (pyconvert=PyDict_GetItem(self->m_attr_dict, item))) { @@ -1234,13 +1269,15 @@ PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) { - KX_GameObject* self= static_cast(self_v); + KX_GameObject* self= static_castBGE_PROXY_REF(self_v); const char *attr_str= PyString_AsString(key); if(attr_str==NULL) PyErr_Clear(); - if (self->IsZombiePyErr()) + if (self==NULL) { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); return -1; + } if (val==NULL) { /* del ob["key"] */ int del= 0; @@ -1370,7 +1407,7 @@ PyObject* KX_GameObject::pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DE KX_GameObject* self= static_cast(self_v); KX_GameObject* parent = self->GetParent(); if (parent) - return parent->AddRef(); + return parent->GetProxy(); Py_RETURN_NONE; } @@ -1667,7 +1704,7 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE for(i=0; i < self->m_meshes.size(); i++) { KX_MeshProxy* meshproxy = new KX_MeshProxy(self->m_meshes[i]); - PyList_SET_ITEM(meshes, i, meshproxy); + PyList_SET_ITEM(meshes, i, meshproxy->GetProxy()); } return meshes; @@ -1681,7 +1718,7 @@ PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_D PyObject* resultlist = PyList_New(sensors.size()); for (unsigned int index=0;indexAddRef()); + PyList_SET_ITEM(resultlist, index, sensors[index]->GetProxy()); return resultlist; } @@ -1693,7 +1730,7 @@ PyObject* KX_GameObject::pyattr_get_controllers(void *self_v, const KX_PYATTRIBU PyObject* resultlist = PyList_New(controllers.size()); for (unsigned int index=0;indexAddRef()); + PyList_SET_ITEM(resultlist, index, controllers[index]->GetProxy()); return resultlist; } @@ -1705,7 +1742,7 @@ PyObject* KX_GameObject::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE PyObject* resultlist = PyList_New(actuators.size()); for (unsigned int index=0;indexAddRef()); + PyList_SET_ITEM(resultlist, index, actuators[index]->GetProxy()); return resultlist; } @@ -2083,28 +2120,17 @@ PyObject* KX_GameObject::PyGetParent(PyObject* self) ShowDeprecationWarning("getParent()", "the parent property"); KX_GameObject* parent = this->GetParent(); if (parent) - return parent->AddRef(); + return parent->GetProxy(); Py_RETURN_NONE; } PyObject* KX_GameObject::PySetParent(PyObject* self, PyObject* value) { - if (!PyObject_TypeCheck(value, &KX_GameObject::Type)) { - PyErr_SetString(PyExc_TypeError, "expected a KX_GameObject type"); + KX_GameObject *obj; + if (!ConvertPythonToGameObject(value, &obj, false)) return NULL; - } - if (self==value) { - PyErr_SetString(PyExc_ValueError, "cannot set the object to be its own parent!"); - return NULL; - } - // The object we want to set as parent - CValue *m_ob = (CValue*)value; - KX_GameObject *obj = ((KX_GameObject*)m_ob); - KX_Scene *scene = KX_GetActiveScene(); - - this->SetParent(scene, obj); - + this->SetParent(KX_GetActiveScene(), obj); Py_RETURN_NONE; } @@ -2115,43 +2141,14 @@ PyObject* KX_GameObject::PyRemoveParent(PyObject* self) Py_RETURN_NONE; } - -static void walk_children(SG_Node* node, CListValue* list, bool recursive) -{ - if (!node) - return; - NodeList& children = node->GetSGChildren(); - - for (NodeList::iterator childit = children.begin();!(childit==children.end());++childit) - { - SG_Node* childnode = (*childit); - CValue* childobj = (CValue*)childnode->GetSGClientObject(); - if (childobj != NULL) // This is a GameObject - { - // add to the list - list->Add(childobj->AddRef()); - } - - // if the childobj is NULL then this may be an inverse parent link - // so a non recursive search should still look down this node. - if (recursive || childobj==NULL) { - walk_children(childnode, list, recursive); - } - } -} - PyObject* KX_GameObject::PyGetChildren(PyObject* self) { - CListValue* list = new CListValue(); - walk_children(GetSGNode(), list, 0); /* GetSGNode() is always valid or it would have raised an exception before this */ - return list; + return GetChildren()->NewProxy(true); } PyObject* KX_GameObject::PyGetChildrenRecursive(PyObject* self) { - CListValue* list = new CListValue(); - walk_children(GetSGNode(), list, 1); - return list; + return GetChildrenRecursive()->NewProxy(true); } PyObject* KX_GameObject::PyGetMesh(PyObject* self, PyObject* args) @@ -2166,7 +2163,7 @@ PyObject* KX_GameObject::PyGetMesh(PyObject* self, PyObject* args) if (((unsigned int)mesh < m_meshes.size()) && mesh >= 0) { KX_MeshProxy* meshproxy = new KX_MeshProxy(m_meshes[mesh]); - return meshproxy; + return meshproxy->NewProxy(true); // XXX Todo Python own. } Py_RETURN_NONE; @@ -2516,7 +2513,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo, KX_RayCast::RayTest(pe, fromPoint, toPoint, callback); if (m_pHitObject) - return m_pHitObject->AddRef(); + return m_pHitObject->GetProxy(); Py_RETURN_NONE; } @@ -2618,7 +2615,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, { PyObject* returnValue = (poly) ? PyTuple_New(4) : PyTuple_New(3); if (returnValue) { // unlikely this would ever fail, if it does python sets an error - PyTuple_SET_ITEM(returnValue, 0, m_pHitObject->AddRef()); + PyTuple_SET_ITEM(returnValue, 0, m_pHitObject->GetProxy()); PyTuple_SET_ITEM(returnValue, 1, PyObjectFrom(callback.m_hitPoint)); PyTuple_SET_ITEM(returnValue, 2, PyObjectFrom(callback.m_hitNormal)); if (poly) @@ -2628,7 +2625,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, // if this field is set, then we can trust that m_hitPolygon is a valid polygon RAS_Polygon* polygon = callback.m_hitMesh->GetPolygon(callback.m_hitPolygon); KX_PolyProxy* polyproxy = new KX_PolyProxy(callback.m_hitMesh, polygon); - PyTuple_SET_ITEM(returnValue, 3, polyproxy); + PyTuple_SET_ITEM(returnValue, 3, polyproxy->NewProxy(true)); } else { @@ -2708,7 +2705,7 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py } if (PyString_Check(value)) { - *object = (KX_GameObject *)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String( PyString_AsString(value) )); + *object = (KX_GameObject*)SCA_ILogicBrick::m_sCurrentLogicManager->GetGameObjectByName(STR_String( PyString_AsString(value) )); if (*object) { return true; @@ -2719,11 +2716,13 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py } if (PyObject_TypeCheck(value, &KX_GameObject::Type)) { - *object = static_cast(value); + *object = static_castBGE_PROXY_REF(value); /* sets the error */ - if ((*object)->IsZombiePyErr()) + if (*object==NULL) { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); return false; + } return true; } diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index dd85c2f2faa..89517bd76ce 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -807,6 +807,10 @@ public: } KX_ClientObjectInfo* getClientInfo() { return m_pClient_info; } + + CListValue* GetChildren(); + CListValue* GetChildrenRecursive(); + /** * @section Python interface functions. */ @@ -816,8 +820,6 @@ public: virtual int py_delattro(PyObject *attr); virtual PyObject* py_repr(void) { - if (IsZombiePyErr()) - return NULL; return PyString_FromString(GetName().ReadPtr()); } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 93d92480b3d..09e19933dd9 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -232,7 +232,7 @@ PyObject* KX_MeshProxy::PyGetVertex(PyObject* self, RAS_TexVert* vertex = m_meshobj->GetVertex(matindex,vertexindex); if (vertex) { - vertexob = new KX_VertexProxy(this, vertex); + vertexob = (new KX_VertexProxy(this, vertex))->NewProxy(true); } } else { @@ -263,7 +263,7 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* self, RAS_Polygon* polygon = m_meshobj->GetPolygon(polyindex); if (polygon) { - polyob = new KX_PolyProxy(m_meshobj, polygon); + polyob = (new KX_PolyProxy(m_meshobj, polygon))->NewProxy(true); } else { PyErr_SetString(PyExc_AttributeError, "polygon is NULL, unknown reason"); @@ -297,13 +297,11 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_ if(polymat->GetFlag() & RAS_BLENDERMAT) { KX_BlenderMaterial *mat = static_cast(polymat); - PyList_SET_ITEM(materials, i, mat); - Py_INCREF(mat); + PyList_SET_ITEM(materials, i, mat->GetProxy()); } else { KX_PolygonMaterial *mat = static_cast(polymat); - PyList_SET_ITEM(materials, i, mat); - Py_INCREF(mat); + PyList_SET_ITEM(materials, i, mat->GetProxy()); } } return materials; diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index 65190937f35..e1b89eb3095 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -396,7 +396,7 @@ PyObject* KX_MouseFocusSensor::PyGetHitObject(PyObject* self) ShowDeprecationWarning("GetHitObject()", "the hitObject property"); if (m_hitObject) - return m_hitObject->AddRef(); + return m_hitObject->GetProxy(); Py_RETURN_NONE; } @@ -487,7 +487,7 @@ PyObject* KX_MouseFocusSensor::pyattr_get_hit_object(void *self_v, const KX_PYAT KX_MouseFocusSensor* self= static_cast(self_v); if(self->m_hitObject) - return self->m_hitObject->AddRef(); + return self->m_hitObject->GetProxy(); Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index d0d441e2c1c..a667b459c22 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -184,7 +184,7 @@ PyObject* KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATT if (!actuator->m_ob) Py_RETURN_NONE; else - return actuator->m_ob->AddRef(); + return actuator->m_ob->GetProxy(); } int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) @@ -261,7 +261,7 @@ PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args) if (ret_name_only) return PyString_FromString(m_ob->GetName()); else - return m_ob->AddRef(); + return m_ob->GetProxy(); } /* <----- */ diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index e102ca4e0e6..c03d585395c 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -109,14 +109,12 @@ PyObject* KX_PolyProxy::py_getattro(PyObject *attr) if(polymat->GetFlag() & RAS_BLENDERMAT) { KX_BlenderMaterial* mat = static_cast(polymat); - Py_INCREF(mat); - return mat; + return mat->GetProxy(); } else { KX_PolygonMaterial* mat = static_cast(polymat); - Py_INCREF(mat); - return mat; + return mat->GetProxy(); } } if (!strcmp(attr_str, "matid")) @@ -258,7 +256,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_PolyProxy, getMesh, "getMesh() : returns a mesh proxy\n") { KX_MeshProxy* meshproxy = new KX_MeshProxy((RAS_MeshObject*)m_mesh); - return meshproxy; + return meshproxy->NewProxy(true); } KX_PYMETHODDEF_DOC_NOARGS(KX_PolyProxy, getMaterial, @@ -268,13 +266,11 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_PolyProxy, getMaterial, if(polymat->GetFlag() & RAS_BLENDERMAT) { KX_BlenderMaterial* mat = static_cast(polymat); - Py_INCREF(mat); - return mat; + return mat->GetProxy(); } else { KX_PolygonMaterial* mat = static_cast(polymat); - Py_INCREF(mat); - return mat; + return mat->GetProxy(); } } diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index 056442f77d9..bf1fbe386e6 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -98,8 +98,7 @@ bool KX_PolygonMaterial::Activate(RAS_IRasterizer* rasty, TCachingInfo& cachingI { PyObject *pyRasty = PyCObject_FromVoidPtr((void*)rasty, NULL); /* new reference */ PyObject *pyCachingInfo = PyCObject_FromVoidPtr((void*) &cachingInfo, NULL); /* new reference */ - - PyObject *ret = PyObject_CallMethod(m_pymaterial, "activate", "(NNO)", pyRasty, pyCachingInfo, (PyObject*) this); + PyObject *ret = PyObject_CallMethod(m_pymaterial, "activate", "(NNO)", pyRasty, pyCachingInfo, (PyObject*) this->m_proxy); if (ret) { bool value = PyInt_AsLong(ret); diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index 34c975f6bf6..2c65c184a9c 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -381,7 +381,7 @@ static PyObject* gPyGetVehicleConstraint(PyObject* self, if (vehicle) { KX_VehicleWrapper* pyWrapper = new KX_VehicleWrapper(vehicle,PHY_GetActiveEnvironment()); - return pyWrapper; + return pyWrapper->NewProxy(true); } } @@ -440,7 +440,7 @@ static PyObject* gPyCreateConstraint(PyObject* self, KX_ConstraintWrapper* wrap = new KX_ConstraintWrapper((enum PHY_ConstraintType)constrainttype,constraintid,PHY_GetActiveEnvironment()); - return wrap; + return wrap->NewProxy(true); } diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 7643a043a7c..1c3bb250b03 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -359,8 +359,7 @@ static STR_String gPyGetCurrentScene_doc = "Gets a reference to the current scene.\n"; static PyObject* gPyGetCurrentScene(PyObject* self) { - Py_INCREF(gp_KetsjiScene); - return (PyObject*) gp_KetsjiScene; + return gp_KetsjiScene->GetProxy(); } static STR_String gPyGetSceneList_doc = @@ -369,7 +368,6 @@ static STR_String gPyGetSceneList_doc = static PyObject* gPyGetSceneList(PyObject* self) { KX_KetsjiEngine* m_engine = KX_GetActiveEngine(); - //CListValue* list = new CListValue(); PyObject* list; KX_SceneList* scenes = m_engine->CurrentScenes(); int numScenes = scenes->size(); @@ -380,13 +378,10 @@ static PyObject* gPyGetSceneList(PyObject* self) for (i=0;iat(i); - //list->Add(scene); - PyList_SET_ITEM(list, i, scene); - Py_INCREF(scene); - + PyList_SET_ITEM(list, i, scene->GetProxy()); } - return (PyObject*)list; + return list; } static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *) diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 06163ec8c4f..2bf60dbc102 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -98,7 +98,7 @@ void initPyObjectPlusType(PyTypeObject **parents) } #if 0 - PyObject_Print((PyObject *)parents[i], stderr, 0); + PyObject_Print(reinterpret_castparents[i], stderr, 0); fprintf(stderr, "\n"); PyObject_Print(parents[i]->tp_dict, stderr, 0); fprintf(stderr, "\n\n"); @@ -117,7 +117,7 @@ void initPyObjectPlusType(PyTypeObject **parents) dict= parents[i]->tp_dict; #if 1 - PyObject_Print((PyObject *)parents[i], stderr, 0); + PyObject_Print(reinterpret_cast(parents[i]), stderr, 0); fprintf(stderr, "\n"); PyObject_Print(parents[i]->tp_dict, stderr, 0); fprintf(stderr, "\n\n"); @@ -135,7 +135,7 @@ static void PyType_Ready_ADD(PyObject *dict, PyTypeObject *tp, PyAttributeDef *a PyObject *item; PyType_Ready(tp); - PyDict_SetItemString(dict, tp->tp_name, (PyObject *)tp); + PyDict_SetItemString(dict, tp->tp_name, reinterpret_cast(tp)); /* store attr defs in the tp_dict for to avoid string lookups */ for(attr= attributes; attr->m_name; attr++) { diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index 42e2fdc3e14..9dfc8243330 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -375,7 +375,7 @@ PyObject* KX_RaySensor::pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_ { KX_RaySensor* self = static_cast(self_v); if (self->m_hitObject) - return self->m_hitObject->AddRef(); + return self->m_hitObject->GetProxy(); Py_RETURN_NONE; } @@ -389,7 +389,7 @@ PyObject* KX_RaySensor::PyGetHitObject(PyObject* self) ShowDeprecationWarning("getHitObject()", "the hitObject property"); if (m_hitObject) { - return m_hitObject->AddRef(); + return m_hitObject->GetProxy(); } Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 65b654ccba4..975e6d9d6cc 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -223,7 +223,7 @@ PyObject* KX_SCA_AddObjectActuator::pyattr_get_object(void *self, const struct K if (!actuator->m_OriginalObject) Py_RETURN_NONE; else - return actuator->m_OriginalObject->AddRef(); + return actuator->m_OriginalObject->GetProxy(); } int KX_SCA_AddObjectActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) @@ -251,7 +251,7 @@ PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, con if (!actuator->m_lastCreatedObject) Py_RETURN_NONE; else - return actuator->m_lastCreatedObject->AddRef(); + return actuator->m_lastCreatedObject->GetProxy(); } @@ -350,7 +350,7 @@ PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self, PyObject* args) if (ret_name_only) return PyString_FromString(m_OriginalObject->GetName()); else - return m_OriginalObject->AddRef(); + return m_OriginalObject->GetProxy(); } @@ -492,8 +492,7 @@ PyObject* KX_SCA_AddObjectActuator::PyGetLastCreatedObject(PyObject* self) // it means the object has ended, The BGE python api crashes in many places if the object is returned. if (result && (static_cast(result))->GetSGNode()) { - result->AddRef(); - return result; + return result->GetProxy(); } // don't return NULL to python anymore, it gives trouble in the scripts Py_RETURN_NONE; diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 9097ca6c85e..999b017b64c 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -110,7 +110,7 @@ PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct K if (!actuator->m_mesh) Py_RETURN_NONE; KX_MeshProxy* meshproxy = new KX_MeshProxy(actuator->m_mesh); - return meshproxy; + return meshproxy->NewProxy(true); } int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index c99fa363ffe..d8d6f215213 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -924,8 +924,6 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj) { int ret; KX_GameObject* newobj = (KX_GameObject*) gameobj; - - gameobj->SetZombie(true); /* disallow future python access */ // keep the blender->game object association up to date // note that all the replicas of an object will have the same @@ -1623,13 +1621,13 @@ PyObject* KX_Scene::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attr PyObject* KX_Scene::pyattr_get_objects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_Scene* self= static_cast(self_v); - return self->GetObjectList()->AddRef(); + return self->GetObjectList()->GetProxy(); } PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_Scene* self= static_cast(self_v); - return self->GetActiveCamera()->AddRef(); + return self->GetActiveCamera()->GetProxy(); } /* __dict__ only for the purpose of giving useful dir() results */ @@ -1717,7 +1715,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getLightList, "Returns a list of all lights in the scene.\n" ) { - return (PyObject*) m_lightlist->AddRef(); + return m_lightlist->GetProxy(); } KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getObjectList, @@ -1726,7 +1724,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getObjectList, ) { // ShowDeprecationWarning("getObjectList()", "the objects property"); // XXX Grr, why doesnt this work? - return (PyObject*) m_objectlist->AddRef(); + return m_objectlist->GetProxy(); } KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getName, @@ -1755,6 +1753,5 @@ KX_PYMETHODDEF_DOC(KX_Scene, addObject, SCA_IObject* replica = AddReplicaObject((SCA_IObject*)ob, other, time); - replica->AddRef(); - return replica; + return replica->GetProxy(); } \ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 2d3022a68f7..b52cc81f68b 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -291,23 +291,39 @@ PyObject* KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTR KX_SceneActuator* actuator = static_cast(self); if (!actuator->m_camera) Py_RETURN_NONE; - actuator->m_camera->AddRef(); - return actuator->m_camera; + + return actuator->m_camera->GetProxy(); } int KX_SceneActuator::pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_SceneActuator* actuator = static_cast(self); KX_Camera *camOb; - - if (PyObject_TypeCheck(value, &KX_Camera::Type)) + + if(value==Py_None) { - camOb = static_cast(value); if (actuator->m_camera) actuator->m_camera->UnregisterActuator(actuator); - actuator->m_camera = camOb; + + actuator->m_camera= NULL; + return 0; + } + + if (PyObject_TypeCheck(value, &KX_Camera::Type)) + { + KX_Camera *camOb= static_castBGE_PROXY_REF(value); + + if(camOb==NULL) + { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + return 1; + } + if (actuator->m_camera) - actuator->m_camera->RegisterActuator(actuator); + actuator->m_camera->UnregisterActuator(actuator); + + actuator->m_camera = camOb; + actuator->m_camera->RegisterActuator(actuator); return 0; } @@ -423,11 +439,21 @@ PyObject* KX_SceneActuator::PySetCamera(PyObject* self, PyObject *cam; if (PyArg_ParseTuple(args, "O!:setCamera", &KX_Camera::Type, &cam)) { + KX_Camera *new_camera; + + new_camera = static_castBGE_PROXY_REF(cam); + if(new_camera==NULL) + { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + return NULL; + } + if (m_camera) m_camera->UnregisterActuator(this); - m_camera = (KX_Camera*) cam; - if (m_camera) - m_camera->RegisterActuator(this); + + m_camera= new_camera; + + m_camera->RegisterActuator(this); Py_RETURN_NONE; } PyErr_Clear(); diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index 70fa6326c19..7265ade6789 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -342,7 +342,7 @@ PyObject* KX_TouchSensor::PyGetHitObject(PyObject* self) /* otherwise, this leaks memory */ if (m_hitObject) { - return m_hitObject->AddRef(); + return m_hitObject->GetProxy(); } Py_RETURN_NONE; } @@ -356,7 +356,7 @@ PyObject* KX_TouchSensor::PyGetHitObjectList(PyObject* self) ShowDeprecationWarning("getHitObjectList()", "the objectHitList property"); /* to do: do Py_IncRef if the object is already known in Python */ /* otherwise, this leaks memory */ /* Edit, this seems ok and not to leak memory - Campbell */ - return m_colliders->AddRef(); + return m_colliders->GetProxy(); } /*getTouchMaterial and setTouchMaterial were never added to the api, @@ -400,7 +400,7 @@ PyObject* KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBU KX_TouchSensor* self= static_cast(self_v); if (self->m_hitObject) - return self->m_hitObject->AddRef(); + return self->m_hitObject->GetProxy(); else Py_RETURN_NONE; } @@ -408,7 +408,7 @@ PyObject* KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBU PyObject* KX_TouchSensor::pyattr_get_object_hit_list(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) { KX_TouchSensor* self= static_cast(self_v); - return self->m_colliders->AddRef(); + return self->m_colliders->GetProxy(); } diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 29c6a21b0b3..5ea08f855a3 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -481,7 +481,7 @@ PyObject* KX_TrackToActuator::pyattr_get_object(void *self, const struct KX_PYAT if (!actuator->m_object) Py_RETURN_NONE; else - return actuator->m_object->AddRef(); + return actuator->m_object->GetProxy(); } int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) @@ -560,7 +560,7 @@ PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args) if (ret_name_only) return PyString_FromString(m_object->GetName()); else - return m_object->AddRef(); + return m_object->GetProxy(); } diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 98f5a1ea87d..0ba55fe5986 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -48,7 +48,10 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self, if (PyArg_ParseTuple(args,"OOOOffi:addWheel",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering)) { - KX_GameObject* gameOb = (KX_GameObject*) wheelGameObject; + KX_GameObject *gameOb; + if (!ConvertPythonToGameObject(wheelGameObject, &gameOb, false)) + return NULL; + if (gameOb->GetSGNode()) { diff --git a/source/gameengine/VideoTexture/FilterSource.h b/source/gameengine/VideoTexture/FilterSource.h index 6385ed5108f..254e0a02679 100644 --- a/source/gameengine/VideoTexture/FilterSource.h +++ b/source/gameengine/VideoTexture/FilterSource.h @@ -225,7 +225,7 @@ protected: // otherwise if only vertical interpolation is needed } } - else if ((y & 1) == 1) + else if ((y & 1) == 1) { // if this pixel is on the edge if (isEdge(x, y, size)) { @@ -239,6 +239,7 @@ protected: d = interpolV(m_buffU + offset) - 128; e = interpolV(m_buffV + offset) - 128; } + } // convert to RGB // R = clip(( 298 * C + 409 * E + 128) >> 8) // G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8) diff --git a/source/gameengine/VideoTexture/ImageRender.cpp b/source/gameengine/VideoTexture/ImageRender.cpp index 6ef62f64d3f..9a3c4fea70e 100644 --- a/source/gameengine/VideoTexture/ImageRender.cpp +++ b/source/gameengine/VideoTexture/ImageRender.cpp @@ -434,26 +434,35 @@ static int ImageMirror_init (PyObject * pySelf, PyObject * args, PyObject * kwds { // get scene pointer KX_Scene * scenePtr (NULL); - if (scene != NULL && PyObject_TypeCheck(scene, &KX_Scene::Type)) - scenePtr = static_cast(scene); - else + if (scene != NULL && PyObject_TypeCheck(scene, &KX_Scene::Type)) + scenePtr = static_castBGE_PROXY_REF(scene); + else THRWEXCP(SceneInvalid, S_OK); - + + if(scenePtr==NULL) /* incase the python proxy reference is invalid */ + THRWEXCP(SceneInvalid, S_OK); + // get observer pointer KX_GameObject * observerPtr (NULL); if (observer != NULL && PyObject_TypeCheck(observer, &KX_GameObject::Type)) - observerPtr = static_cast(observer); + observerPtr = static_castBGE_PROXY_REF(observer); else if (observer != NULL && PyObject_TypeCheck(observer, &KX_Camera::Type)) - observerPtr = static_cast(observer); + observerPtr = static_castBGE_PROXY_REF(observer); else THRWEXCP(ObserverInvalid, S_OK); + + if(observerPtr==NULL) /* incase the python proxy reference is invalid */ + THRWEXCP(ObserverInvalid, S_OK); // get mirror pointer KX_GameObject * mirrorPtr (NULL); if (mirror != NULL && PyObject_TypeCheck(mirror, &KX_GameObject::Type)) - mirrorPtr = static_cast(mirror); + mirrorPtr = static_castBGE_PROXY_REF(mirror); else THRWEXCP(MirrorInvalid, S_OK); + + if(mirrorPtr==NULL) /* incase the python proxy reference is invalid */ + THRWEXCP(MirrorInvalid, S_OK); // locate the material in the mirror RAS_IPolyMaterial * material = getMaterial(mirror, materialID); From 7dbc9dc719c3eb0823e4f9e7ae94a479f9427ea7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 14:57:52 +0000 Subject: [PATCH 188/201] BGE Python API cleanup - no functionality changes - comments to PyObjectPlus.h - remove unused/commented junk. - renamed PyDestructor to py_base_dealloc for consistency - all the PyTypeObject's were still using the sizeof() their class, can use sizeof(PyObjectPlus_Proxy) now which is smaller too. --- .../Converter/BL_ActionActuator.cpp | 4 +- .../Converter/BL_ShapeActionActuator.cpp | 4 +- source/gameengine/Expressions/ListValue.cpp | 4 +- .../gameengine/Expressions/PyObjectPlus.cpp | 93 ++++++++-------- source/gameengine/Expressions/PyObjectPlus.h | 102 +++++------------- source/gameengine/Expressions/Value.cpp | 4 +- .../GameLogic/SCA_2DFilterActuator.cpp | 4 +- .../GameLogic/SCA_ANDController.cpp | 4 +- .../GameLogic/SCA_ActuatorSensor.cpp | 4 +- .../gameengine/GameLogic/SCA_AlwaysSensor.cpp | 4 +- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 4 +- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 4 +- source/gameengine/GameLogic/SCA_IObject.cpp | 4 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 4 +- .../GameLogic/SCA_JoystickSensor.cpp | 4 +- .../GameLogic/SCA_KeyboardSensor.cpp | 4 +- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 4 +- .../GameLogic/SCA_NANDController.cpp | 4 +- .../GameLogic/SCA_NORController.cpp | 4 +- .../gameengine/GameLogic/SCA_ORController.cpp | 4 +- .../GameLogic/SCA_PropertyActuator.cpp | 4 +- .../GameLogic/SCA_PropertySensor.cpp | 4 +- .../GameLogic/SCA_PythonController.cpp | 12 +-- .../GameLogic/SCA_RandomActuator.cpp | 4 +- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 4 +- .../GameLogic/SCA_XNORController.cpp | 4 +- .../GameLogic/SCA_XORController.cpp | 4 +- source/gameengine/Ketsji/BL_Shader.cpp | 4 +- .../KXNetwork/KX_NetworkMessageActuator.cpp | 4 +- .../KXNetwork/KX_NetworkMessageSensor.cpp | 4 +- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 4 +- source/gameengine/Ketsji/KX_CDActuator.cpp | 4 +- source/gameengine/Ketsji/KX_Camera.cpp | 4 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 4 +- .../Ketsji/KX_ConstraintActuator.cpp | 4 +- .../Ketsji/KX_ConstraintWrapper.cpp | 4 +- source/gameengine/Ketsji/KX_GameActuator.cpp | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 4 +- source/gameengine/Ketsji/KX_IpoActuator.cpp | 4 +- source/gameengine/Ketsji/KX_Light.cpp | 4 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 4 +- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 4 +- source/gameengine/Ketsji/KX_NearSensor.cpp | 4 +- .../gameengine/Ketsji/KX_ObjectActuator.cpp | 4 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 4 +- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 4 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 4 +- .../gameengine/Ketsji/KX_PolygonMaterial.cpp | 4 +- source/gameengine/Ketsji/KX_RadarSensor.cpp | 4 +- source/gameengine/Ketsji/KX_RaySensor.cpp | 4 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 4 +- .../Ketsji/KX_SCA_DynamicActuator.cpp | 4 +- .../Ketsji/KX_SCA_EndObjectActuator.cpp | 4 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 4 +- source/gameengine/Ketsji/KX_Scene.cpp | 4 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 4 +- source/gameengine/Ketsji/KX_SoundActuator.cpp | 4 +- source/gameengine/Ketsji/KX_StateActuator.cpp | 4 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 4 +- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 4 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 4 +- source/gameengine/Ketsji/KX_VertexProxy.cpp | 4 +- .../Ketsji/KX_VisibilityActuator.cpp | 4 +- 63 files changed, 200 insertions(+), 247 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 960eafda230..530a74dfb12 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -968,9 +968,9 @@ PyTypeObject BL_ActionActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "BL_ActionActuator", - sizeof(BL_ActionActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 0d35b26d604..783fdd814b7 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -423,9 +423,9 @@ PyTypeObject BL_ShapeActionActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "BL_ShapeActionActuator", - sizeof(BL_ShapeActionActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index eaed2b5c400..5bb1eb0aeb9 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -223,10 +223,10 @@ PyTypeObject CListValue::Type = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "CListValue", /*tp_name*/ - sizeof(CListValue), /*tp_basicsize*/ + sizeof(PyObjectPlus_Proxy), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ - PyDestructor, /*tp_dealloc*/ + py_base_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 2c5ba3f39fc..3c414c6b16d 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -59,10 +59,10 @@ PyTypeObject PyObjectPlus::Type = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "PyObjectPlus", /*tp_name*/ - sizeof(PyObjectPlus), /*tp_basicsize*/ + sizeof(PyObjectPlus_Proxy), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ - PyDestructor, + py_base_dealloc, 0, 0, 0, @@ -85,7 +85,7 @@ PyObjectPlus::~PyObjectPlus() // assert(ob_refcnt==0); } -void PyObjectPlus::PyDestructor(PyObject *self) // python wrapper +void PyObjectPlus::py_base_dealloc(PyObject *self) // python wrapper { PyObjectPlus *self_plus= BGE_PROXY_REF(self); if(self_plus) { @@ -108,7 +108,7 @@ PyObjectPlus::PyObjectPlus(PyTypeObject *T) // constructor * PyObjectPlus Methods -- Every class, even the abstract one should have a Methods ------------------------------*/ PyMethodDef PyObjectPlus::Methods[] = { - {"isA", (PyCFunction) sPy_isA, METH_O}, + {"isA", (PyCFunction) sPyisA, METH_O}, {NULL, NULL} /* Sentinel */ }; @@ -130,6 +130,49 @@ PyParentObject PyObjectPlus::Parents[] = {&PyObjectPlus::Type, NULL}; /*------------------------------ * PyObjectPlus attributes -- attributes ------------------------------*/ + + +/* This should be the entry in Type since it takes the C++ class from PyObjectPlus_Proxy */ +PyObject *PyObjectPlus::py_base_getattro(PyObject * self, PyObject *attr) +{ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + if(!strcmp("isValid", PyString_AsString(attr))) { + Py_RETURN_TRUE; + } + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + return NULL; + } + return self_plus->py_getattro(attr); +} + +/* This should be the entry in Type since it takes the C++ class from PyObjectPlus_Proxy */ +int PyObjectPlus::py_base_setattro(PyObject *self, PyObject *attr, PyObject *value) +{ + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + return -1; + } + + if (value==NULL) + return self_plus->py_delattro(attr); + + return self_plus->py_setattro(attr, value); +} + +PyObject *PyObjectPlus::py_base_repr(PyObject *self) // This should be the entry in Type. +{ + + PyObjectPlus *self_plus= BGE_PROXY_REF(self); + if(self_plus==NULL) { + PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + return NULL; + } + + return self_plus->py_repr(); +} + PyObject *PyObjectPlus::py_getattro(PyObject* attr) { PyObject *descr = PyDict_GetItem(Type.tp_dict, attr); \ @@ -151,8 +194,6 @@ PyObject *PyObjectPlus::py_getattro(PyObject* attr) } /* end py_getattro_up copy */ } - //if (streq(attr, "type")) - // return Py_BuildValue("s", (*(GetParents()))->tp_name); } int PyObjectPlus::py_delattro(PyObject* attr) @@ -163,8 +204,6 @@ int PyObjectPlus::py_delattro(PyObject* attr) int PyObjectPlus::py_setattro(PyObject *attr, PyObject* value) { - //return PyObject::py_setattro(attr,value); - //cerr << "Unknown attribute" << endl; PyErr_SetString(PyExc_AttributeError, "attribute cant be set"); return PY_SET_ATTR_MISSING; } @@ -275,20 +314,6 @@ PyObject *PyObjectPlus::py_get_attrdef(void *self, const PyAttributeDef *attrdef } } -#if 0 -PyObject *PyObjectPlus::py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr) -{ - char *attr_str= PyString_AsString(attr); - const PyAttributeDef *attrdef; - - for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) - if (!strcmp(attr_str, attrdef->m_name)) - return py_get_attrdef(self, attrdef); - - return NULL; -} -#endif - int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyObject *value) { void *undoBuffer = NULL; @@ -714,29 +739,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb return 0; } -#if 0 -int PyObjectPlus::py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value) -{ - const PyAttributeDef *attrdef; - char *attr_str= PyString_AsString(attr); - for (attrdef=attrlist; attrdef->m_name != NULL; attrdef++) - { - if (!strcmp(attr_str, attrdef->m_name)) - { - if (attrdef->m_access == KX_PYATTRIBUTE_RO || - attrdef->m_type == KX_PYATTRIBUTE_TYPE_DUMMY) - { - PyErr_SetString(PyExc_AttributeError, "property is read-only"); - return PY_SET_ATTR_FAIL; - } - - return py_set_attrdef(self, attrdef, value); - } - } - return PY_SET_ATTR_MISSING; -} -#endif /*------------------------------ * PyObjectPlus repr -- representations @@ -777,7 +780,7 @@ bool PyObjectPlus::isA(const char *mytypename) // check typename of each parent return false; } -PyObject *PyObjectPlus::Py_isA(PyObject *value) // Python wrapper for isA +PyObject *PyObjectPlus::PyisA(PyObject *self, PyObject *value) // Python wrapper for isA { if (PyType_Check(value)) { return PyBool_FromLong(isA((PyTypeObject *)value)); diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 3be9a2f2bcb..9f30e6570ee 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -50,13 +50,13 @@ also in api2_2x/gen_utils.h */ #ifndef Py_RETURN_NONE -#define Py_RETURN_NONE return Py_BuildValue("O", Py_None) +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None #endif #ifndef Py_RETURN_FALSE -#define Py_RETURN_FALSE return PyBool_FromLong(0) +#define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False #endif #ifndef Py_RETURN_TRUE -#define Py_RETURN_TRUE return PyBool_FromLong(1) +#define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True #endif /* for pre Py 2.5 */ @@ -92,7 +92,7 @@ typedef struct { #define BGE_PROXY_PYOWNS(_self) (((PyObjectPlus_Proxy *)_self)->py_owns) /* Note, sometimes we dont care what BGE type this is as long as its a proxy */ -#define BGE_PROXY_CHECK_TYPE(_self) ((_self)->ob_type->tp_dealloc == PyDestructor) +#define BGE_PROXY_CHECK_TYPE(_self) ((_self)->ob_type->tp_dealloc == py_base_dealloc) // This must be the first line of each @@ -429,80 +429,34 @@ public: PyObject *m_proxy; /* actually a PyObjectPlus_Proxy */ virtual ~PyObjectPlus(); // destructor - static void PyDestructor(PyObject *self); // python wrapper -// void INCREF(void) { -// Py_INCREF(this); -// }; // incref method -// void DECREF(void) { -// Py_DECREF(this); -// }; // decref method + /* These static functions are referenced by ALL PyObjectPlus_Proxy types + * they take the C++ reference from the PyObjectPlus_Proxy and call + * its own virtual py_getattro, py_setattro etc. functions. + */ + static void py_base_dealloc(PyObject *self); + static PyObject* py_base_getattro(PyObject * self, PyObject *attr); + static int py_base_setattro(PyObject *self, PyObject *attr, PyObject *value); + static PyObject* py_base_repr(PyObject *self); + + /* These are all virtual python methods that are defined in each class + * Our own fake subclassing calls these on each class, then calls the parent */ + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_delattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); + virtual PyObject* py_repr(void); + + static PyObject* py_get_attrdef(void *self, const PyAttributeDef *attrdef); + static int py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyObject *value); - virtual PyObject *py_getattro(PyObject *attr); // py_getattro method - static PyObject *py_base_getattro(PyObject * self, PyObject *attr) // This should be the entry in Type. - { - PyObjectPlus *self_plus= BGE_PROXY_REF(self); - if(self_plus==NULL) { - if(!strcmp("isValid", PyString_AsString(attr))) { - Py_RETURN_TRUE; - } - PyErr_SetString(PyExc_RuntimeError, "data has been removed"); - return NULL; - } - return self_plus->py_getattro(attr); - } - - static PyObject* py_get_attrdef(void *self, const PyAttributeDef *attrdef); - static int py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyObject *value); - -#if 0 - static PyObject *py_getattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr); - static int py_setattro_self(const PyAttributeDef attrlist[], void *self, PyObject *attr, PyObject *value); -#endif - - virtual int py_delattro(PyObject *attr); - virtual int py_setattro(PyObject *attr, PyObject *value); // py_setattro method - static int py_base_setattro(PyObject *self, PyObject *attr, PyObject *value) // the PyType should reference this - { - PyObjectPlus *self_plus= BGE_PROXY_REF(self); - if(self_plus==NULL) { - PyErr_SetString(PyExc_RuntimeError, "data has been removed"); - return -1; - } - - if (value==NULL) - return self_plus->py_delattro(attr); - - return self_plus->py_setattro(attr, value); - } - - virtual PyObject *py_repr(void); // py_repr method - static PyObject *py_base_repr(PyObject *self) // This should be the entry in Type. - { - - PyObjectPlus *self_plus= BGE_PROXY_REF(self); - if(self_plus==NULL) { - PyErr_SetString(PyExc_RuntimeError, "data has been removed"); - return NULL; - } - - return self_plus->py_repr(); - } - - // isA methods + /* isA() methods, shonky replacement for pythons issubclass() + * which we cant use because we have our own subclass system */ bool isA(PyTypeObject *T); bool isA(const char *mytypename); - PyObject *Py_isA(PyObject *value); - static PyObject *sPy_isA(PyObject *self, PyObject *value) - { - PyObjectPlus *self_plus= BGE_PROXY_REF(self); - if(self_plus==NULL) { - PyErr_SetString(PyExc_RuntimeError, "data has been removed"); - return NULL; - } - - return self_plus->Py_isA(value); - } + PyObject *PyisA(PyObject *value); + //static PyObject *sPy_isA(PyObject *self, PyObject *value); + + KX_PYMETHOD_O(PyObjectPlus,isA); /* Kindof dumb, always returns True, the false case is checked for, before this function gets accessed */ static PyObject* pyattr_get_is_valid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 7958c16ca81..17813d0ab52 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -40,9 +40,9 @@ PyTypeObject CValue::Type = { PyObject_HEAD_INIT(NULL) 0, "CValue", - sizeof(CValue), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp index 171d3fbc265..251a586308e 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp @@ -113,9 +113,9 @@ PyTypeObject SCA_2DFilterActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_2DFilterActuator", - sizeof(SCA_2DFilterActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp index cb62e2b5a1d..1cb03f375cb 100644 --- a/source/gameengine/GameLogic/SCA_ANDController.cpp +++ b/source/gameengine/GameLogic/SCA_ANDController.cpp @@ -110,9 +110,9 @@ PyTypeObject SCA_ANDController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_ANDController", - sizeof(SCA_ANDController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index 99f3788ad2e..c51555a02b4 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -125,9 +125,9 @@ PyTypeObject SCA_ActuatorSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_ActuatorSensor", - sizeof(SCA_ActuatorSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp index a7b0e5a14d2..b7ecb0233a1 100644 --- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp +++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp @@ -108,9 +108,9 @@ PyTypeObject SCA_AlwaysSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_AlwaysSensor", - sizeof(SCA_AlwaysSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index 3f08f301dc1..dad85a435c8 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -134,9 +134,9 @@ PyTypeObject SCA_DelaySensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_DelaySensor", - sizeof(SCA_DelaySensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 7fa55cfb1ee..1ae78321959 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -220,9 +220,9 @@ PyTypeObject SCA_ILogicBrick::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_ILogicBrick", - sizeof(SCA_ILogicBrick), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp index d1ce377316b..75804525e7a 100644 --- a/source/gameengine/GameLogic/SCA_IObject.cpp +++ b/source/gameengine/GameLogic/SCA_IObject.cpp @@ -378,9 +378,9 @@ PyTypeObject SCA_IObject::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_IObject", - sizeof(SCA_IObject), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 3c21cf66e09..269038db4f9 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -396,9 +396,9 @@ PyTypeObject SCA_ISensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_ISensor", - sizeof(SCA_ISensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 9cf850ceb3e..087fb036fae 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -269,9 +269,9 @@ PyTypeObject SCA_JoystickSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_JoystickSensor", - sizeof(SCA_JoystickSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 0bf19360b15..3e19c880c4d 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -615,9 +615,9 @@ PyTypeObject SCA_KeyboardSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_KeyboardSensor", - sizeof(SCA_KeyboardSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 86e64491f6a..0c30f503068 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -303,9 +303,9 @@ PyTypeObject SCA_MouseSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_MouseSensor", - sizeof(SCA_MouseSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_NANDController.cpp b/source/gameengine/GameLogic/SCA_NANDController.cpp index bddd5f4d3ab..703c9c1bbaf 100644 --- a/source/gameengine/GameLogic/SCA_NANDController.cpp +++ b/source/gameengine/GameLogic/SCA_NANDController.cpp @@ -110,9 +110,9 @@ PyTypeObject SCA_NANDController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_NANDController", - sizeof(SCA_NANDController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_NORController.cpp b/source/gameengine/GameLogic/SCA_NORController.cpp index 3ee073523c3..06acae5a81a 100644 --- a/source/gameengine/GameLogic/SCA_NORController.cpp +++ b/source/gameengine/GameLogic/SCA_NORController.cpp @@ -110,9 +110,9 @@ PyTypeObject SCA_NORController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_NORController", - sizeof(SCA_NORController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp index 91d5e56d4f3..319ff04f776 100644 --- a/source/gameengine/GameLogic/SCA_ORController.cpp +++ b/source/gameengine/GameLogic/SCA_ORController.cpp @@ -102,9 +102,9 @@ PyTypeObject SCA_ORController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_ORController", - sizeof(SCA_ORController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 9dbdc0e89d1..4bcb59d0812 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -236,9 +236,9 @@ PyTypeObject SCA_PropertyActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_PropertyActuator", - sizeof(SCA_PropertyActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index 9ae7be16b12..5c8a14db563 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -309,9 +309,9 @@ PyTypeObject SCA_PropertySensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_PropertySensor", - sizeof(SCA_PropertySensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 687ae421af1..0d096385fa9 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -227,9 +227,9 @@ PyTypeObject SCA_PythonController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_PythonController", - sizeof(SCA_PythonController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, @@ -441,9 +441,7 @@ SCA_PythonController::PyGetSensor(PyObject* self, PyObject* value) } } - char emsg[96]; - PyOS_snprintf( emsg, sizeof( emsg ), "Unable to find requested sensor \"%s\"", scriptArg ); - PyErr_SetString(PyExc_AttributeError, emsg); + PyErr_Format(PyExc_AttributeError, "Unable to find requested sensor \"%s\"", scriptArg); return NULL; } @@ -470,9 +468,7 @@ SCA_PythonController::PyGetActuator(PyObject* self, PyObject* value) } } - char emsg[96]; - PyOS_snprintf( emsg, sizeof( emsg ), "Unable to find requested actuator \"%s\"", scriptArg ); - PyErr_SetString(PyExc_AttributeError, emsg); + PyErr_Format(PyExc_AttributeError, "Unable to find requested actuator \"%s\"", scriptArg); return NULL; } diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index d5d993c4ba6..7a3fdc862f6 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -315,9 +315,9 @@ PyTypeObject SCA_RandomActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_RandomActuator", - sizeof(SCA_RandomActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index 3179c8522f9..b0bc518825b 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -130,9 +130,9 @@ PyTypeObject SCA_RandomSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_RandomSensor", - sizeof(SCA_RandomSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_XNORController.cpp b/source/gameengine/GameLogic/SCA_XNORController.cpp index 10757e1c935..e9bb37ee958 100644 --- a/source/gameengine/GameLogic/SCA_XNORController.cpp +++ b/source/gameengine/GameLogic/SCA_XNORController.cpp @@ -114,9 +114,9 @@ PyTypeObject SCA_XNORController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_XNORController", - sizeof(SCA_XNORController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/GameLogic/SCA_XORController.cpp b/source/gameengine/GameLogic/SCA_XORController.cpp index d2290fe207a..791a139975f 100644 --- a/source/gameengine/GameLogic/SCA_XORController.cpp +++ b/source/gameengine/GameLogic/SCA_XORController.cpp @@ -114,9 +114,9 @@ PyTypeObject SCA_XORController::Type = { PyObject_HEAD_INIT(NULL) 0, "SCA_XORController", - sizeof(SCA_XORController), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index aae4fd74a08..01b6805ae7a 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -775,9 +775,9 @@ PyTypeObject BL_Shader::Type = { PyObject_HEAD_INIT(NULL) 0, "BL_Shader", - sizeof(BL_Shader), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index d6d59692745..c3b27d4d6e6 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -108,9 +108,9 @@ PyTypeObject KX_NetworkMessageActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageActuator", - sizeof(KX_NetworkMessageActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 8aca2e372d1..9fd30450515 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -171,9 +171,9 @@ PyTypeObject KX_NetworkMessageSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageSensor", - sizeof(KX_NetworkMessageSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index bdad21f76eb..6722cd232fe 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -756,9 +756,9 @@ PyTypeObject KX_BlenderMaterial::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_BlenderMaterial", - sizeof(KX_BlenderMaterial), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index c3d28656159..56610f2e787 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -161,9 +161,9 @@ PyTypeObject KX_CDActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SoundActuator", - sizeof(KX_CDActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp index daa37056d68..db8186e4586 100644 --- a/source/gameengine/Ketsji/KX_Camera.cpp +++ b/source/gameengine/Ketsji/KX_Camera.cpp @@ -509,9 +509,9 @@ PyTypeObject KX_Camera::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_Camera", - sizeof(KX_Camera), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index a1159dbc23f..35165af1f82 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -374,9 +374,9 @@ PyTypeObject KX_CameraActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_CameraActuator", - sizeof(KX_CameraActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index 3b8b4a93fd6..fc15568ae4f 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -569,9 +569,9 @@ PyTypeObject KX_ConstraintActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_ConstraintActuator", - sizeof(KX_ConstraintActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index 6f4d970c568..d5577584616 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -72,9 +72,9 @@ PyTypeObject KX_ConstraintWrapper::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_ConstraintWrapper", - sizeof(KX_ConstraintWrapper), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index cef874900a6..215c30d65b5 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -211,9 +211,9 @@ PyTypeObject KX_GameActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_GameActuator", - sizeof(KX_GameActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 402c242315a..60d2fb0a2f6 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1367,9 +1367,9 @@ PyTypeObject KX_GameObject::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_GameObject", - sizeof(KX_GameObject), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 644f8ac8113..558b77c1f77 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -416,9 +416,9 @@ PyTypeObject KX_IpoActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_IpoActuator", - sizeof(KX_IpoActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp index 29033c2d802..713838c88ec 100644 --- a/source/gameengine/Ketsji/KX_Light.cpp +++ b/source/gameengine/Ketsji/KX_Light.cpp @@ -328,9 +328,9 @@ PyTypeObject KX_LightObject::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_LightObject", - sizeof(KX_LightObject), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 09e19933dd9..8ce5e888349 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -49,9 +49,9 @@ PyTypeObject KX_MeshProxy::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_MeshProxy", - sizeof(KX_MeshProxy), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index e1b89eb3095..b59f18bf935 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -338,9 +338,9 @@ PyTypeObject KX_MouseFocusSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_MouseFocusSensor", - sizeof(KX_MouseFocusSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index b9d1939e5db..0489b7090e9 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -289,9 +289,9 @@ PyTypeObject KX_NearSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_NearSensor", - sizeof(KX_NearSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index 0ea051723dc..4f1890772d7 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -280,9 +280,9 @@ PyTypeObject KX_ObjectActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_ObjectActuator", - sizeof(KX_ObjectActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index a667b459c22..5263dd72065 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -142,9 +142,9 @@ PyTypeObject KX_ParentActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_ParentActuator", - sizeof(KX_ParentActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index 9da86193622..f000d079927 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -124,9 +124,9 @@ PyTypeObject KX_PhysicsObjectWrapper::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_PhysicsObjectWrapper", - sizeof(KX_PhysicsObjectWrapper), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index c03d585395c..e227ba09fba 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -42,9 +42,9 @@ PyTypeObject KX_PolyProxy::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_PolyProxy", - sizeof(KX_PolyProxy), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp index bf1fbe386e6..46d04486cc6 100644 --- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp +++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp @@ -211,9 +211,9 @@ PyTypeObject KX_PolygonMaterial::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_PolygonMaterial", - sizeof(KX_PolygonMaterial), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index b9abe69633e..40af3b22aeb 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -254,9 +254,9 @@ PyTypeObject KX_RadarSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_RadarSensor", - sizeof(KX_RadarSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index 9dfc8243330..080a217b9bd 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -324,9 +324,9 @@ PyTypeObject KX_RaySensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_RaySensor", - sizeof(KX_RaySensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 975e6d9d6cc..1ab4bd21120 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -170,9 +170,9 @@ PyTypeObject KX_SCA_AddObjectActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SCA_AddObjectActuator", - sizeof(KX_SCA_AddObjectActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp index e03b153d813..9c9cdcd6c4c 100644 --- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp @@ -54,9 +54,9 @@ KX_SCA_DynamicActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SCA_DynamicActuator", - sizeof(KX_SCA_DynamicActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp index 0db9e1c4930..3b42577810e 100644 --- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp @@ -97,9 +97,9 @@ PyTypeObject KX_SCA_EndObjectActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SCA_EndObjectActuator", - sizeof(KX_SCA_EndObjectActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 999b017b64c..b678b14c2f5 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -56,9 +56,9 @@ KX_SCA_ReplaceMeshActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SCA_ReplaceMeshActuator", - sizeof(KX_SCA_ReplaceMeshActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index d8d6f215213..96f2f3e8ed3 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1582,9 +1582,9 @@ PyTypeObject KX_Scene::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_Scene", - sizeof(KX_Scene), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index b52cc81f68b..414251d6b06 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -229,9 +229,9 @@ PyTypeObject KX_SceneActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SceneActuator", - sizeof(KX_SceneActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index 6381c43e1c6..d7449c7effa 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -237,9 +237,9 @@ PyTypeObject KX_SoundActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_SoundActuator", - sizeof(KX_SoundActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index a251a987935..3cfa40c6f80 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -112,9 +112,9 @@ PyTypeObject KX_StateActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_StateActuator", - sizeof(KX_StateActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index 7265ade6789..79da4984740 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -245,9 +245,9 @@ PyTypeObject KX_TouchSensor::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_TouchSensor", - sizeof(KX_TouchSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 5ea08f855a3..6c522b35528 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -428,9 +428,9 @@ PyTypeObject KX_TrackToActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_TrackToActuator", - sizeof(KX_TrackToActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 0ba55fe5986..558b2849cc7 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -305,9 +305,9 @@ PyTypeObject KX_VehicleWrapper::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_VehicleWrapper", - sizeof(KX_VehicleWrapper), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index 6a160dff7b7..4954e94f3e4 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -40,9 +40,9 @@ PyTypeObject KX_VertexProxy::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_VertexProxy", - sizeof(KX_VertexProxy), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index fceb0b5922c..6d984f0d77a 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -97,9 +97,9 @@ PyTypeObject KX_VisibilityActuator::Type = { PyObject_HEAD_INIT(NULL) 0, "KX_VisibilityActuator", - sizeof(KX_VisibilityActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, 0, 0, From 7f154456293f49012643508c30f4b1fb40b3f2e5 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 19 Apr 2009 16:35:20 +0000 Subject: [PATCH 189/201] Fix for libopenjpeg to enable win64 compile (is in their tracker and will most likely be included in next release) --- extern/libopenjpeg/opj_includes.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/extern/libopenjpeg/opj_includes.h b/extern/libopenjpeg/opj_includes.h index 80d43df990f..3464cfcf9ed 100644 --- a/extern/libopenjpeg/opj_includes.h +++ b/extern/libopenjpeg/opj_includes.h @@ -88,6 +88,12 @@ Most compilers implement their own version of this keyword ... /* MSVC does not have lrintf */ #ifdef _MSC_VER +#ifdef _M_X64 +#include +static INLINE long lrintf(float f) { + return _mm_cvtss_si32(_mm_load_ss(&f)); +} +#else static INLINE long lrintf(float f){ int i; @@ -99,6 +105,7 @@ static INLINE long lrintf(float f){ return i; } #endif +#endif #include "j2k_lib.h" #include "opj_malloc.h" From fe08da3b4c4097c87c4ee1ee02e9218aaaffde4b Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sun, 19 Apr 2009 17:26:03 +0000 Subject: [PATCH 190/201] BGE: fix Pyfrom_id to work on w64. --- source/gameengine/Expressions/ListValue.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 5bb1eb0aeb9..4e14ce35eb9 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -532,13 +532,7 @@ PyObject* CListValue::Pycount(PyObject* self, PyObject* value) PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) { -#if SIZEOF_VOID_P <= SIZEOF_LONG -#define BGE_ID_TYPE unsigned long - BGE_ID_TYPE id= PyLong_AsUnsignedLong(value); -#else -#define BGE_ID_TYPE unsigned long long - BGE_ID_TYPE id= PyLong_FromUnsignedLongLong(value); -#endif + uintptr_t id= (uintptr_t)PyLong_AsVoidPtr(value); if (PyErr_Occurred()) return NULL; @@ -546,17 +540,14 @@ PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) int numelem = GetCount(); for (int i=0;i(m_pValueArray[i]->m_proxy) == id) + if (reinterpret_cast(m_pValueArray[i]->m_proxy) == id) return GetValue(i)->GetProxy(); - } PyErr_SetString(PyExc_IndexError, "from_id(#), id not found in CValueList"); return NULL; } -#undef BGE_ID_TYPE - /* --------------------------------------------------------------------- * Some stuff taken from the header From 6bc162e679d8b52b28e205de76985a1735abbf0a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 17:29:07 +0000 Subject: [PATCH 191/201] BGE Python API removed redundant (PyObject *self) argument from python functions that are not exposed to python directly. --- .../Converter/BL_ActionActuator.cpp | 64 +++++---------- .../Converter/BL_ShapeActionActuator.cpp | 58 +++++--------- .../Converter/BL_ShapeActionActuator.h | 22 ++--- source/gameengine/Expressions/ListValue.cpp | 12 +-- .../gameengine/Expressions/PyObjectPlus.cpp | 2 +- source/gameengine/Expressions/PyObjectPlus.h | 50 +++++------- source/gameengine/Expressions/Value.cpp | 4 +- .../GameLogic/SCA_ActuatorSensor.cpp | 4 +- .../gameengine/GameLogic/SCA_ActuatorSensor.h | 2 +- .../gameengine/GameLogic/SCA_DelaySensor.cpp | 12 +-- source/gameengine/GameLogic/SCA_DelaySensor.h | 6 +- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 8 +- source/gameengine/GameLogic/SCA_ILogicBrick.h | 2 +- source/gameengine/GameLogic/SCA_ISensor.cpp | 24 +++--- source/gameengine/GameLogic/SCA_ISensor.h | 10 +-- .../GameLogic/SCA_JoystickSensor.cpp | 38 ++++----- .../GameLogic/SCA_KeyboardSensor.cpp | 26 +++--- .../gameengine/GameLogic/SCA_KeyboardSensor.h | 16 ++-- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 8 +- source/gameengine/GameLogic/SCA_MouseSensor.h | 4 +- .../GameLogic/SCA_PropertyActuator.cpp | 8 +- .../GameLogic/SCA_PropertySensor.cpp | 20 ++--- .../gameengine/GameLogic/SCA_PropertySensor.h | 12 +-- .../GameLogic/SCA_PythonController.cpp | 29 +++---- .../GameLogic/SCA_RandomActuator.cpp | 29 ++++--- .../gameengine/GameLogic/SCA_RandomActuator.h | 14 ++-- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 10 +-- .../gameengine/GameLogic/SCA_RandomSensor.h | 8 +- .../KXNetwork/KX_NetworkMessageActuator.cpp | 4 - .../KXNetwork/KX_NetworkMessageSensor.cpp | 10 +-- source/gameengine/Ketsji/KX_CDActuator.cpp | 4 +- source/gameengine/Ketsji/KX_CDActuator.h | 4 +- .../gameengine/Ketsji/KX_CameraActuator.cpp | 38 +++------ source/gameengine/Ketsji/KX_CameraActuator.h | 16 ++-- .../Ketsji/KX_ConstraintActuator.cpp | 54 +++++-------- .../gameengine/Ketsji/KX_ConstraintActuator.h | 18 ++--- .../Ketsji/KX_ConstraintWrapper.cpp | 9 +-- source/gameengine/Ketsji/KX_GameActuator.cpp | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 80 +++++++++---------- source/gameengine/Ketsji/KX_IpoActuator.cpp | 44 ++++------ source/gameengine/Ketsji/KX_IpoActuator.h | 16 ++-- source/gameengine/Ketsji/KX_MeshProxy.cpp | 26 ++---- .../gameengine/Ketsji/KX_MouseFocusSensor.cpp | 12 +-- .../gameengine/Ketsji/KX_ObjectActuator.cpp | 66 +++++---------- source/gameengine/Ketsji/KX_ObjectActuator.h | 22 ++--- .../gameengine/Ketsji/KX_ParentActuator.cpp | 4 +- .../Ketsji/KX_PhysicsObjectWrapper.cpp | 16 +--- .../Ketsji/KX_PhysicsObjectWrapper.h | 8 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 4 +- source/gameengine/Ketsji/KX_PythonInit.cpp | 8 +- .../gameengine/Ketsji/KX_PythonInitTypes.cpp | 2 +- source/gameengine/Ketsji/KX_RadarSensor.cpp | 6 +- source/gameengine/Ketsji/KX_RaySensor.cpp | 8 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 20 ++--- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 2 +- source/gameengine/Ketsji/KX_SceneActuator.cpp | 30 +++---- source/gameengine/Ketsji/KX_SceneActuator.h | 12 +-- source/gameengine/Ketsji/KX_SoundActuator.cpp | 42 +++++----- source/gameengine/Ketsji/KX_SoundActuator.h | 30 +++---- source/gameengine/Ketsji/KX_StateActuator.cpp | 8 +- source/gameengine/Ketsji/KX_StateActuator.h | 4 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 12 +-- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 16 ++-- source/gameengine/Ketsji/KX_TrackToActuator.h | 8 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 60 ++++---------- source/gameengine/Ketsji/KX_VehicleWrapper.h | 30 +++---- source/gameengine/Ketsji/KX_VertexProxy.cpp | 20 ++--- .../Ketsji/KX_VisibilityActuator.cpp | 4 +- .../gameengine/Ketsji/KX_VisibilityActuator.h | 2 +- .../Physics/Bullet/CcdPhysicsController.h | 8 +- 70 files changed, 545 insertions(+), 748 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index 530a74dfb12..f413ad969f4 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -423,8 +423,7 @@ const char BL_ActionActuator::GetAction_doc[] = "getAction()\n" "\tReturns a string containing the name of the current action.\n"; -PyObject* BL_ActionActuator::PyGetAction(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetAction(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getAction()", "the action property"); @@ -439,8 +438,7 @@ const char BL_ActionActuator::GetProperty_doc[] = "getProperty()\n" "\tReturns the name of the property to be used in FromProp mode.\n"; -PyObject* BL_ActionActuator::PyGetProperty(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getProperty()", "the property property"); @@ -456,8 +454,7 @@ const char BL_ActionActuator::GetFrameProperty_doc[] = "getFrameProperty()\n" "\tReturns the name of the property, that is set to the current frame number.\n"; -PyObject* BL_ActionActuator::PyGetFrameProperty(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetFrameProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getFrameProperty()", "the frameProperty property"); @@ -473,8 +470,7 @@ const char BL_ActionActuator::GetFrame_doc[] = "getFrame()\n" "\tReturns the current frame number.\n"; -PyObject* BL_ActionActuator::PyGetFrame(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetFrame(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getFrame()", "the frame property"); @@ -490,8 +486,7 @@ const char BL_ActionActuator::GetEnd_doc[] = "getEnd()\n" "\tReturns the last frame of the action.\n"; -PyObject* BL_ActionActuator::PyGetEnd(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetEnd(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getEnd()", "the end property"); @@ -507,8 +502,7 @@ const char BL_ActionActuator::GetStart_doc[] = "getStart()\n" "\tReturns the starting frame of the action.\n"; -PyObject* BL_ActionActuator::PyGetStart(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetStart(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getStart()", "the start property"); @@ -525,8 +519,7 @@ const char BL_ActionActuator::GetBlendin_doc[] = "\tReturns the number of interpolation animation frames to be\n" "\tgenerated when this actuator is triggered.\n"; -PyObject* BL_ActionActuator::PyGetBlendin(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetBlendin(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getBlendin()", "the blendin property"); @@ -543,8 +536,7 @@ const char BL_ActionActuator::GetPriority_doc[] = "\tReturns the priority for this actuator. Actuators with lower\n" "\tPriority numbers will override actuators with higher numbers.\n"; -PyObject* BL_ActionActuator::PyGetPriority(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetPriority(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getPriority()", "the priority property"); @@ -565,8 +557,7 @@ const char BL_ActionActuator::SetAction_doc[] = "\t unchanged. If reset is not specified, the timer will" "\t be reset.\n"; -PyObject* BL_ActionActuator::PySetAction(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetAction(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setAction()", "the action property"); @@ -601,8 +592,7 @@ const char BL_ActionActuator::SetStart_doc[] = "setStart(start)\n" "\t - start : Specifies the starting frame of the animation.\n"; -PyObject* BL_ActionActuator::PySetStart(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetStart(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setStart()", "the start property"); @@ -624,8 +614,7 @@ const char BL_ActionActuator::SetEnd_doc[] = "setEnd(end)\n" "\t - end : Specifies the ending frame of the animation.\n"; -PyObject* BL_ActionActuator::PySetEnd(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetEnd(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setEnd()", "the end property"); @@ -648,8 +637,7 @@ const char BL_ActionActuator::SetBlendin_doc[] = "\t - blendin : Specifies the number of frames of animation to generate\n" "\t when making transitions between actions.\n"; -PyObject* BL_ActionActuator::PySetBlendin(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetBlendin(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setBlendin()", "the blendin property"); @@ -673,8 +661,7 @@ const char BL_ActionActuator::SetBlendtime_doc[] = "\t used when generating transitions between actions. This\n" "\t parameter must be in the range from 0.0 to 1.0.\n"; -PyObject* BL_ActionActuator::PySetBlendtime(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetBlendtime(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setBlendtime()", "the blendtime property"); @@ -702,8 +689,7 @@ const char BL_ActionActuator::SetPriority_doc[] = "\t priority numbers will override actuators with higher\n" "\t numbers.\n"; -PyObject* BL_ActionActuator::PySetPriority(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetPriority(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setPriority()", "the priority property"); @@ -725,8 +711,7 @@ const char BL_ActionActuator::SetFrame_doc[] = "setFrame(frame)\n" "\t - frame : Specifies the new current frame for the animation\n"; -PyObject* BL_ActionActuator::PySetFrame(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetFrame(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setFrame()", "the frame property"); @@ -753,8 +738,7 @@ const char BL_ActionActuator::SetProperty_doc[] = "\t - prop : A string specifying the property name to be used in\n" "\t FromProp playback mode.\n"; -PyObject* BL_ActionActuator::PySetProperty(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setProperty()", "the property property"); @@ -776,8 +760,7 @@ const char BL_ActionActuator::SetFrameProperty_doc[] = "setFrameProperty(prop)\n" "\t - prop : A string specifying the property of the frame set up update.\n"; -PyObject* BL_ActionActuator::PySetFrameProperty(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetFrameProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setFrameProperty()", "the frameProperty property"); @@ -795,8 +778,7 @@ PyObject* BL_ActionActuator::PySetFrameProperty(PyObject* self, } /* -PyObject* BL_ActionActuator::PyGetChannel(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetChannel(PyObject* args, PyObject* kwds) { char *string; @@ -816,8 +798,7 @@ PyObject* BL_ActionActuator::PyGetChannel(PyObject* self, const char BL_ActionActuator::GetType_doc[] = "getType()\n" "\tReturns the operation mode of the actuator.\n"; -PyObject* BL_ActionActuator::PyGetType(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PyGetType(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getType()", "the type property"); @@ -829,8 +810,7 @@ const char BL_ActionActuator::SetType_doc[] = "setType(mode)\n" "\t - mode: Play (0), Flipper (2), LoopStop (3), LoopEnd (4) or Property (6)\n" "\tSet the operation mode of the actuator.\n"; -PyObject* BL_ActionActuator::PySetType(PyObject* self, - PyObject* args, +PyObject* BL_ActionActuator::PySetType(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setType()", "the type property"); @@ -854,13 +834,13 @@ PyObject* BL_ActionActuator::PySetType(PyObject* self, Py_RETURN_NONE; } -PyObject* BL_ActionActuator::PyGetContinue(PyObject* self) { +PyObject* BL_ActionActuator::PyGetContinue() { ShowDeprecationWarning("getContinue()", "the continue property"); return PyInt_FromLong((long)(m_end_reset==0)); } -PyObject* BL_ActionActuator::PySetContinue(PyObject* self, PyObject* value) { +PyObject* BL_ActionActuator::PySetContinue(PyObject* value) { ShowDeprecationWarning("setContinue()", "the continue property"); int param = PyObject_IsTrue( value ); diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 783fdd814b7..25a4413a31d 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -498,7 +498,7 @@ const char BL_ShapeActionActuator::GetAction_doc[] = "getAction()\n" "\tReturns a string containing the name of the current action.\n"; -PyObject* BL_ShapeActionActuator::PyGetAction(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetAction() { ShowDeprecationWarning("getAction()", "the action property"); if (m_action){ return PyString_FromString(m_action->id.name+2); @@ -511,7 +511,7 @@ const char BL_ShapeActionActuator::GetProperty_doc[] = "getProperty()\n" "\tReturns the name of the property to be used in FromProp mode.\n"; -PyObject* BL_ShapeActionActuator::PyGetProperty(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetProperty() { ShowDeprecationWarning("getProperty()", "the property property"); PyObject *result; @@ -525,7 +525,7 @@ const char BL_ShapeActionActuator::GetFrame_doc[] = "getFrame()\n" "\tReturns the current frame number.\n"; -PyObject* BL_ShapeActionActuator::PyGetFrame(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetFrame() { ShowDeprecationWarning("getFrame()", "the frame property"); PyObject *result; @@ -539,7 +539,7 @@ const char BL_ShapeActionActuator::GetEnd_doc[] = "getEnd()\n" "\tReturns the last frame of the action.\n"; -PyObject* BL_ShapeActionActuator::PyGetEnd(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetEnd() { ShowDeprecationWarning("getEnd()", "the end property"); PyObject *result; @@ -553,7 +553,7 @@ const char BL_ShapeActionActuator::GetStart_doc[] = "getStart()\n" "\tReturns the starting frame of the action.\n"; -PyObject* BL_ShapeActionActuator::PyGetStart(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetStart() { ShowDeprecationWarning("getStart()", "the start property"); PyObject *result; @@ -568,7 +568,7 @@ const char BL_ShapeActionActuator::GetBlendin_doc[] = "\tReturns the number of interpolation animation frames to be\n" "\tgenerated when this actuator is triggered.\n"; -PyObject* BL_ShapeActionActuator::PyGetBlendin(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetBlendin() { ShowDeprecationWarning("getBlendin()", "the blendin property"); PyObject *result; @@ -583,7 +583,7 @@ const char BL_ShapeActionActuator::GetPriority_doc[] = "\tReturns the priority for this actuator. Actuators with lower\n" "\tPriority numbers will override actuators with higher numbers.\n"; -PyObject* BL_ShapeActionActuator::PyGetPriority(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetPriority() { ShowDeprecationWarning("getPriority()", "the priority property"); PyObject *result; @@ -603,9 +603,7 @@ const char BL_ShapeActionActuator::SetAction_doc[] = "\t unchanged. If reset is not specified, the timer will" "\t be reset.\n"; -PyObject* BL_ShapeActionActuator::PySetAction(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetAction(PyObject* args) { ShowDeprecationWarning("setAction()", "the action property"); char *string; int reset = 1; @@ -638,9 +636,7 @@ const char BL_ShapeActionActuator::SetStart_doc[] = "setStart(start)\n" "\t - start : Specifies the starting frame of the animation.\n"; -PyObject* BL_ShapeActionActuator::PySetStart(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetStart(PyObject* args) { ShowDeprecationWarning("setStart()", "the start property"); float start; @@ -660,9 +656,7 @@ const char BL_ShapeActionActuator::SetEnd_doc[] = "setEnd(end)\n" "\t - end : Specifies the ending frame of the animation.\n"; -PyObject* BL_ShapeActionActuator::PySetEnd(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetEnd(PyObject* args) { ShowDeprecationWarning("setEnd()", "the end property"); float end; @@ -683,9 +677,7 @@ const char BL_ShapeActionActuator::SetBlendin_doc[] = "\t - blendin : Specifies the number of frames of animation to generate\n" "\t when making transitions between actions.\n"; -PyObject* BL_ShapeActionActuator::PySetBlendin(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetBlendin(PyObject* args) { ShowDeprecationWarning("setBlendin()", "the blendin property"); float blendin; @@ -707,9 +699,7 @@ const char BL_ShapeActionActuator::SetBlendtime_doc[] = "\t used when generating transitions between actions. This\n" "\t parameter must be in the range from 0.0 to 1.0.\n"; -PyObject* BL_ShapeActionActuator::PySetBlendtime(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetBlendtime(PyObject* args) { ShowDeprecationWarning("setBlendtime()", "the blendTime property"); float blendframe; @@ -735,9 +725,7 @@ const char BL_ShapeActionActuator::SetPriority_doc[] = "\t priority numbers will override actuators with higher\n" "\t numbers.\n"; -PyObject* BL_ShapeActionActuator::PySetPriority(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetPriority(PyObject* args) { ShowDeprecationWarning("setPriority()", "the priority property"); int priority; @@ -757,7 +745,7 @@ const char BL_ShapeActionActuator::GetFrameProperty_doc[] = "getFrameProperty()\n" "\tReturns the name of the property, that is set to the current frame number.\n"; -PyObject* BL_ShapeActionActuator::PyGetFrameProperty(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetFrameProperty() { ShowDeprecationWarning("getFrameProperty()", "the frameProperty property"); PyObject *result; @@ -772,9 +760,7 @@ const char BL_ShapeActionActuator::SetFrame_doc[] = "setFrame(frame)\n" "\t - frame : Specifies the new current frame for the animation\n"; -PyObject* BL_ShapeActionActuator::PySetFrame(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetFrame(PyObject* args) { ShowDeprecationWarning("setFrame()", "the frame property"); float frame; @@ -799,9 +785,7 @@ const char BL_ShapeActionActuator::SetProperty_doc[] = "\t - prop : A string specifying the property name to be used in\n" "\t FromProp playback mode.\n"; -PyObject* BL_ShapeActionActuator::PySetProperty(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetProperty(PyObject* args) { ShowDeprecationWarning("setProperty()", "the property property"); char *string; @@ -821,9 +805,7 @@ const char BL_ShapeActionActuator::SetFrameProperty_doc[] = "setFrameProperty(prop)\n" "\t - prop : A string specifying the property of the frame set up update.\n"; -PyObject* BL_ShapeActionActuator::PySetFrameProperty(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetFrameProperty(PyObject* args) { ShowDeprecationWarning("setFrameProperty()", "the frameProperty property"); char *string; @@ -842,7 +824,7 @@ PyObject* BL_ShapeActionActuator::PySetFrameProperty(PyObject* self, const char BL_ShapeActionActuator::GetType_doc[] = "getType()\n" "\tReturns the operation mode of the actuator.\n"; -PyObject* BL_ShapeActionActuator::PyGetType(PyObject* self) { +PyObject* BL_ShapeActionActuator::PyGetType() { ShowDeprecationWarning("getType()", "the type property"); return Py_BuildValue("h", m_playtype); } @@ -852,9 +834,7 @@ const char BL_ShapeActionActuator::SetType_doc[] = "setType(mode)\n" "\t - mode: Play (0), Flipper (2), LoopStop (3), LoopEnd (4) or Property (6)\n" "\tSet the operation mode of the actuator.\n"; -PyObject* BL_ShapeActionActuator::PySetType(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* BL_ShapeActionActuator::PySetType(PyObject* args) { ShowDeprecationWarning("setType()", "the type property"); short typeArg; diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.h b/source/gameengine/Converter/BL_ShapeActionActuator.h index 162580fca85..716d8c9995b 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.h +++ b/source/gameengine/Converter/BL_ShapeActionActuator.h @@ -83,16 +83,16 @@ public: bAction* GetAction() { return m_action; } void SetAction(bAction* act) { m_action= act; } - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetAction); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetBlendin); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetPriority); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetStart); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetEnd); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetFrame); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetProperty); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetFrameProperty); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetBlendtime); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetChannel); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetAction); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetBlendin); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetPriority); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetStart); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetEnd); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetFrame); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetProperty); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetFrameProperty); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetBlendtime); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetChannel); KX_PYMETHOD_DOC_NOARGS(BL_ShapeActionActuator,GetAction); KX_PYMETHOD_DOC_NOARGS(BL_ShapeActionActuator,GetBlendin); @@ -104,7 +104,7 @@ public: KX_PYMETHOD_DOC_NOARGS(BL_ShapeActionActuator,GetFrameProperty); // KX_PYMETHOD(BL_ActionActuator,GetChannel); KX_PYMETHOD_DOC_NOARGS(BL_ShapeActionActuator,GetType); - KX_PYMETHOD_DOC(BL_ShapeActionActuator,SetType); + KX_PYMETHOD_DOC_VARARGS(BL_ShapeActionActuator,SetType); virtual PyObject* py_getattro(PyObject* attr); virtual int py_setattro(PyObject* attr, PyObject* value); diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 4e14ce35eb9..5c7e6a4383e 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -438,14 +438,14 @@ void CListValue::MergeList(CListValue *otherlist) -PyObject* CListValue::Pyappend(PyObject* self, PyObject* value) +PyObject* CListValue::Pyappend(PyObject* value) { - return listvalue_buffer_concat(self, value); + return listvalue_buffer_concat(m_proxy, value); /* m_proxy is the same as self */ } -PyObject* CListValue::Pyreverse(PyObject* self) +PyObject* CListValue::Pyreverse() { std::reverse(m_pValueArray.begin(),m_pValueArray.end()); Py_RETURN_NONE; @@ -474,7 +474,7 @@ bool CListValue::CheckEqual(CValue* first,CValue* second) -PyObject* CListValue::Pyindex(PyObject* self, PyObject *value) +PyObject* CListValue::Pyindex(PyObject *value) { PyObject* result = NULL; @@ -503,7 +503,7 @@ PyObject* CListValue::Pyindex(PyObject* self, PyObject *value) -PyObject* CListValue::Pycount(PyObject* self, PyObject* value) +PyObject* CListValue::Pycount(PyObject* value) { int numfound = 0; @@ -530,7 +530,7 @@ PyObject* CListValue::Pycount(PyObject* self, PyObject* value) -PyObject* CListValue::Pyfrom_id(PyObject* self, PyObject* value) +PyObject* CListValue::Pyfrom_id(PyObject* value) { uintptr_t id= (uintptr_t)PyLong_AsVoidPtr(value); diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index 3c414c6b16d..da761bd22cb 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -780,7 +780,7 @@ bool PyObjectPlus::isA(const char *mytypename) // check typename of each parent return false; } -PyObject *PyObjectPlus::PyisA(PyObject *self, PyObject *value) // Python wrapper for isA +PyObject *PyObjectPlus::PyisA(PyObject *value) // Python wrapper for isA { if (PyType_Check(value)) { return PyBool_FromLong(isA((PyTypeObject *)value)); diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h index 9f30e6570ee..370717a919b 100644 --- a/source/gameengine/Expressions/PyObjectPlus.h +++ b/source/gameengine/Expressions/PyObjectPlus.h @@ -180,62 +180,54 @@ typedef struct { * macro is one that also requires a documentation string */ #define KX_PYMETHOD(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* args, PyObject* kwds); \ + PyObject* Py##method_name(PyObject* args, PyObject* kwds); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args, PyObject* kwds) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self, args, kwds); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(args, kwds); \ }; \ #define KX_PYMETHOD_VARARGS(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* args); \ + PyObject* Py##method_name(PyObject* args); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self, args); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(args); \ }; \ #define KX_PYMETHOD_NOARGS(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self); \ + PyObject* Py##method_name(); \ static PyObject* sPy##method_name( PyObject* self) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(); \ }; \ #define KX_PYMETHOD_O(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* value); \ + PyObject* Py##method_name(PyObject* value); \ static PyObject* sPy##method_name( PyObject* self, PyObject* value) { \ - PyObjectPlus *self_plus= ((PyObjectPlus_Proxy *)self)->ref; \ - return ((class_name*) self_plus)->Py##method_name(self, value); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(value); \ }; \ #define KX_PYMETHOD_DOC(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* args, PyObject* kwds); \ + PyObject* Py##method_name(PyObject* args, PyObject* kwds); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args, PyObject* kwds) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self, args, kwds); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(args, kwds); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_VARARGS(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* args); \ + PyObject* Py##method_name(PyObject* args); \ static PyObject* sPy##method_name( PyObject* self, PyObject* args) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self, args); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(args); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_O(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self, PyObject* value); \ + PyObject* Py##method_name(PyObject* value); \ static PyObject* sPy##method_name( PyObject* self, PyObject* value) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self, value); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(value); \ }; \ static const char method_name##_doc[]; \ #define KX_PYMETHOD_DOC_NOARGS(class_name, method_name) \ - PyObject* Py##method_name(PyObject* self); \ + PyObject* Py##method_name(); \ static PyObject* sPy##method_name( PyObject* self) { \ - PyObjectPlus *self_plus= BGE_PROXY_REF(self); \ - return ((class_name*)self_plus)->Py##method_name(self); \ + return ((class_name*)BGE_PROXY_REF(self))->Py##method_name(); \ }; \ static const char method_name##_doc[]; \ @@ -258,19 +250,19 @@ typedef struct { */ #define KX_PYMETHODDEF_DOC(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject* self, PyObject* args, PyObject*) +PyObject* class_name::Py##method_name(PyObject* args, PyObject*) #define KX_PYMETHODDEF_DOC_VARARGS(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject* self, PyObject* args) +PyObject* class_name::Py##method_name(PyObject* args) #define KX_PYMETHODDEF_DOC_O(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject* self, PyObject* value) +PyObject* class_name::Py##method_name(PyObject* value) #define KX_PYMETHODDEF_DOC_NOARGS(class_name, method_name, doc_string) \ const char class_name::method_name##_doc[] = doc_string; \ -PyObject* class_name::Py##method_name(PyObject* self) +PyObject* class_name::Py##method_name() /** * Attribute management @@ -453,8 +445,6 @@ public: * which we cant use because we have our own subclass system */ bool isA(PyTypeObject *T); bool isA(const char *mytypename); - PyObject *PyisA(PyObject *value); - //static PyObject *sPy_isA(PyObject *self, PyObject *value); KX_PYMETHOD_O(PyObjectPlus,isA); diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index 17813d0ab52..ca46d782992 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -67,7 +67,7 @@ PyMethodDef CValue::Methods[] = { {NULL,NULL} //Sentinel }; -PyObject* CValue::PyGetName(PyObject* self) +PyObject* CValue::PyGetName() { return PyString_FromString(this->GetName()); } @@ -797,7 +797,7 @@ void CValue::ShowDeprecationWarning(const char* old_way,const char* new_way) PyObject *getframe, *frame; PyObject *f_lineno, *f_code, *co_filename; - getframe = PySys_GetObject("_getframe"); // borrowed + getframe = PySys_GetObject((char *)"_getframe"); // borrowed if (getframe) { frame = PyObject_CallObject(getframe, NULL); if (frame) { diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index c51555a02b4..acd906ef9dd 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -185,7 +185,7 @@ int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) const char SCA_ActuatorSensor::GetActuator_doc[] = "getActuator()\n" "\tReturn the Actuator with which the sensor operates.\n"; -PyObject* SCA_ActuatorSensor::PyGetActuator(PyObject* self) +PyObject* SCA_ActuatorSensor::PyGetActuator() { ShowDeprecationWarning("getActuator()", "the actuator property"); return PyString_FromString(m_checkactname); @@ -197,7 +197,7 @@ const char SCA_ActuatorSensor::SetActuator_doc[] = "\t- name: string\n" "\tSets the Actuator with which to operate. If there is no Actuator\n" "\tof this name, the call is ignored.\n"; -PyObject* SCA_ActuatorSensor::PySetActuator(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ActuatorSensor::PySetActuator(PyObject* args) { ShowDeprecationWarning("setActuator()", "the actuator property"); /* We should query whether the name exists. Or should we create a prop */ diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.h b/source/gameengine/GameLogic/SCA_ActuatorSensor.h index 9bc873e4ee1..21960993497 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.h +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.h @@ -65,7 +65,7 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); /* 3. setProperty */ - KX_PYMETHOD_DOC(SCA_ActuatorSensor,SetActuator); + KX_PYMETHOD_DOC_VARARGS(SCA_ActuatorSensor,SetActuator); /* 4. getProperty */ KX_PYMETHOD_DOC_NOARGS(SCA_ActuatorSensor,GetActuator); diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index dad85a435c8..44a0175d916 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -192,7 +192,7 @@ const char SCA_DelaySensor::SetDelay_doc[] = "\t- delay: length of the initial OFF period as number of frame\n" "\t 0 for immediate trigger\n" "\tSet the initial delay before the positive trigger\n"; -PyObject* SCA_DelaySensor::PySetDelay(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_DelaySensor::PySetDelay(PyObject* args) { ShowDeprecationWarning("setDelay()", "the delay property"); int delay; @@ -214,7 +214,7 @@ const char SCA_DelaySensor::SetDuration_doc[] = "\t 0 for no ON period\n" "\tSet the duration of the ON pulse after initial delay.\n" "\tIf > 0, a negative trigger is fired at the end of the ON pulse.\n"; -PyObject* SCA_DelaySensor::PySetDuration(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_DelaySensor::PySetDuration(PyObject* args) { ShowDeprecationWarning("setDuration()", "the duration property"); int duration; @@ -235,7 +235,7 @@ const char SCA_DelaySensor::SetRepeat_doc[] = "\t- repeat: 1 if the initial OFF-ON cycle should be repeated indefinately\n" "\t 0 if the initial OFF-ON cycle should run only once\n" "\tSet the sensor repeat mode\n"; -PyObject* SCA_DelaySensor::PySetRepeat(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_DelaySensor::PySetRepeat(PyObject* args) { ShowDeprecationWarning("setRepeat()", "the repeat property"); int repeat; @@ -250,7 +250,7 @@ PyObject* SCA_DelaySensor::PySetRepeat(PyObject* self, PyObject* args, PyObject* const char SCA_DelaySensor::GetDelay_doc[] = "getDelay()\n" "\tReturn the delay parameter value\n"; -PyObject* SCA_DelaySensor::PyGetDelay(PyObject* self) +PyObject* SCA_DelaySensor::PyGetDelay() { ShowDeprecationWarning("getDelay()", "the delay property"); return PyInt_FromLong(m_delay); @@ -259,7 +259,7 @@ PyObject* SCA_DelaySensor::PyGetDelay(PyObject* self) const char SCA_DelaySensor::GetDuration_doc[] = "getDuration()\n" "\tReturn the duration parameter value\n"; -PyObject* SCA_DelaySensor::PyGetDuration(PyObject* self) +PyObject* SCA_DelaySensor::PyGetDuration() { ShowDeprecationWarning("getDuration()", "the duration property"); return PyInt_FromLong(m_duration); @@ -268,7 +268,7 @@ PyObject* SCA_DelaySensor::PyGetDuration(PyObject* self) const char SCA_DelaySensor::GetRepeat_doc[] = "getRepeat()\n" "\tReturn the repeat parameter value\n"; -PyObject* SCA_DelaySensor::PyGetRepeat(PyObject* self) +PyObject* SCA_DelaySensor::PyGetRepeat() { ShowDeprecationWarning("getRepeat()", "the repeat property"); return BoolToPyArg(m_repeat); diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.h b/source/gameengine/GameLogic/SCA_DelaySensor.h index f9e3d619198..8da76ff7189 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.h +++ b/source/gameengine/GameLogic/SCA_DelaySensor.h @@ -64,9 +64,9 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); /* setProperty */ - KX_PYMETHOD_DOC(SCA_DelaySensor,SetDelay); - KX_PYMETHOD_DOC(SCA_DelaySensor,SetDuration); - KX_PYMETHOD_DOC(SCA_DelaySensor,SetRepeat); + KX_PYMETHOD_DOC_VARARGS(SCA_DelaySensor,SetDelay); + KX_PYMETHOD_DOC_VARARGS(SCA_DelaySensor,SetDuration); + KX_PYMETHOD_DOC_VARARGS(SCA_DelaySensor,SetRepeat); /* getProperty */ KX_PYMETHOD_DOC_NOARGS(SCA_DelaySensor,GetDelay); KX_PYMETHOD_DOC_NOARGS(SCA_DelaySensor,GetDuration); diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 1ae78321959..b3045402c2c 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -289,7 +289,7 @@ int SCA_ILogicBrick::py_setattro(PyObject *attr, PyObject *value) } -PyObject* SCA_ILogicBrick::PyGetOwner(PyObject* self) +PyObject* SCA_ILogicBrick::PyGetOwner() { CValue* parent = GetParent(); if (parent) @@ -303,9 +303,7 @@ PyObject* SCA_ILogicBrick::PyGetOwner(PyObject* self) -PyObject* SCA_ILogicBrick::PySetExecutePriority(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* SCA_ILogicBrick::PySetExecutePriority(PyObject* args) { ShowDeprecationWarning("setExecutePriority()", "the executePriority property"); @@ -322,7 +320,7 @@ PyObject* SCA_ILogicBrick::PySetExecutePriority(PyObject* self, -PyObject* SCA_ILogicBrick::PyGetExecutePriority(PyObject* self) +PyObject* SCA_ILogicBrick::PyGetExecutePriority() { ShowDeprecationWarning("getExecutePriority()", "the executePriority property"); return PyInt_FromLong(m_Execute_Ueber_Priority); diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index 20fa3c2d687..c0ff0fd633f 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -88,7 +88,7 @@ public: // python methods KX_PYMETHOD_NOARGS(SCA_ILogicBrick,GetOwner); - KX_PYMETHOD(SCA_ILogicBrick,SetExecutePriority); + KX_PYMETHOD_VARARGS(SCA_ILogicBrick,SetExecutePriority); KX_PYMETHOD_NOARGS(SCA_ILogicBrick,GetExecutePriority); // check that attribute is a property diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 269038db4f9..68f5653d53a 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -218,7 +218,7 @@ void SCA_ISensor::Activate(class SCA_LogicManager* logicmgr, CValue* event) const char SCA_ISensor::IsPositive_doc[] = "isPositive()\n" "\tReturns whether the sensor is in an active state.\n"; -PyObject* SCA_ISensor::PyIsPositive(PyObject* self) +PyObject* SCA_ISensor::PyIsPositive() { ShowDeprecationWarning("isPositive()", "the read-only positive property"); int retval = IsPositiveTrigger(); @@ -228,7 +228,7 @@ PyObject* SCA_ISensor::PyIsPositive(PyObject* self) const char SCA_ISensor::IsTriggered_doc[] = "isTriggered()\n" "\tReturns whether the sensor has triggered the current controller.\n"; -PyObject* SCA_ISensor::PyIsTriggered(PyObject* self) +PyObject* SCA_ISensor::PyIsTriggered() { ShowDeprecationWarning("isTriggered()", "the read-only triggered property"); // check with the current controller @@ -244,7 +244,7 @@ PyObject* SCA_ISensor::PyIsTriggered(PyObject* self) const char SCA_ISensor::GetUsePosPulseMode_doc[] = "getUsePosPulseMode()\n" "\tReturns whether positive pulse mode is active.\n"; -PyObject* SCA_ISensor::PyGetUsePosPulseMode(PyObject* self) +PyObject* SCA_ISensor::PyGetUsePosPulseMode() { ShowDeprecationWarning("getUsePosPulseMode()", "the usePosPulseMode property"); return BoolToPyArg(m_pos_pulsemode); @@ -258,7 +258,7 @@ const char SCA_ISensor::SetUsePosPulseMode_doc[] = "\t - pulse? : Pulse when a positive event occurs?\n" "\t (KX_TRUE, KX_FALSE)\n" "\tSet whether to do pulsing when positive pulses occur.\n"; -PyObject* SCA_ISensor::PySetUsePosPulseMode(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ISensor::PySetUsePosPulseMode(PyObject* args) { ShowDeprecationWarning("setUsePosPulseMode()", "the usePosPulseMode property"); int pyarg = 0; @@ -273,7 +273,7 @@ PyObject* SCA_ISensor::PySetUsePosPulseMode(PyObject* self, PyObject* args, PyOb const char SCA_ISensor::GetFrequency_doc[] = "getFrequency()\n" "\tReturns the frequency of the updates in pulse mode.\n" ; -PyObject* SCA_ISensor::PyGetFrequency(PyObject* self) +PyObject* SCA_ISensor::PyGetFrequency() { ShowDeprecationWarning("getFrequency()", "the frequency property"); return PyInt_FromLong(m_pulse_frequency); @@ -287,7 +287,7 @@ const char SCA_ISensor::SetFrequency_doc[] = "\t- pulse_frequency: The frequency of the updates in pulse mode (integer)" "\tSet the frequency of the updates in pulse mode.\n" "\tIf the frequency is negative, it is set to 0.\n" ; -PyObject* SCA_ISensor::PySetFrequency(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ISensor::PySetFrequency(PyObject* args) { ShowDeprecationWarning("setFrequency()", "the frequency property"); int pulse_frequencyArg = 0; @@ -310,7 +310,7 @@ PyObject* SCA_ISensor::PySetFrequency(PyObject* self, PyObject* args, PyObject* const char SCA_ISensor::GetInvert_doc[] = "getInvert()\n" "\tReturns whether or not pulses from this sensor are inverted.\n" ; -PyObject* SCA_ISensor::PyGetInvert(PyObject* self) +PyObject* SCA_ISensor::PyGetInvert() { ShowDeprecationWarning("getInvert()", "the invert property"); return BoolToPyArg(m_invert); @@ -320,7 +320,7 @@ const char SCA_ISensor::SetInvert_doc[] = "setInvert(invert?)\n" "\t- invert?: Invert the event-values? (KX_TRUE, KX_FALSE)\n" "\tSet whether to invert pulses.\n"; -PyObject* SCA_ISensor::PySetInvert(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ISensor::PySetInvert(PyObject* args) { ShowDeprecationWarning("setInvert()", "the invert property"); int pyarg = 0; @@ -336,7 +336,7 @@ const char SCA_ISensor::GetLevel_doc[] = "\tA level detector will immediately generate a pulse, negative or positive\n" "\tdepending on the sensor condition, as soon as the state is activated.\n" "\tA edge detector will wait for a state change before generating a pulse.\n"; -PyObject* SCA_ISensor::PyGetLevel(PyObject* self) +PyObject* SCA_ISensor::PyGetLevel() { ShowDeprecationWarning("getLevel()", "the level property"); return BoolToPyArg(m_level); @@ -346,7 +346,7 @@ const char SCA_ISensor::SetLevel_doc[] = "setLevel(level?)\n" "\t- level?: Detect level instead of edge? (KX_TRUE, KX_FALSE)\n" "\tSet whether to detect level or edge transition when entering a state.\n"; -PyObject* SCA_ISensor::PySetLevel(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ISensor::PySetLevel(PyObject* args) { ShowDeprecationWarning("setLevel()", "the level property"); int pyarg = 0; @@ -358,7 +358,7 @@ PyObject* SCA_ISensor::PySetLevel(PyObject* self, PyObject* args, PyObject* kwds const char SCA_ISensor::GetUseNegPulseMode_doc[] = "getUseNegPulseMode()\n" "\tReturns whether negative pulse mode is active.\n"; -PyObject* SCA_ISensor::PyGetUseNegPulseMode(PyObject* self) +PyObject* SCA_ISensor::PyGetUseNegPulseMode() { ShowDeprecationWarning("getUseNegPulseMode()", "the useNegPulseMode property"); return BoolToPyArg(m_neg_pulsemode); @@ -369,7 +369,7 @@ const char SCA_ISensor::SetUseNegPulseMode_doc[] = "\t - pulse? : Pulse when a negative event occurs?\n" "\t (KX_TRUE, KX_FALSE)\n" "\tSet whether to do pulsing when negative pulses occur.\n"; -PyObject* SCA_ISensor::PySetUseNegPulseMode(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_ISensor::PySetUseNegPulseMode(PyObject* args) { ShowDeprecationWarning("setUseNegPulseMode()", "the useNegPulseMode property"); int pyarg = 0; diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index 18d630fce0e..6b1c8cca104 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -143,15 +143,15 @@ public: KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,IsPositive); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,IsTriggered); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetUsePosPulseMode); - KX_PYMETHOD_DOC(SCA_ISensor,SetUsePosPulseMode); + KX_PYMETHOD_DOC_VARARGS(SCA_ISensor,SetUsePosPulseMode); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetFrequency); - KX_PYMETHOD_DOC(SCA_ISensor,SetFrequency); + KX_PYMETHOD_DOC_VARARGS(SCA_ISensor,SetFrequency); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetUseNegPulseMode); - KX_PYMETHOD_DOC(SCA_ISensor,SetUseNegPulseMode); + KX_PYMETHOD_DOC_VARARGS(SCA_ISensor,SetUseNegPulseMode); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetInvert); - KX_PYMETHOD_DOC(SCA_ISensor,SetInvert); + KX_PYMETHOD_DOC_VARARGS(SCA_ISensor,SetInvert); KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,GetLevel); - KX_PYMETHOD_DOC(SCA_ISensor,SetLevel); + KX_PYMETHOD_DOC_VARARGS(SCA_ISensor,SetLevel); //<------ KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,reset); diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 087fb036fae..28ff1c82924 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -349,7 +349,7 @@ int SCA_JoystickSensor::py_setattro(PyObject *attr, PyObject *value) const char SCA_JoystickSensor::GetIndex_doc[] = "getIndex\n" "\tReturns the joystick index to use.\n"; -PyObject* SCA_JoystickSensor::PyGetIndex( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyGetIndex( ) { ShowDeprecationWarning("getIndex()", "the index property"); return PyInt_FromLong(m_joyindex); } @@ -359,7 +359,7 @@ PyObject* SCA_JoystickSensor::PyGetIndex( PyObject* self ) { const char SCA_JoystickSensor::SetIndex_doc[] = "setIndex\n" "\tSets the joystick index to use.\n"; -PyObject* SCA_JoystickSensor::PySetIndex( PyObject* self, PyObject* value ) { +PyObject* SCA_JoystickSensor::PySetIndex( PyObject* value ) { ShowDeprecationWarning("setIndex()", "the index property"); int index = PyInt_AsLong( value ); /* -1 on error, will raise an error in this case */ if (index < 0 || index >= JOYINDEX_MAX) { @@ -375,7 +375,7 @@ PyObject* SCA_JoystickSensor::PySetIndex( PyObject* self, PyObject* value ) { const char SCA_JoystickSensor::GetAxis_doc[] = "getAxis\n" "\tReturns the current axis this sensor reacts to.\n"; -PyObject* SCA_JoystickSensor::PyGetAxis( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetAxis( ) { ShowDeprecationWarning("getAxis()", "the axis property"); return Py_BuildValue("[ii]",m_axis, m_axisf); } @@ -385,7 +385,7 @@ PyObject* SCA_JoystickSensor::PyGetAxis( PyObject* self) { const char SCA_JoystickSensor::SetAxis_doc[] = "setAxis\n" "\tSets the current axis this sensor reacts to.\n"; -PyObject* SCA_JoystickSensor::PySetAxis( PyObject* self, PyObject* args ) { +PyObject* SCA_JoystickSensor::PySetAxis( PyObject* args ) { ShowDeprecationWarning("setAxis()", "the axis property"); int axis,axisflag; @@ -402,7 +402,7 @@ PyObject* SCA_JoystickSensor::PySetAxis( PyObject* self, PyObject* args ) { const char SCA_JoystickSensor::GetAxisValue_doc[] = "getAxisValue\n" "\tReturns a list of the values for the current state of each axis.\n"; -PyObject* SCA_JoystickSensor::PyGetAxisValue( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetAxisValue( ) { ShowDeprecationWarning("getAxisValue()", "the axisPosition property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); @@ -421,7 +421,7 @@ PyObject* SCA_JoystickSensor::PyGetAxisValue( PyObject* self) { const char SCA_JoystickSensor::GetThreshold_doc[] = "getThreshold\n" "\tReturns the threshold of the axis.\n"; -PyObject* SCA_JoystickSensor::PyGetThreshold( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetThreshold( ) { ShowDeprecationWarning("getThreshold()", "the threshold property"); return PyInt_FromLong(m_precision); } @@ -431,7 +431,7 @@ PyObject* SCA_JoystickSensor::PyGetThreshold( PyObject* self) { const char SCA_JoystickSensor::SetThreshold_doc[] = "setThreshold\n" "\tSets the threshold of the axis.\n"; -PyObject* SCA_JoystickSensor::PySetThreshold( PyObject* self, PyObject* args ) { +PyObject* SCA_JoystickSensor::PySetThreshold( PyObject* args ) { ShowDeprecationWarning("setThreshold()", "the threshold property"); int thresh; if(!PyArg_ParseTuple(args, "i:setThreshold", &thresh)){ @@ -445,7 +445,7 @@ PyObject* SCA_JoystickSensor::PySetThreshold( PyObject* self, PyObject* args ) { const char SCA_JoystickSensor::GetButton_doc[] = "getButton\n" "\tReturns the current button this sensor is checking.\n"; -PyObject* SCA_JoystickSensor::PyGetButton( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetButton( ) { ShowDeprecationWarning("getButton()", "the button property"); return PyInt_FromLong(m_button); } @@ -454,7 +454,7 @@ PyObject* SCA_JoystickSensor::PyGetButton( PyObject* self) { const char SCA_JoystickSensor::SetButton_doc[] = "setButton\n" "\tSets the button the sensor reacts to.\n"; -PyObject* SCA_JoystickSensor::PySetButton( PyObject* self, PyObject* value ) { +PyObject* SCA_JoystickSensor::PySetButton( PyObject* value ) { ShowDeprecationWarning("setButton()", "the button property"); int button = PyInt_AsLong(value); if(button==-1 && PyErr_Occurred()) { @@ -469,16 +469,16 @@ PyObject* SCA_JoystickSensor::PySetButton( PyObject* self, PyObject* value ) { const char SCA_JoystickSensor::GetButtonValue_doc[] = "getButtonValue\n" "\tReturns a list containing the indicies of the current pressed state of each button.\n"; -PyObject* SCA_JoystickSensor::PyGetButtonValue( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetButtonValue( ) { ShowDeprecationWarning("getButtonValue()", "getButtonActiveList"); - return PyGetButtonActiveList(self); + return PyGetButtonActiveList( ); } /* get button active list -------------------------------------------------- */ const char SCA_JoystickSensor::GetButtonActiveList_doc[] = "getButtonActiveList\n" "\tReturns a list containing the indicies of the button currently pressed.\n"; -PyObject* SCA_JoystickSensor::PyGetButtonActiveList( PyObject* self) { +PyObject* SCA_JoystickSensor::PyGetButtonActiveList( ) { SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); PyObject *ls = PyList_New(0); PyObject *value; @@ -500,7 +500,7 @@ PyObject* SCA_JoystickSensor::PyGetButtonActiveList( PyObject* self) { const char SCA_JoystickSensor::GetButtonStatus_doc[] = "getButtonStatus(buttonIndex)\n" "\tReturns a bool of the current pressed state of the specified button.\n"; -PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* self, PyObject* args ) { +PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* args ) { SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); int index; @@ -517,7 +517,7 @@ PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* self, PyObject* args const char SCA_JoystickSensor::GetHat_doc[] = "getHat\n" "\tReturns the current direction of the hat.\n"; -PyObject* SCA_JoystickSensor::PyGetHat( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyGetHat( ) { ShowDeprecationWarning("getHat()", "the hat property"); return Py_BuildValue("[ii]",m_hat, m_hatf); } @@ -527,7 +527,7 @@ PyObject* SCA_JoystickSensor::PyGetHat( PyObject* self ) { const char SCA_JoystickSensor::SetHat_doc[] = "setHat\n" "\tSets the hat the sensor reacts to.\n"; -PyObject* SCA_JoystickSensor::PySetHat( PyObject* self, PyObject* args ) { +PyObject* SCA_JoystickSensor::PySetHat( PyObject* args ) { ShowDeprecationWarning("setHat()", "the hat property"); int hat,hatflag; if(!PyArg_ParseTuple(args, "ii:setHat", &hat, &hatflag)){ @@ -543,7 +543,7 @@ PyObject* SCA_JoystickSensor::PySetHat( PyObject* self, PyObject* args ) { const char SCA_JoystickSensor::NumberOfAxes_doc[] = "getNumAxes\n" "\tReturns the number of axes .\n"; -PyObject* SCA_JoystickSensor::PyNumberOfAxes( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyNumberOfAxes( ) { ShowDeprecationWarning("getNumAxes()", "the numAxis property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); // when the joystick is null their is 0 exis still. dumb but scripters should use isConnected() @@ -554,7 +554,7 @@ PyObject* SCA_JoystickSensor::PyNumberOfAxes( PyObject* self ) { const char SCA_JoystickSensor::NumberOfButtons_doc[] = "getNumButtons\n" "\tReturns the number of buttons .\n"; -PyObject* SCA_JoystickSensor::PyNumberOfButtons( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyNumberOfButtons( ) { ShowDeprecationWarning("getNumButtons()", "the numButtons property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); return PyInt_FromLong( joy ? joy->GetNumberOfButtons() : 0 ); @@ -564,7 +564,7 @@ PyObject* SCA_JoystickSensor::PyNumberOfButtons( PyObject* self ) { const char SCA_JoystickSensor::NumberOfHats_doc[] = "getNumHats\n" "\tReturns the number of hats .\n"; -PyObject* SCA_JoystickSensor::PyNumberOfHats( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyNumberOfHats( ) { ShowDeprecationWarning("getNumHats()", "the numHats property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); return PyInt_FromLong( joy ? joy->GetNumberOfHats() : 0 ); @@ -573,7 +573,7 @@ PyObject* SCA_JoystickSensor::PyNumberOfHats( PyObject* self ) { const char SCA_JoystickSensor::Connected_doc[] = "getConnected\n" "\tReturns True if a joystick is connected at this joysticks index.\n"; -PyObject* SCA_JoystickSensor::PyConnected( PyObject* self ) { +PyObject* SCA_JoystickSensor::PyConnected( ) { ShowDeprecationWarning("getConnected()", "the connected property"); SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex); return PyBool_FromLong( joy ? joy->Connected() : 0 ); diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index 3e19c880c4d..d56e5fe29dc 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -412,7 +412,7 @@ void SCA_KeyboardSensor::LogKeystrokes(void) const char SCA_KeyboardSensor::GetKey_doc[] = "getKey()\n" "\tReturn the code of the key this sensor is listening to.\n" ; -PyObject* SCA_KeyboardSensor::PyGetKey(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PyGetKey() { ShowDeprecationWarning("getKey()", "the key property"); return PyInt_FromLong(m_hotkey); @@ -423,7 +423,7 @@ const char SCA_KeyboardSensor::SetKey_doc[] = "setKey(keycode)\n" "\t- keycode: any code from GameKeys\n" "\tSet the key this sensor should listen to.\n" ; -PyObject* SCA_KeyboardSensor::PySetKey(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PySetKey(PyObject* args) { ShowDeprecationWarning("setKey()", "the key property"); int keyCode; @@ -444,7 +444,7 @@ const char SCA_KeyboardSensor::GetHold1_doc[] = "getHold1()\n" "\tReturn the code of the first key modifier to the key this \n" "\tsensor is listening to.\n" ; -PyObject* SCA_KeyboardSensor::PyGetHold1(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PyGetHold1() { ShowDeprecationWarning("getHold1()", "the hold1 property"); return PyInt_FromLong(m_qual); @@ -455,7 +455,7 @@ const char SCA_KeyboardSensor::SetHold1_doc[] = "setHold1(keycode)\n" "\t- keycode: any code from GameKeys\n" "\tSet the first modifier to the key this sensor should listen to.\n" ; -PyObject* SCA_KeyboardSensor::PySetHold1(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PySetHold1(PyObject* args) { ShowDeprecationWarning("setHold1()", "the hold1 property"); int keyCode; @@ -476,7 +476,7 @@ const char SCA_KeyboardSensor::GetHold2_doc[] = "getHold2()\n" "\tReturn the code of the second key modifier to the key this \n" "\tsensor is listening to.\n" ; -PyObject* SCA_KeyboardSensor::PyGetHold2(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PyGetHold2() { ShowDeprecationWarning("getHold2()", "the hold2 property"); return PyInt_FromLong(m_qual2); @@ -487,7 +487,7 @@ const char SCA_KeyboardSensor::SetHold2_doc[] = "setHold2(keycode)\n" "\t- keycode: any code from GameKeys\n" "\tSet the first modifier to the key this sensor should listen to.\n" ; -PyObject* SCA_KeyboardSensor::PySetHold2(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PySetHold2(PyObject* args) { ShowDeprecationWarning("setHold2()", "the hold2 property"); int keyCode; @@ -508,7 +508,7 @@ const char SCA_KeyboardSensor::GetPressedKeys_doc[] = "getPressedKeys()\n" "\tGet a list of pressed keys that have either been pressed, or just released this frame.\n" ; -PyObject* SCA_KeyboardSensor::PyGetPressedKeys(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PyGetPressedKeys() { ShowDeprecationWarning("getPressedKeys()", "events"); @@ -549,7 +549,7 @@ const char SCA_KeyboardSensor::GetCurrentlyPressedKeys_doc[] = "getCurrentlyPressedKeys()\n" "\tGet a list of keys that are currently pressed.\n" ; -PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_KeyboardSensor::PyGetCurrentlyPressedKeys() { ShowDeprecationWarning("getCurrentlyPressedKeys()", "events"); @@ -640,14 +640,14 @@ PyParentObject SCA_KeyboardSensor::Parents[] = { PyMethodDef SCA_KeyboardSensor::Methods[] = { //Deprecated functions ------> - {"getKey", (PyCFunction) SCA_KeyboardSensor::sPyGetKey, METH_VARARGS, (PY_METHODCHAR)GetKey_doc}, + {"getKey", (PyCFunction) SCA_KeyboardSensor::sPyGetKey, METH_NOARGS, (PY_METHODCHAR)GetKey_doc}, {"setKey", (PyCFunction) SCA_KeyboardSensor::sPySetKey, METH_VARARGS, (PY_METHODCHAR)SetKey_doc}, - {"getHold1", (PyCFunction) SCA_KeyboardSensor::sPyGetHold1, METH_VARARGS, (PY_METHODCHAR)GetHold1_doc}, + {"getHold1", (PyCFunction) SCA_KeyboardSensor::sPyGetHold1, METH_NOARGS, (PY_METHODCHAR)GetHold1_doc}, {"setHold1", (PyCFunction) SCA_KeyboardSensor::sPySetHold1, METH_VARARGS, (PY_METHODCHAR)SetHold1_doc}, - {"getHold2", (PyCFunction) SCA_KeyboardSensor::sPyGetHold2, METH_VARARGS, (PY_METHODCHAR)GetHold2_doc}, + {"getHold2", (PyCFunction) SCA_KeyboardSensor::sPyGetHold2, METH_NOARGS, (PY_METHODCHAR)GetHold2_doc}, {"setHold2", (PyCFunction) SCA_KeyboardSensor::sPySetHold2, METH_VARARGS, (PY_METHODCHAR)SetHold2_doc}, - {"getPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetPressedKeys_doc}, - {"getCurrentlyPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetCurrentlyPressedKeys, METH_VARARGS, (PY_METHODCHAR)GetCurrentlyPressedKeys_doc}, + {"getPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetPressedKeys, METH_NOARGS, (PY_METHODCHAR)GetPressedKeys_doc}, + {"getCurrentlyPressedKeys", (PyCFunction) SCA_KeyboardSensor::sPyGetCurrentlyPressedKeys, METH_NOARGS, (PY_METHODCHAR)GetCurrentlyPressedKeys_doc}, //<----- Deprecated KX_PYMETHODTABLE_O(SCA_KeyboardSensor, getKeyStatus), {NULL,NULL} //Sentinel diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h index eb26afc96ff..073b3e6dbe0 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h @@ -115,21 +115,21 @@ public: //Deprecated functions -----> /** 1. GetKey : check which key this sensor looks at */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,GetKey); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,GetKey); /** 2. SetKey: change the key to look at */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,SetKey); + KX_PYMETHOD_DOC_VARARGS(SCA_KeyboardSensor,SetKey); /** 3. GetHold1 : set the first bucky bit */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,GetHold1); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,GetHold1); /** 4. SetHold1: change the first bucky bit */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,SetHold1); + KX_PYMETHOD_DOC_VARARGS(SCA_KeyboardSensor,SetHold1); /** 5. GetHold2 : set the second bucky bit */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,GetHold2); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,GetHold2); /** 6. SetHold2: change the second bucky bit */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,SetHold2); + KX_PYMETHOD_DOC_VARARGS(SCA_KeyboardSensor,SetHold2); /** 9. GetPressedKeys: */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,GetPressedKeys); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,GetPressedKeys); /** 9. GetCurrrentlyPressedKeys: */ - KX_PYMETHOD_DOC(SCA_KeyboardSensor,GetCurrentlyPressedKeys); + KX_PYMETHOD_DOC_NOARGS(SCA_KeyboardSensor,GetCurrentlyPressedKeys); // <------ // KeyEvents: diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 0c30f503068..8f41e799b01 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -252,9 +252,7 @@ const char SCA_MouseSensor::GetXPosition_doc[] = "\tReturns the x-coordinate of the mouse sensor, in frame coordinates.\n" "\tThe lower-left corner is the origin. The coordinate is given in\n" "\tpixels\n"; -PyObject* SCA_MouseSensor::PyGetXPosition(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* SCA_MouseSensor::PyGetXPosition() { ShowDeprecationWarning("getXPosition()", "the position property"); return PyInt_FromLong(m_x); } @@ -265,9 +263,7 @@ const char SCA_MouseSensor::GetYPosition_doc[] = "\tReturns the y-coordinate of the mouse sensor, in frame coordinates.\n" "\tThe lower-left corner is the origin. The coordinate is given in\n" "\tpixels\n"; -PyObject* SCA_MouseSensor::PyGetYPosition(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* SCA_MouseSensor::PyGetYPosition() { ShowDeprecationWarning("getYPosition()", "the position property"); return PyInt_FromLong(m_y); } diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h index 73410569cc2..2d1c496029d 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.h +++ b/source/gameengine/GameLogic/SCA_MouseSensor.h @@ -114,9 +114,9 @@ class SCA_MouseSensor : public SCA_ISensor //Deprecated functions -----> /* read x-coordinate */ - KX_PYMETHOD_DOC(SCA_MouseSensor,GetXPosition); + KX_PYMETHOD_DOC_NOARGS(SCA_MouseSensor,GetXPosition); /* read y-coordinate */ - KX_PYMETHOD_DOC(SCA_MouseSensor,GetYPosition); + KX_PYMETHOD_DOC_NOARGS(SCA_MouseSensor,GetYPosition); //<----- deprecated // get button status diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 4bcb59d0812..c4db723ee89 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -289,7 +289,7 @@ const char SCA_PropertyActuator::SetProperty_doc[] = "\t- name: string\n" "\tSet the property on which to operate. If there is no property\n" "\tof this name, the call is ignored.\n"; -PyObject* SCA_PropertyActuator::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertyActuator::PySetProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setProperty()", "the 'property' property"); /* Check whether the name exists first ! */ @@ -314,7 +314,7 @@ PyObject* SCA_PropertyActuator::PySetProperty(PyObject* self, PyObject* args, Py const char SCA_PropertyActuator::GetProperty_doc[] = "getProperty(name)\n" "\tReturn the property on which the actuator operates.\n"; -PyObject* SCA_PropertyActuator::PyGetProperty(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertyActuator::PyGetProperty(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getProperty()", "the 'property' property"); return PyString_FromString(m_propname); @@ -327,7 +327,7 @@ const char SCA_PropertyActuator::SetValue_doc[] = "\tSet the value with which the actuator operates. If the value\n" "\tis not compatible with the type of the property, the subsequent\n" "\t action is ignored.\n"; -PyObject* SCA_PropertyActuator::PySetValue(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertyActuator::PySetValue(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("setValue()", "the value property"); char *valArg; @@ -344,7 +344,7 @@ PyObject* SCA_PropertyActuator::PySetValue(PyObject* self, PyObject* args, PyObj const char SCA_PropertyActuator::GetValue_doc[] = "getValue()\n" "\tReturns the value with which the actuator operates.\n"; -PyObject* SCA_PropertyActuator::PyGetValue(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertyActuator::PyGetValue(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getValue()", "the value property"); return PyString_FromString(m_exprtxt); diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index 5c8a14db563..de8a9fcf03e 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -334,11 +334,11 @@ PyParentObject SCA_PropertySensor::Parents[] = { PyMethodDef SCA_PropertySensor::Methods[] = { //Deprecated functions ------> - {"getType", (PyCFunction) SCA_PropertySensor::sPyGetType, METH_VARARGS, (PY_METHODCHAR)GetType_doc}, + {"getType", (PyCFunction) SCA_PropertySensor::sPyGetType, METH_NOARGS, (PY_METHODCHAR)GetType_doc}, {"setType", (PyCFunction) SCA_PropertySensor::sPySetType, METH_VARARGS, (PY_METHODCHAR)SetType_doc}, - {"getProperty", (PyCFunction) SCA_PropertySensor::sPyGetProperty, METH_VARARGS, (PY_METHODCHAR)GetProperty_doc}, + {"getProperty", (PyCFunction) SCA_PropertySensor::sPyGetProperty, METH_NOARGS, (PY_METHODCHAR)GetProperty_doc}, {"setProperty", (PyCFunction) SCA_PropertySensor::sPySetProperty, METH_VARARGS, (PY_METHODCHAR)SetProperty_doc}, - {"getValue", (PyCFunction) SCA_PropertySensor::sPyGetValue, METH_VARARGS, (PY_METHODCHAR)GetValue_doc}, + {"getValue", (PyCFunction) SCA_PropertySensor::sPyGetValue, METH_NOARGS, (PY_METHODCHAR)GetValue_doc}, {"setValue", (PyCFunction) SCA_PropertySensor::sPySetValue, METH_VARARGS, (PY_METHODCHAR)SetValue_doc}, //<----- Deprecated {NULL,NULL} //Sentinel @@ -364,7 +364,7 @@ int SCA_PropertySensor::py_setattro(PyObject *attr, PyObject *value) { const char SCA_PropertySensor::GetType_doc[] = "getType()\n" "\tReturns the type of check this sensor performs.\n"; -PyObject* SCA_PropertySensor::PyGetType(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PyGetType() { ShowDeprecationWarning("getType()", "the type property"); return PyInt_FromLong(m_checktype); @@ -377,7 +377,7 @@ const char SCA_PropertySensor::SetType_doc[] = "\t KX_PROPSENSOR_INTERVAL, KX_PROPSENSOR_CHANGED,\n" "\t or KX_PROPSENSOR_EXPRESSION.\n" "\tSet the type of check to perform.\n"; -PyObject* SCA_PropertySensor::PySetType(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PySetType(PyObject* args) { ShowDeprecationWarning("setType()", "the type property"); int typeArg; @@ -398,7 +398,7 @@ PyObject* SCA_PropertySensor::PySetType(PyObject* self, PyObject* args, PyObject const char SCA_PropertySensor::GetProperty_doc[] = "getProperty()\n" "\tReturn the property with which the sensor operates.\n"; -PyObject* SCA_PropertySensor::PyGetProperty(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PyGetProperty() { ShowDeprecationWarning("getProperty()", "the 'property' property"); return PyString_FromString(m_checkpropname); @@ -410,7 +410,7 @@ const char SCA_PropertySensor::SetProperty_doc[] = "\t- name: string\n" "\tSets the property with which to operate. If there is no property\n" "\tof this name, the call is ignored.\n"; -PyObject* SCA_PropertySensor::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PySetProperty(PyObject* args) { ShowDeprecationWarning("setProperty()", "the 'property' property"); /* We should query whether the name exists. Or should we create a prop */ @@ -435,7 +435,7 @@ PyObject* SCA_PropertySensor::PySetProperty(PyObject* self, PyObject* args, PyOb const char SCA_PropertySensor::GetValue_doc[] = "getValue()\n" "\tReturns the value with which the sensor operates.\n"; -PyObject* SCA_PropertySensor::PyGetValue(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PyGetValue() { ShowDeprecationWarning("getValue()", "the value property"); return PyString_FromString(m_checkpropval); @@ -448,7 +448,7 @@ const char SCA_PropertySensor::SetValue_doc[] = "\tSet the value with which the sensor operates. If the value\n" "\tis not compatible with the type of the property, the subsequent\n" "\t action is ignored.\n"; -PyObject* SCA_PropertySensor::PySetValue(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* SCA_PropertySensor::PySetValue(PyObject* args) { ShowDeprecationWarning("setValue()", "the value property"); /* Here, we need to check whether the value is 'valid' for this property.*/ @@ -460,7 +460,7 @@ PyObject* SCA_PropertySensor::PySetValue(PyObject* self, PyObject* args, PyObjec } STR_String oldval = m_checkpropval; m_checkpropval = propValArg; - if (validValueForProperty(self, NULL)) { + if (validValueForProperty(m_proxy, NULL)) { m_checkpropval = oldval; return NULL; } diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h index 076c1ae51ec..e1e378a973c 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.h +++ b/source/gameengine/GameLogic/SCA_PropertySensor.h @@ -93,17 +93,17 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. getType */ - KX_PYMETHOD_DOC(SCA_PropertySensor,GetType); + KX_PYMETHOD_DOC_NOARGS(SCA_PropertySensor,GetType); /* 2. setType */ - KX_PYMETHOD_DOC(SCA_PropertySensor,SetType); + KX_PYMETHOD_DOC_VARARGS(SCA_PropertySensor,SetType); /* 3. setProperty */ - KX_PYMETHOD_DOC(SCA_PropertySensor,SetProperty); + KX_PYMETHOD_DOC_VARARGS(SCA_PropertySensor,SetProperty); /* 4. getProperty */ - KX_PYMETHOD_DOC(SCA_PropertySensor,GetProperty); + KX_PYMETHOD_DOC_NOARGS(SCA_PropertySensor,GetProperty); /* 5. getValue */ - KX_PYMETHOD_DOC(SCA_PropertySensor,GetValue); + KX_PYMETHOD_DOC_NOARGS(SCA_PropertySensor,GetValue); /* 6. setValue */ - KX_PYMETHOD_DOC(SCA_PropertySensor,SetValue); + KX_PYMETHOD_DOC_VARARGS(SCA_PropertySensor,SetValue); /** * Test whether this is a sensible value (type check) */ diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 0d096385fa9..121f868a281 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -154,8 +154,8 @@ int SCA_PythonController::IsTriggered(class SCA_ISensor* sensor) static const char* sPyGetCurrentController__doc__; #endif - -PyObject* SCA_PythonController::sPyGetCurrentController(PyObject* self) +/* warning, self is not the SCA_PythonController, its a PyObjectPlus_Proxy */ +PyObject* SCA_PythonController::sPyGetCurrentController(PyObject *self) { return m_sCurrentController->GetProxy(); } @@ -197,12 +197,9 @@ SCA_IActuator* SCA_PythonController::LinkedActuatorFromPy(PyObject *value) static const char* sPyAddActiveActuator__doc__; #endif -PyObject* SCA_PythonController::sPyAddActiveActuator( - - PyObject* self, - PyObject* args) +/* warning, self is not the SCA_PythonController, its a PyObjectPlus_Proxy */ +PyObject* SCA_PythonController::sPyAddActiveActuator(PyObject* self, PyObject* args) { - PyObject* ob1; int activate; if (!PyArg_ParseTuple(args, "Oi:addActiveActuator", &ob1,&activate)) @@ -384,7 +381,7 @@ int SCA_PythonController::py_setattro(PyObject *attr, PyObject *value) py_setattro_up(SCA_IController); } -PyObject* SCA_PythonController::PyActivate(PyObject* self, PyObject *value) +PyObject* SCA_PythonController::PyActivate(PyObject *value) { SCA_IActuator* actu = LinkedActuatorFromPy(value); if(actu==NULL) @@ -396,7 +393,7 @@ PyObject* SCA_PythonController::PyActivate(PyObject* self, PyObject *value) Py_RETURN_NONE; } -PyObject* SCA_PythonController::PyDeActivate(PyObject* self, PyObject *value) +PyObject* SCA_PythonController::PyDeActivate(PyObject *value) { SCA_IActuator* actu = LinkedActuatorFromPy(value); if(actu==NULL) @@ -408,7 +405,7 @@ PyObject* SCA_PythonController::PyDeActivate(PyObject* self, PyObject *value) Py_RETURN_NONE; } -PyObject* SCA_PythonController::PyGetActuators(PyObject* self) +PyObject* SCA_PythonController::PyGetActuators() { PyObject* resultlist = PyList_New(m_linkedactuators.size()); for (unsigned int index=0;index {"setSeed", (PyCFunction) SCA_RandomActuator::sPySetSeed, METH_VARARGS, (PY_METHODCHAR)SetSeed_doc}, - {"getSeed", (PyCFunction) SCA_RandomActuator::sPyGetSeed, METH_VARARGS, (PY_METHODCHAR)GetSeed_doc}, - {"getPara1", (PyCFunction) SCA_RandomActuator::sPyGetPara1, METH_VARARGS, (PY_METHODCHAR)GetPara1_doc}, - {"getPara2", (PyCFunction) SCA_RandomActuator::sPyGetPara2, METH_VARARGS, (PY_METHODCHAR)GetPara2_doc}, - {"getDistribution", (PyCFunction) SCA_RandomActuator::sPyGetDistribution, METH_VARARGS, (PY_METHODCHAR)GetDistribution_doc}, + {"getSeed", (PyCFunction) SCA_RandomActuator::sPyGetSeed, METH_NOARGS, (PY_METHODCHAR)GetSeed_doc}, + {"getPara1", (PyCFunction) SCA_RandomActuator::sPyGetPara1, METH_NOARGS, (PY_METHODCHAR)GetPara1_doc}, + {"getPara2", (PyCFunction) SCA_RandomActuator::sPyGetPara2, METH_NOARGS, (PY_METHODCHAR)GetPara2_doc}, + {"getDistribution", (PyCFunction) SCA_RandomActuator::sPyGetDistribution, METH_NOARGS, (PY_METHODCHAR)GetDistribution_doc}, {"setProperty", (PyCFunction) SCA_RandomActuator::sPySetProperty, METH_VARARGS, (PY_METHODCHAR)SetProperty_doc}, - {"getProperty", (PyCFunction) SCA_RandomActuator::sPyGetProperty, METH_VARARGS, (PY_METHODCHAR)GetProperty_doc}, + {"getProperty", (PyCFunction) SCA_RandomActuator::sPyGetProperty, METH_NOARGS, (PY_METHODCHAR)GetProperty_doc}, //<----- Deprecated KX_PYMETHODTABLE(SCA_RandomActuator, setBoolConst), KX_PYMETHODTABLE_NOARGS(SCA_RandomActuator, setBoolUniform), @@ -407,7 +407,7 @@ const char SCA_RandomActuator::SetSeed_doc[] = "\tSet the initial seed of the generator. Equal seeds produce\n" "\tequal series. If the seed is 0, the generator will produce\n" "\tthe same value on every call.\n"; -PyObject* SCA_RandomActuator::PySetSeed(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PySetSeed(PyObject* args) { ShowDeprecationWarning("setSeed()", "the seed property"); long seedArg; if(!PyArg_ParseTuple(args, "i:setSeed", &seedArg)) { @@ -423,7 +423,8 @@ const char SCA_RandomActuator::GetSeed_doc[] = "getSeed()\n" "\tReturns the initial seed of the generator. Equal seeds produce\n" "\tequal series.\n"; -PyObject* SCA_RandomActuator::PyGetSeed(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PyGetSeed() +{ ShowDeprecationWarning("getSeed()", "the seed property"); return PyInt_FromLong(m_base->GetSeed()); } @@ -434,7 +435,8 @@ const char SCA_RandomActuator::GetPara1_doc[] = "\tReturns the first parameter of the active distribution. Refer\n" "\tto the documentation of the generator types for the meaning\n" "\tof this value."; -PyObject* SCA_RandomActuator::PyGetPara1(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PyGetPara1() +{ ShowDeprecationWarning("getPara1()", "the para1 property"); return PyFloat_FromDouble(m_parameter1); } @@ -445,7 +447,8 @@ const char SCA_RandomActuator::GetPara2_doc[] = "\tReturns the first parameter of the active distribution. Refer\n" "\tto the documentation of the generator types for the meaning\n" "\tof this value."; -PyObject* SCA_RandomActuator::PyGetPara2(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PyGetPara2() +{ ShowDeprecationWarning("getPara2()", "the para2 property"); return PyFloat_FromDouble(m_parameter2); } @@ -454,7 +457,8 @@ PyObject* SCA_RandomActuator::PyGetPara2(PyObject* self, PyObject* args, PyObjec const char SCA_RandomActuator::GetDistribution_doc[] = "getDistribution()\n" "\tReturns the type of the active distribution.\n"; -PyObject* SCA_RandomActuator::PyGetDistribution(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PyGetDistribution() +{ ShowDeprecationWarning("getDistribution()", "the distribution property"); return PyInt_FromLong(m_distribution); } @@ -465,7 +469,7 @@ const char SCA_RandomActuator::SetProperty_doc[] = "\t- name: string\n" "\tSet the property to which the random value is assigned. If the \n" "\tgenerator and property types do not match, the assignment is ignored.\n"; -PyObject* SCA_RandomActuator::PySetProperty(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PySetProperty(PyObject* args) { ShowDeprecationWarning("setProperty()", "the 'property' property"); char *nameArg; if (!PyArg_ParseTuple(args, "s:setProperty", &nameArg)) { @@ -488,7 +492,8 @@ const char SCA_RandomActuator::GetProperty_doc[] = "getProperty(name)\n" "\tReturn the property to which the random value is assigned. If the \n" "\tgenerator and property types do not match, the assignment is ignored.\n"; -PyObject* SCA_RandomActuator::PyGetProperty(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomActuator::PyGetProperty() +{ ShowDeprecationWarning("getProperty()", "the 'property' property"); return PyString_FromString(m_propname); } diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h index fbafbb69c01..8f58ed0dcec 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.h +++ b/source/gameengine/GameLogic/SCA_RandomActuator.h @@ -103,13 +103,13 @@ class SCA_RandomActuator : public SCA_IActuator static int pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); // Deprecated methods -----> - KX_PYMETHOD_DOC(SCA_RandomActuator,SetSeed); - KX_PYMETHOD_DOC(SCA_RandomActuator,GetSeed); - KX_PYMETHOD_DOC(SCA_RandomActuator,GetPara1); - KX_PYMETHOD_DOC(SCA_RandomActuator,GetPara2); - KX_PYMETHOD_DOC(SCA_RandomActuator,GetDistribution); - KX_PYMETHOD_DOC(SCA_RandomActuator,SetProperty); - KX_PYMETHOD_DOC(SCA_RandomActuator,GetProperty); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator,SetSeed); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator,GetSeed); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator,GetPara1); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator,GetPara2); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator,GetDistribution); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator,SetProperty); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomActuator,GetProperty); // <----- KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setBoolConst); diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index b0bc518825b..e04d2a8ab90 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -155,8 +155,8 @@ PyParentObject SCA_RandomSensor::Parents[] = { PyMethodDef SCA_RandomSensor::Methods[] = { {"setSeed", (PyCFunction) SCA_RandomSensor::sPySetSeed, METH_VARARGS, (PY_METHODCHAR)SetSeed_doc}, - {"getSeed", (PyCFunction) SCA_RandomSensor::sPyGetSeed, METH_VARARGS, (PY_METHODCHAR)GetSeed_doc}, - {"getLastDraw", (PyCFunction) SCA_RandomSensor::sPyGetLastDraw, METH_VARARGS, (PY_METHODCHAR)GetLastDraw_doc}, + {"getSeed", (PyCFunction) SCA_RandomSensor::sPyGetSeed, METH_NOARGS, (PY_METHODCHAR)GetSeed_doc}, + {"getLastDraw", (PyCFunction) SCA_RandomSensor::sPyGetLastDraw, METH_NOARGS, (PY_METHODCHAR)GetLastDraw_doc}, {NULL,NULL} //Sentinel }; @@ -182,7 +182,7 @@ const char SCA_RandomSensor::SetSeed_doc[] = "\tSet the initial seed of the generator. Equal seeds produce\n" "\tequal series. If the seed is 0, the generator will produce\n" "\tthe same value on every call.\n"; -PyObject* SCA_RandomSensor::PySetSeed(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomSensor::PySetSeed(PyObject* args) { ShowDeprecationWarning("setSeed()", "the seed property"); long seedArg; if(!PyArg_ParseTuple(args, "i:setSeed", &seedArg)) { @@ -199,7 +199,7 @@ const char SCA_RandomSensor::GetSeed_doc[] = "getSeed()\n" "\tReturns the initial seed of the generator. Equal seeds produce\n" "\tequal series.\n"; -PyObject* SCA_RandomSensor::PyGetSeed(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomSensor::PyGetSeed() { ShowDeprecationWarning("getSeed()", "the seed property"); return PyInt_FromLong(m_basegenerator->GetSeed()); } @@ -208,7 +208,7 @@ PyObject* SCA_RandomSensor::PyGetSeed(PyObject* self, PyObject* args, PyObject* const char SCA_RandomSensor::GetLastDraw_doc[] = "getLastDraw()\n" "\tReturn the last value that was drawn.\n"; -PyObject* SCA_RandomSensor::PyGetLastDraw(PyObject* self, PyObject* args, PyObject* kwds) { +PyObject* SCA_RandomSensor::PyGetLastDraw() { ShowDeprecationWarning("getLastDraw()", "the lastDraw property"); return PyInt_FromLong(m_lastdraw); } diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h index 844552f0b64..764692600c3 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.h +++ b/source/gameengine/GameLogic/SCA_RandomSensor.h @@ -64,11 +64,11 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); /* 1. setSeed */ - KX_PYMETHOD_DOC(SCA_RandomSensor,SetSeed); + KX_PYMETHOD_DOC_VARARGS(SCA_RandomSensor,SetSeed); /* 2. getSeed */ - KX_PYMETHOD_DOC(SCA_RandomSensor,GetSeed); - /* 3. getSeed */ - KX_PYMETHOD_DOC(SCA_RandomSensor,GetLastDraw); + KX_PYMETHOD_DOC_NOARGS(SCA_RandomSensor,GetSeed); + /* 3. getLastDraw */ + KX_PYMETHOD_DOC_NOARGS(SCA_RandomSensor,GetLastDraw); static PyObject* pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index c3b27d4d6e6..2483a6bfb39 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -164,7 +164,6 @@ int KX_NetworkMessageActuator::py_setattro(PyObject *attr, PyObject *value) { // Deprecated -----> // 1. SetToPropName PyObject* KX_NetworkMessageActuator::PySetToPropName( - PyObject* self, PyObject* args, PyObject* kwds) { @@ -183,7 +182,6 @@ PyObject* KX_NetworkMessageActuator::PySetToPropName( // 2. SetSubject PyObject* KX_NetworkMessageActuator::PySetSubject( - PyObject* self, PyObject* args, PyObject* kwds) { @@ -202,7 +200,6 @@ PyObject* KX_NetworkMessageActuator::PySetSubject( // 3. SetBodyType PyObject* KX_NetworkMessageActuator::PySetBodyType( - PyObject* self, PyObject* args, PyObject* kwds) { @@ -221,7 +218,6 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType( // 4. SetBody PyObject* KX_NetworkMessageActuator::PySetBody( - PyObject* self, PyObject* args, PyObject* kwds) { diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 9fd30450515..0c23c9b2712 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -257,7 +257,7 @@ const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = "\tsetSubjectFilterText(value)\n" "\tChange the message subject text that this sensor is listening to.\n"; -PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( PyObject* self, PyObject* value) +PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText(PyObject* value) { ShowDeprecationWarning("setSubjectFilterText()", "subject"); char* Subject = PyString_AsString(value); @@ -275,7 +275,7 @@ const char KX_NetworkMessageSensor::GetFrameMessageCount_doc[] = "\tgetFrameMessageCount()\n" "\tGet the number of messages received since the last frame.\n"; -PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount() { ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount"); return PyInt_FromLong(long(m_frame_message_count)); @@ -286,7 +286,7 @@ const char KX_NetworkMessageSensor::GetBodies_doc[] = "\tgetBodies()\n" "\tGet the list of message bodies.\n"; -PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetBodies() { ShowDeprecationWarning("getBodies()", "bodies"); if (m_BodyList) { @@ -301,7 +301,7 @@ const char KX_NetworkMessageSensor::GetSubject_doc[] = "\tgetSubject()\n" "\tGet the subject: field of the message sensor.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetSubject() { ShowDeprecationWarning("getSubject()", "subject"); return PyString_FromString(m_subject ? m_subject : ""); @@ -312,7 +312,7 @@ const char KX_NetworkMessageSensor::GetSubjects_doc[] = "\tgetSubjects()\n" "\tGet list of message subjects.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetSubjects() { ShowDeprecationWarning("getSubjects()", "subjects"); if (m_SubjectList) { diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp index 56610f2e787..121d4512265 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.cpp +++ b/source/gameengine/Ketsji/KX_CDActuator.cpp @@ -289,7 +289,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, playAll, } // Deprecated -----> -PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_CDActuator::PySetGain(PyObject* args) { float gain = 1.0; ShowDeprecationWarning("setGain()", "the volume property"); @@ -303,7 +303,7 @@ PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwd -PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_CDActuator::PyGetGain(PyObject* args) { float gain = SND_CDObject::Instance()->GetGain(); ShowDeprecationWarning("getGain()", "the volume property"); diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h index e7683297c7a..b674755e59f 100644 --- a/source/gameengine/Ketsji/KX_CDActuator.h +++ b/source/gameengine/Ketsji/KX_CDActuator.h @@ -85,8 +85,8 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> - KX_PYMETHOD(KX_CDActuator,SetGain); - KX_PYMETHOD(KX_CDActuator,GetGain); + KX_PYMETHOD_VARARGS(KX_CDActuator,SetGain); + KX_PYMETHOD_VARARGS(KX_CDActuator,GetGain); // <----- KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, startCD); diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 35165af1f82..6cc48856a94 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -408,7 +408,7 @@ PyMethodDef KX_CameraActuator::Methods[] = { {"setHeight",(PyCFunction) KX_CameraActuator::sPySetHeight, METH_VARARGS, (PY_METHODCHAR)SetHeight_doc}, {"getHeight",(PyCFunction) KX_CameraActuator::sPyGetHeight, METH_NOARGS, (PY_METHODCHAR)GetHeight_doc}, {"setXY" ,(PyCFunction) KX_CameraActuator::sPySetXY, METH_VARARGS, (PY_METHODCHAR)SetXY_doc}, - {"getXY" ,(PyCFunction) KX_CameraActuator::sPyGetXY, METH_VARARGS, (PY_METHODCHAR)GetXY_doc}, + {"getXY" ,(PyCFunction) KX_CameraActuator::sPyGetXY, METH_NOARGS, (PY_METHODCHAR)GetXY_doc}, {NULL,NULL,NULL,NULL} //Sentinel }; @@ -434,7 +434,7 @@ const char KX_CameraActuator::GetObject_doc[] = "getObject(name_only = 1)\n" "name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the object this sensor reacts to.\n"; -PyObject* KX_CameraActuator::PyGetObject(PyObject* self, PyObject* args) +PyObject* KX_CameraActuator::PyGetObject(PyObject* args) { int ret_name_only = 1; @@ -456,7 +456,7 @@ const char KX_CameraActuator::SetObject_doc[] = "setObject(object)\n" "\t- object: KX_GameObject, string or None\n" "\tSets the object this sensor reacts to.\n"; -PyObject* KX_CameraActuator::PySetObject(PyObject* self, PyObject* value) +PyObject* KX_CameraActuator::PySetObject(PyObject* value) { KX_GameObject *gameobj; @@ -479,9 +479,7 @@ PyObject* KX_CameraActuator::PySetObject(PyObject* self, PyObject* value) const char KX_CameraActuator::GetMin_doc[] = "getMin\n" "\tReturns the minimum value set in the Min: field.\n"; -PyObject* KX_CameraActuator::PyGetMin(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PyGetMin() { ShowDeprecationWarning("getMin()", "the min property"); return PyFloat_FromDouble(m_minHeight); @@ -490,9 +488,7 @@ PyObject* KX_CameraActuator::PyGetMin(PyObject* self, const char KX_CameraActuator::SetMin_doc[] = "setMin\n" "\tSets the minimum value.\n"; -PyObject* KX_CameraActuator::PySetMin(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PySetMin(PyObject* args) { ShowDeprecationWarning("setMin()", "the min property"); float min; @@ -507,9 +503,7 @@ PyObject* KX_CameraActuator::PySetMin(PyObject* self, const char KX_CameraActuator::GetMax_doc[] = "getMax\n" "\tReturns the maximum value set in the Max: field.\n"; -PyObject* KX_CameraActuator::PyGetMax(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PyGetMax() { ShowDeprecationWarning("getMax()", "the max property"); return PyFloat_FromDouble(m_maxHeight); @@ -518,9 +512,7 @@ PyObject* KX_CameraActuator::PyGetMax(PyObject* self, const char KX_CameraActuator::SetMax_doc[] = "setMax\n" "\tSets the maximum value.\n"; -PyObject* KX_CameraActuator::PySetMax(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PySetMax(PyObject* args) { ShowDeprecationWarning("getMax()", "the max property"); float max; @@ -535,9 +527,7 @@ PyObject* KX_CameraActuator::PySetMax(PyObject* self, const char KX_CameraActuator::GetHeight_doc[] = "getHeight\n" "\tReturns the height value set in the height: field.\n"; -PyObject* KX_CameraActuator::PyGetHeight(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PyGetHeight() { ShowDeprecationWarning("getHeight()", "the height property"); return PyFloat_FromDouble(m_height); @@ -546,9 +536,7 @@ PyObject* KX_CameraActuator::PyGetHeight(PyObject* self, const char KX_CameraActuator::SetHeight_doc[] = "setHeight\n" "\tSets the height value.\n"; -PyObject* KX_CameraActuator::PySetHeight(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PySetHeight(PyObject* args) { ShowDeprecationWarning("getHeight()", "the height property"); float height; @@ -564,9 +552,7 @@ const char KX_CameraActuator::SetXY_doc[] = "setXY\n" "\tSets axis the camera tries to get behind.\n" "\t1=x, 0=y\n"; -PyObject* KX_CameraActuator::PySetXY(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PySetXY(PyObject* args) { ShowDeprecationWarning("setXY()", "the xy property"); int value; @@ -583,9 +569,7 @@ const char KX_CameraActuator::GetXY_doc[] = "getXY\n" "\tGets the axis the camera tries to get behind.\n" "\tTrue = X, False = Y\n"; -PyObject* KX_CameraActuator::PyGetXY(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_CameraActuator::PyGetXY() { ShowDeprecationWarning("getXY()", "the xy property"); return PyInt_FromLong(m_x); diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h index d0aceb89aff..9298e1e868d 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.h +++ b/source/gameengine/Ketsji/KX_CameraActuator.h @@ -127,14 +127,14 @@ private : KX_PYMETHOD_DOC_O(KX_CameraActuator,SetObject); /* get current object */ KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,GetObject); - KX_PYMETHOD_DOC(KX_CameraActuator,SetMin); - KX_PYMETHOD_DOC(KX_CameraActuator,GetMin); - KX_PYMETHOD_DOC(KX_CameraActuator,SetMax); - KX_PYMETHOD_DOC(KX_CameraActuator,GetMax); - KX_PYMETHOD_DOC(KX_CameraActuator,SetHeight); - KX_PYMETHOD_DOC(KX_CameraActuator,GetHeight); - KX_PYMETHOD_DOC(KX_CameraActuator,SetXY); - KX_PYMETHOD_DOC(KX_CameraActuator,GetXY); + KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,SetMin); + KX_PYMETHOD_DOC_NOARGS(KX_CameraActuator,GetMin); + KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,SetMax); + KX_PYMETHOD_DOC_NOARGS(KX_CameraActuator,GetMax); + KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,SetHeight); + KX_PYMETHOD_DOC_NOARGS(KX_CameraActuator,GetHeight); + KX_PYMETHOD_DOC_VARARGS(KX_CameraActuator,SetXY); + KX_PYMETHOD_DOC_NOARGS(KX_CameraActuator,GetXY); static PyObject* pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index fc15568ae4f..462abd3a584 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -665,9 +665,7 @@ const char KX_ConstraintActuator::SetDamp_doc[] = "\t- duration: integer\n" "\tSets the time constant of the orientation and distance constraint.\n" "\tIf the duration is negative, it is set to 0.\n"; -PyObject* KX_ConstraintActuator::PySetDamp(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetDamp(PyObject* args) { ShowDeprecationWarning("setDamp()", "the damp property"); int dampArg; if(!PyArg_ParseTuple(args, "i:setDamp", &dampArg)) { @@ -683,7 +681,7 @@ PyObject* KX_ConstraintActuator::PySetDamp(PyObject* self, const char KX_ConstraintActuator::GetDamp_doc[] = "getDamp()\n" "\tReturns the damping parameter.\n"; -PyObject* KX_ConstraintActuator::PyGetDamp(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetDamp(){ ShowDeprecationWarning("getDamp()", "the damp property"); return PyInt_FromLong(m_posDampTime); } @@ -694,9 +692,7 @@ const char KX_ConstraintActuator::SetRotDamp_doc[] = "\t- duration: integer\n" "\tSets the time constant of the orientation constraint.\n" "\tIf the duration is negative, it is set to 0.\n"; -PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* args) { ShowDeprecationWarning("setRotDamp()", "the rotDamp property"); int dampArg; if(!PyArg_ParseTuple(args, "i:setRotDamp", &dampArg)) { @@ -712,7 +708,7 @@ PyObject* KX_ConstraintActuator::PySetRotDamp(PyObject* self, const char KX_ConstraintActuator::GetRotDamp_doc[] = "getRotDamp()\n" "\tReturns the damping time for application of the constraint.\n"; -PyObject* KX_ConstraintActuator::PyGetRotDamp(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetRotDamp(){ ShowDeprecationWarning("getRotDamp()", "the rotDamp property"); return PyInt_FromLong(m_rotDampTime); } @@ -722,9 +718,7 @@ const char KX_ConstraintActuator::SetDirection_doc[] = "setDirection(vector)\n" "\t- vector: 3-tuple\n" "\tSets the reference direction in world coordinate for the orientation constraint.\n"; -PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetDirection(PyObject* args) { ShowDeprecationWarning("setDirection()", "the direction property"); float x, y, z; MT_Scalar len; @@ -752,7 +746,7 @@ PyObject* KX_ConstraintActuator::PySetDirection(PyObject* self, const char KX_ConstraintActuator::GetDirection_doc[] = "getDirection()\n" "\tReturns the reference direction of the orientation constraint as a 3-tuple.\n"; -PyObject* KX_ConstraintActuator::PyGetDirection(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetDirection(){ ShowDeprecationWarning("getDirection()", "the direction property"); PyObject *retVal = PyList_New(3); @@ -772,9 +766,7 @@ const char KX_ConstraintActuator::SetOption_doc[] = "\t\t128 : Detect material rather than property\n" "\t\t256 : No deactivation if ray does not hit target\n" "\t\t512 : Activate distance control\n"; -PyObject* KX_ConstraintActuator::PySetOption(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetOption(PyObject* args) { ShowDeprecationWarning("setOption()", "the option property"); int option; if(!PyArg_ParseTuple(args, "i:setOption", &option)) { @@ -789,7 +781,7 @@ PyObject* KX_ConstraintActuator::PySetOption(PyObject* self, const char KX_ConstraintActuator::GetOption_doc[] = "getOption()\n" "\tReturns the option parameter.\n"; -PyObject* KX_ConstraintActuator::PyGetOption(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetOption(){ ShowDeprecationWarning("getOption()", "the option property"); return PyInt_FromLong(m_option); } @@ -801,9 +793,7 @@ const char KX_ConstraintActuator::SetTime_doc[] = "\tSets the activation time of the actuator.\n" "\tThe actuator disables itself after this many frame.\n" "\tIf set to 0 or negative, the actuator is not limited in time.\n"; -PyObject* KX_ConstraintActuator::PySetTime(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetTime(PyObject* args) { ShowDeprecationWarning("setTime()", "the time property"); int t; if(!PyArg_ParseTuple(args, "i:setTime", &t)) { @@ -820,7 +810,7 @@ PyObject* KX_ConstraintActuator::PySetTime(PyObject* self, const char KX_ConstraintActuator::GetTime_doc[] = "getTime()\n" "\tReturns the time parameter.\n"; -PyObject* KX_ConstraintActuator::PyGetTime(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetTime(){ ShowDeprecationWarning("getTime()", "the time property"); return PyInt_FromLong(m_activeTime); } @@ -831,9 +821,7 @@ const char KX_ConstraintActuator::SetProperty_doc[] = "\t- property: string\n" "\tSets the name of the property or material for the ray detection of the distance constraint.\n" "\tIf empty, the ray will detect any collisioning object.\n"; -PyObject* KX_ConstraintActuator::PySetProperty(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetProperty(PyObject* args) { ShowDeprecationWarning("setProperty()", "the 'property' property"); char *property; if (!PyArg_ParseTuple(args, "s:setProperty", &property)) { @@ -851,7 +839,7 @@ PyObject* KX_ConstraintActuator::PySetProperty(PyObject* self, const char KX_ConstraintActuator::GetProperty_doc[] = "getProperty()\n" "\tReturns the property parameter.\n"; -PyObject* KX_ConstraintActuator::PyGetProperty(PyObject* self){ +PyObject* KX_ConstraintActuator::PyGetProperty(){ ShowDeprecationWarning("getProperty()", "the 'property' property"); return PyString_FromString(m_property.Ptr()); } @@ -867,9 +855,7 @@ const char KX_ConstraintActuator::SetMin_doc[] = "\t- lower_bound: float\n" "\tSets the lower value of the interval to which the value\n" "\tis clipped.\n"; -PyObject* KX_ConstraintActuator::PySetMin(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetMin(PyObject* args) { ShowDeprecationWarning("setMin() or setDistance()", "the min or distance property"); float minArg; if(!PyArg_ParseTuple(args, "f:setMin", &minArg)) { @@ -898,7 +884,7 @@ const char KX_ConstraintActuator::GetMin_doc[] = "getMin()\n" "\tReturns the lower value of the interval to which the value\n" "\tis clipped.\n"; -PyObject* KX_ConstraintActuator::PyGetMin(PyObject* self) { +PyObject* KX_ConstraintActuator::PyGetMin() { ShowDeprecationWarning("getMin() or getDistance()", "the min or distance property"); return PyFloat_FromDouble(m_minimumBound); } @@ -914,9 +900,7 @@ const char KX_ConstraintActuator::SetMax_doc[] = "\t- upper_bound: float\n" "\tSets the upper value of the interval to which the value\n" "\tis clipped.\n"; -PyObject* KX_ConstraintActuator::PySetMax(PyObject* self, - PyObject* args, - PyObject* kwds){ +PyObject* KX_ConstraintActuator::PySetMax(PyObject* args){ ShowDeprecationWarning("setMax() or setRayLength()", "the max or rayLength property"); float maxArg; if(!PyArg_ParseTuple(args, "f:setMax", &maxArg)) { @@ -945,7 +929,7 @@ const char KX_ConstraintActuator::GetMax_doc[] = "getMax()\n" "\tReturns the upper value of the interval to which the value\n" "\tis clipped.\n"; -PyObject* KX_ConstraintActuator::PyGetMax(PyObject* self) { +PyObject* KX_ConstraintActuator::PyGetMax() { ShowDeprecationWarning("getMax() or getRayLength()", "the max or rayLength property"); return PyFloat_FromDouble(m_maximumBound); } @@ -969,9 +953,7 @@ const char KX_ConstraintActuator::SetLimit_doc[] = "\t 14 : Align Y axis\n" "\t 15 : Align Z axis\n" "\tSets the type of constraint.\n"; -PyObject* KX_ConstraintActuator::PySetLimit(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ConstraintActuator::PySetLimit(PyObject* args) { ShowDeprecationWarning("setLimit()", "the limit property"); int locrotArg; if(!PyArg_ParseTuple(args, "i:setLimit", &locrotArg)) { @@ -986,7 +968,7 @@ PyObject* KX_ConstraintActuator::PySetLimit(PyObject* self, const char KX_ConstraintActuator::GetLimit_doc[] = "getLimit()\n" "\tReturns the type of constraint.\n"; -PyObject* KX_ConstraintActuator::PyGetLimit(PyObject* self) { +PyObject* KX_ConstraintActuator::PyGetLimit() { ShowDeprecationWarning("setLimit()", "the limit property"); return PyInt_FromLong(m_locrot); } diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h index 7ad6e043c49..98f6fcd7906 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.h +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h @@ -149,27 +149,27 @@ protected: static int pyattr_check_direction(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_check_min(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetDamp); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetDamp); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetDamp); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetRotDamp); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetRotDamp); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetRotDamp); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetDirection); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetDirection); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetDirection); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetOption); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetOption); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetOption); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetTime); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetTime); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetTime); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetProperty); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetProperty); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetProperty); - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetMin); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetMin); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetMin); static const char SetDistance_doc[]; static const char GetDistance_doc[]; - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetMax); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetMax); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetMax); static const char SetRayLength_doc[]; static const char GetRayLength_doc[]; - KX_PYMETHOD_DOC(KX_ConstraintActuator,SetLimit); + KX_PYMETHOD_DOC_VARARGS(KX_ConstraintActuator,SetLimit); KX_PYMETHOD_DOC_NOARGS(KX_ConstraintActuator,GetLimit); }; diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp index d5577584616..7c3abb49159 100644 --- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp @@ -49,17 +49,12 @@ KX_ConstraintWrapper::~KX_ConstraintWrapper() { } //python integration methods -PyObject* KX_ConstraintWrapper::PyTestMethod(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ConstraintWrapper::PyTestMethod(PyObject* args, PyObject* kwds) { - Py_RETURN_NONE; } -PyObject* KX_ConstraintWrapper::PyGetConstraintId(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ConstraintWrapper::PyGetConstraintId(PyObject* args, PyObject* kwds) { return PyInt_FromLong(m_constraintId); } diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index 215c30d65b5..8b587c6f7de 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -270,7 +270,7 @@ int KX_GameActuator::py_setattro(PyObject *attr, PyObject *value) const char KX_GameActuator::GetFile_doc[] = "getFile()\n" "get the name of the file to start.\n"; -PyObject* KX_GameActuator::PyGetFile(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_GameActuator::PyGetFile(PyObject* args, PyObject* kwds) { ShowDeprecationWarning("getFile()", "the file property"); return PyString_FromString(m_filename); @@ -280,7 +280,7 @@ PyObject* KX_GameActuator::PyGetFile(PyObject* self, PyObject* args, PyObject* k const char KX_GameActuator::SetFile_doc[] = "setFile(name)\n" "set the name of the file to start.\n"; -PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_GameActuator::PySetFile(PyObject* args, PyObject* kwds) { char* new_file; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 60d2fb0a2f6..9fe7ab75267 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1179,7 +1179,7 @@ bool KX_GameObject::ConvertPythonVectorArgs(PyObject* args, } */ -PyObject* KX_GameObject::PyReplaceMesh(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PyReplaceMesh(PyObject* value) { KX_Scene *scene = KX_GetActiveScene(); char* meshname; @@ -1201,7 +1201,7 @@ PyObject* KX_GameObject::PyReplaceMesh(PyObject* self, PyObject* value) Py_RETURN_NONE; } -PyObject* KX_GameObject::PyEndObject(PyObject* self) +PyObject* KX_GameObject::PyEndObject() { KX_Scene *scene = KX_GetActiveScene(); @@ -1212,7 +1212,7 @@ PyObject* KX_GameObject::PyEndObject(PyObject* self) } -PyObject* KX_GameObject::PyGetPosition(PyObject* self) +PyObject* KX_GameObject::PyGetPosition() { ShowDeprecationWarning("getPosition()", "the position property"); return PyObjectFrom(NodeGetWorldPosition()); @@ -1701,7 +1701,7 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE PyObject *meshes= PyList_New(self->m_meshes.size()); int i; - for(i=0; i < self->m_meshes.size(); i++) + for(i=0; i < (int)self->m_meshes.size(); i++) { KX_MeshProxy* meshproxy = new KX_MeshProxy(self->m_meshes[i]); PyList_SET_ITEM(meshes, i, meshproxy->GetProxy()); @@ -1871,7 +1871,7 @@ int KX_GameObject::py_delattro(PyObject *attr) } -PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyApplyForce(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1886,7 +1886,7 @@ PyObject* KX_GameObject::PyApplyForce(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyApplyTorque(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyApplyTorque(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1901,7 +1901,7 @@ PyObject* KX_GameObject::PyApplyTorque(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyApplyRotation(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyApplyRotation(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1916,7 +1916,7 @@ PyObject* KX_GameObject::PyApplyRotation(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyApplyMovement(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyApplyMovement(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1931,7 +1931,7 @@ PyObject* KX_GameObject::PyApplyMovement(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyGetLinearVelocity(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyGetLinearVelocity(PyObject* args) { // only can get the velocity if we have a physics object connected to us... int local = 0; @@ -1945,7 +1945,7 @@ PyObject* KX_GameObject::PyGetLinearVelocity(PyObject* self, PyObject* args) } } -PyObject* KX_GameObject::PySetLinearVelocity(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PySetLinearVelocity(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1960,7 +1960,7 @@ PyObject* KX_GameObject::PySetLinearVelocity(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyGetAngularVelocity(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyGetAngularVelocity(PyObject* args) { // only can get the velocity if we have a physics object connected to us... int local = 0; @@ -1974,7 +1974,7 @@ PyObject* KX_GameObject::PyGetAngularVelocity(PyObject* self, PyObject* args) } } -PyObject* KX_GameObject::PySetAngularVelocity(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PySetAngularVelocity(PyObject* args) { int local = 0; PyObject* pyvect; @@ -1989,7 +1989,7 @@ PyObject* KX_GameObject::PySetAngularVelocity(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PySetVisible(PyObject* args) { int visible, recursive = 0; if (!PyArg_ParseTuple(args,"i|i:setVisible",&visible, &recursive)) @@ -2001,7 +2001,7 @@ PyObject* KX_GameObject::PySetVisible(PyObject* self, PyObject* args) } -PyObject* KX_GameObject::PySetOcclusion(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PySetOcclusion(PyObject* args) { int occlusion, recursive = 0; if (!PyArg_ParseTuple(args,"i|i:setOcclusion",&occlusion, &recursive)) @@ -2011,13 +2011,13 @@ PyObject* KX_GameObject::PySetOcclusion(PyObject* self, PyObject* args) Py_RETURN_NONE; } -PyObject* KX_GameObject::PyGetVisible(PyObject* self) +PyObject* KX_GameObject::PyGetVisible() { ShowDeprecationWarning("getVisible()", "the visible property"); return PyInt_FromLong(m_bVisible); } -PyObject* KX_GameObject::PyGetState(PyObject* self) +PyObject* KX_GameObject::PyGetState() { ShowDeprecationWarning("getState()", "the state property"); int state = 0; @@ -2025,7 +2025,7 @@ PyObject* KX_GameObject::PyGetState(PyObject* self) return PyInt_FromLong(state); } -PyObject* KX_GameObject::PySetState(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetState(PyObject* value) { ShowDeprecationWarning("setState()", "the state property"); int state_i = PyInt_AsLong(value); @@ -2046,7 +2046,7 @@ PyObject* KX_GameObject::PySetState(PyObject* self, PyObject* value) Py_RETURN_NONE; } -PyObject* KX_GameObject::PyGetVelocity(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyGetVelocity(PyObject* args) { // only can get the velocity if we have a physics object connected to us... MT_Point3 point(0.0,0.0,0.0); @@ -2072,13 +2072,13 @@ PyObject* KX_GameObject::PyGetVelocity(PyObject* self, PyObject* args) -PyObject* KX_GameObject::PyGetMass(PyObject* self) +PyObject* KX_GameObject::PyGetMass() { ShowDeprecationWarning("getMass()", "the mass property"); return PyFloat_FromDouble((GetPhysicsController() != NULL) ? GetPhysicsController()->GetMass() : 0.0f); } -PyObject* KX_GameObject::PyGetReactionForce(PyObject* self) +PyObject* KX_GameObject::PyGetReactionForce() { // only can get the velocity if we have a physics object connected to us... @@ -2095,7 +2095,7 @@ PyObject* KX_GameObject::PyGetReactionForce(PyObject* self) -PyObject* KX_GameObject::PyEnableRigidBody(PyObject* self) +PyObject* KX_GameObject::PyEnableRigidBody() { if(GetPhysicsController()) GetPhysicsController()->setRigidBody(true); @@ -2105,7 +2105,7 @@ PyObject* KX_GameObject::PyEnableRigidBody(PyObject* self) -PyObject* KX_GameObject::PyDisableRigidBody(PyObject* self) +PyObject* KX_GameObject::PyDisableRigidBody() { if(GetPhysicsController()) GetPhysicsController()->setRigidBody(false); @@ -2115,7 +2115,7 @@ PyObject* KX_GameObject::PyDisableRigidBody(PyObject* self) -PyObject* KX_GameObject::PyGetParent(PyObject* self) +PyObject* KX_GameObject::PyGetParent() { ShowDeprecationWarning("getParent()", "the parent property"); KX_GameObject* parent = this->GetParent(); @@ -2124,7 +2124,7 @@ PyObject* KX_GameObject::PyGetParent(PyObject* self) Py_RETURN_NONE; } -PyObject* KX_GameObject::PySetParent(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetParent(PyObject* value) { KX_GameObject *obj; if (!ConvertPythonToGameObject(value, &obj, false)) @@ -2134,24 +2134,24 @@ PyObject* KX_GameObject::PySetParent(PyObject* self, PyObject* value) Py_RETURN_NONE; } -PyObject* KX_GameObject::PyRemoveParent(PyObject* self) +PyObject* KX_GameObject::PyRemoveParent() { KX_Scene *scene = KX_GetActiveScene(); this->RemoveParent(scene); Py_RETURN_NONE; } -PyObject* KX_GameObject::PyGetChildren(PyObject* self) +PyObject* KX_GameObject::PyGetChildren() { return GetChildren()->NewProxy(true); } -PyObject* KX_GameObject::PyGetChildrenRecursive(PyObject* self) +PyObject* KX_GameObject::PyGetChildrenRecursive() { return GetChildrenRecursive()->NewProxy(true); } -PyObject* KX_GameObject::PyGetMesh(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyGetMesh(PyObject* args) { ShowDeprecationWarning("getMesh()", "the meshes property"); @@ -2173,7 +2173,7 @@ PyObject* KX_GameObject::PyGetMesh(PyObject* self, PyObject* args) -PyObject* KX_GameObject::PySetCollisionMargin(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetCollisionMargin(PyObject* value) { float collisionMargin = PyFloat_AsDouble(value); @@ -2193,7 +2193,7 @@ PyObject* KX_GameObject::PySetCollisionMargin(PyObject* self, PyObject* value) -PyObject* KX_GameObject::PyApplyImpulse(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyApplyImpulse(PyObject* args) { PyObject* pyattach; PyObject* pyimpulse; @@ -2220,7 +2220,7 @@ PyObject* KX_GameObject::PyApplyImpulse(PyObject* self, PyObject* args) -PyObject* KX_GameObject::PySuspendDynamics(PyObject* self) +PyObject* KX_GameObject::PySuspendDynamics() { SuspendDynamics(); Py_RETURN_NONE; @@ -2228,7 +2228,7 @@ PyObject* KX_GameObject::PySuspendDynamics(PyObject* self) -PyObject* KX_GameObject::PyRestoreDynamics(PyObject* self) +PyObject* KX_GameObject::PyRestoreDynamics() { RestoreDynamics(); Py_RETURN_NONE; @@ -2236,7 +2236,7 @@ PyObject* KX_GameObject::PyRestoreDynamics(PyObject* self) -PyObject* KX_GameObject::PyGetOrientation(PyObject* self) //keywords +PyObject* KX_GameObject::PyGetOrientation() //keywords { ShowDeprecationWarning("getOrientation()", "the orientation property"); return PyObjectFrom(NodeGetWorldOrientation()); @@ -2244,7 +2244,7 @@ PyObject* KX_GameObject::PyGetOrientation(PyObject* self) //keywords -PyObject* KX_GameObject::PySetOrientation(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetOrientation(PyObject* value) { ShowDeprecationWarning("setOrientation()", "the orientation property"); MT_Matrix3x3 matrix; @@ -2266,7 +2266,7 @@ PyObject* KX_GameObject::PySetOrientation(PyObject* self, PyObject* value) return NULL; } -PyObject* KX_GameObject::PyAlignAxisToVect(PyObject* self, PyObject* args) +PyObject* KX_GameObject::PyAlignAxisToVect(PyObject* args) { PyObject* pyvect; int axis = 2; //z axis is the default @@ -2288,7 +2288,7 @@ PyObject* KX_GameObject::PyAlignAxisToVect(PyObject* self, PyObject* args) return NULL; } -PyObject* KX_GameObject::PyGetAxisVect(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PyGetAxisVect(PyObject* value) { MT_Vector3 vect; if (PyVecTo(value, vect)) @@ -2298,7 +2298,7 @@ PyObject* KX_GameObject::PyGetAxisVect(PyObject* self, PyObject* value) return NULL; } -PyObject* KX_GameObject::PySetPosition(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetPosition(PyObject* value) { ShowDeprecationWarning("setPosition()", "the position property"); MT_Point3 pos; @@ -2312,7 +2312,7 @@ PyObject* KX_GameObject::PySetPosition(PyObject* self, PyObject* value) return NULL; } -PyObject* KX_GameObject::PySetWorldPosition(PyObject* self, PyObject* value) +PyObject* KX_GameObject::PySetWorldPosition(PyObject* value) { MT_Point3 pos; if (PyVecTo(value, pos)) @@ -2325,7 +2325,7 @@ PyObject* KX_GameObject::PySetWorldPosition(PyObject* self, PyObject* value) return NULL; } -PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self) +PyObject* KX_GameObject::PyGetPhysicsId() { KX_IPhysicsController* ctrl = GetPhysicsController(); uint_ptr physid=0; @@ -2336,7 +2336,7 @@ PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self) return PyInt_FromLong((long)physid); } -PyObject* KX_GameObject::PyGetPropertyNames(PyObject* self) +PyObject* KX_GameObject::PyGetPropertyNames() { PyObject *list= ConvertKeysToPython(); diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp index 558b77c1f77..f04e3c79a8e 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.cpp +++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp @@ -490,9 +490,7 @@ const char KX_IpoActuator::Set_doc[] = "\t - endframe : last frame to use (int)\n" "\t - mode? : special mode (0=normal, 1=interpret location as force, 2=additive)" "\tSet the properties of the actuator.\n"; -PyObject* KX_IpoActuator::PySet(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySet(PyObject* args) { ShowDeprecationWarning("set()", "a number properties"); @@ -533,9 +531,7 @@ const char KX_IpoActuator::SetProperty_doc[] = "setProperty(propname)\n" "\t - propname: name of the property (string)\n" "\tSet the property to be used in FromProp mode.\n"; -PyObject* KX_IpoActuator::PySetProperty(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetProperty(PyObject* args) { ShowDeprecationWarning("setProperty()", "the propName property"); @@ -556,9 +552,7 @@ const char KX_IpoActuator::SetStart_doc[] = "setStart(frame)\n" "\t - frame: first frame to use (int)\n" "\tSet the frame from which the ipo starts playing.\n"; -PyObject* KX_IpoActuator::PySetStart(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetStart(PyObject* args) { ShowDeprecationWarning("setStart()", "the startFrame property"); @@ -575,7 +569,7 @@ PyObject* KX_IpoActuator::PySetStart(PyObject* self, const char KX_IpoActuator::GetStart_doc[] = "getStart()\n" "\tReturns the frame from which the ipo starts playing.\n"; -PyObject* KX_IpoActuator::PyGetStart(PyObject* self) { +PyObject* KX_IpoActuator::PyGetStart() { ShowDeprecationWarning("getStart()", "the startFrame property"); return PyFloat_FromDouble(m_startframe); } @@ -585,9 +579,7 @@ const char KX_IpoActuator::SetEnd_doc[] = "setEnd(frame)\n" "\t - frame: last frame to use (int)\n" "\tSet the frame at which the ipo stops playing.\n"; -PyObject* KX_IpoActuator::PySetEnd(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetEnd(PyObject* args) { ShowDeprecationWarning("setEnd()", "the endFrame property"); float endArg; if(!PyArg_ParseTuple(args, "f:setEnd", &endArg)) { @@ -602,7 +594,7 @@ PyObject* KX_IpoActuator::PySetEnd(PyObject* self, const char KX_IpoActuator::GetEnd_doc[] = "getEnd()\n" "\tReturns the frame at which the ipo stops playing.\n"; -PyObject* KX_IpoActuator::PyGetEnd(PyObject* self) { +PyObject* KX_IpoActuator::PyGetEnd() { ShowDeprecationWarning("getEnd()", "the endFrame property"); return PyFloat_FromDouble(m_endframe); } @@ -612,9 +604,7 @@ const char KX_IpoActuator::SetIpoAsForce_doc[] = "setIpoAsForce(force?)\n" "\t - force? : interpret this ipo as a force? (KX_TRUE, KX_FALSE)\n" "\tSet whether to interpret the ipo as a force rather than a displacement.\n"; -PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* args) { ShowDeprecationWarning("setIpoAsForce()", "the useIpoAsForce property"); int boolArg; @@ -632,7 +622,7 @@ PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self, const char KX_IpoActuator::GetIpoAsForce_doc[] = "getIpoAsForce()\n" "\tReturns whether to interpret the ipo as a force rather than a displacement.\n"; -PyObject* KX_IpoActuator::PyGetIpoAsForce(PyObject* self) { +PyObject* KX_IpoActuator::PyGetIpoAsForce() { ShowDeprecationWarning("getIpoAsForce()", "the useIpoAsForce property"); return BoolToPyArg(m_ipo_as_force); } @@ -642,9 +632,7 @@ const char KX_IpoActuator::SetIpoAdd_doc[] = "setIpoAdd(add?)\n" "\t - add? : add flag (KX_TRUE, KX_FALSE)\n" "\tSet whether to interpret the ipo as additive rather than absolute.\n"; -PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* args) { ShowDeprecationWarning("setIpoAdd()", "the useIpoAdd property"); int boolArg; @@ -662,7 +650,7 @@ PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self, const char KX_IpoActuator::GetIpoAdd_doc[] = "getIpoAsAdd()\n" "\tReturns whether to interpret the ipo as additive rather than absolute.\n"; -PyObject* KX_IpoActuator::PyGetIpoAdd(PyObject* self) { +PyObject* KX_IpoActuator::PyGetIpoAdd() { ShowDeprecationWarning("getIpoAdd()", "the useIpoAdd property"); return BoolToPyArg(m_ipo_add); } @@ -672,9 +660,7 @@ const char KX_IpoActuator::SetType_doc[] = "setType(mode)\n" "\t - mode: Play, PingPong, Flipper, LoopStop, LoopEnd or FromProp (string)\n" "\tSet the operation mode of the actuator.\n"; -PyObject* KX_IpoActuator::PySetType(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetType(PyObject* args) { ShowDeprecationWarning("setType()", "the type property"); int typeArg; @@ -693,7 +679,7 @@ PyObject* KX_IpoActuator::PySetType(PyObject* self, const char KX_IpoActuator::GetType_doc[] = "getType()\n" "\tReturns the operation mode of the actuator.\n"; -PyObject* KX_IpoActuator::PyGetType(PyObject* self) { +PyObject* KX_IpoActuator::PyGetType() { ShowDeprecationWarning("getType()", "the type property"); return PyInt_FromLong(m_type); } @@ -705,9 +691,7 @@ const char KX_IpoActuator::SetForceIpoActsLocal_doc[] = "\t coordinates? (KX_TRUE, KX_FALSE)\n" "\tSet whether to apply the force in the object's local\n" "\tcoordinates rather than the world global coordinates.\n"; -PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* args) { ShowDeprecationWarning("setForceIpoActsLocal()", "the useIpoLocal property"); int boolArg; @@ -724,7 +708,7 @@ const char KX_IpoActuator::GetForceIpoActsLocal_doc[] = "getForceIpoActsLocal()\n" "\tReturn whether to apply the force in the object's local\n" "\tcoordinates rather than the world global coordinates.\n"; -PyObject* KX_IpoActuator::PyGetForceIpoActsLocal(PyObject* self) { +PyObject* KX_IpoActuator::PyGetForceIpoActsLocal() { ShowDeprecationWarning("getForceIpoActsLocal()", "the useIpoLocal property"); return BoolToPyArg(m_ipo_local); } diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h index 7e85a28eb96..184ad5512de 100644 --- a/source/gameengine/Ketsji/KX_IpoActuator.h +++ b/source/gameengine/Ketsji/KX_IpoActuator.h @@ -145,20 +145,20 @@ public: virtual int py_setattro(PyObject *attr, PyObject *value); //KX_PYMETHOD_DOC - KX_PYMETHOD_DOC(KX_IpoActuator,Set); - KX_PYMETHOD_DOC(KX_IpoActuator,SetProperty); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,Set); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetProperty); /* KX_PYMETHOD_DOC(KX_IpoActuator,SetKey2Key); */ - KX_PYMETHOD_DOC(KX_IpoActuator,SetStart); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetStart); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetStart); - KX_PYMETHOD_DOC(KX_IpoActuator,SetEnd); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetEnd); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetEnd); - KX_PYMETHOD_DOC(KX_IpoActuator,SetIpoAsForce); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetIpoAsForce); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetIpoAsForce); - KX_PYMETHOD_DOC(KX_IpoActuator,SetIpoAdd); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetIpoAdd); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetIpoAdd); - KX_PYMETHOD_DOC(KX_IpoActuator,SetType); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetType); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetType); - KX_PYMETHOD_DOC(KX_IpoActuator,SetForceIpoActsLocal); + KX_PYMETHOD_DOC_VARARGS(KX_IpoActuator,SetForceIpoActsLocal); KX_PYMETHOD_DOC_NOARGS(KX_IpoActuator,GetForceIpoActsLocal); }; diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index 8ce5e888349..ded862fb21d 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -139,25 +139,21 @@ void KX_MeshProxy::ReplicaSetName(STR_String name) {}; // stuff for python integration -PyObject* KX_MeshProxy::PyGetNumMaterials(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetNumMaterials(PyObject* args, PyObject* kwds) { int num = m_meshobj->NumMaterials(); ShowDeprecationWarning("getNumMaterials()", "the numMaterials property"); return PyInt_FromLong(num); } -PyObject* KX_MeshProxy::PyGetNumPolygons(PyObject* self) +PyObject* KX_MeshProxy::PyGetNumPolygons() { int num = m_meshobj->NumPolygons(); ShowDeprecationWarning("getNumPolygons()", "the numPolygons property"); return PyInt_FromLong(num); } -PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* args, PyObject* kwds) { int matid= 1; STR_String matname; @@ -175,9 +171,7 @@ PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* self, } -PyObject* KX_MeshProxy::PyGetTextureName(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetTextureName(PyObject* args, PyObject* kwds) { int matid= 1; STR_String matname; @@ -194,9 +188,7 @@ PyObject* KX_MeshProxy::PyGetTextureName(PyObject* self, } -PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* args, PyObject* kwds) { int matid= 0; int length = 0; @@ -219,9 +211,7 @@ PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* self, } -PyObject* KX_MeshProxy::PyGetVertex(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetVertex(PyObject* args, PyObject* kwds) { int vertexindex= 1; int matindex= 1; @@ -243,9 +233,7 @@ PyObject* KX_MeshProxy::PyGetVertex(PyObject* self, } -PyObject* KX_MeshProxy::PyGetPolygon(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_MeshProxy::PyGetPolygon(PyObject* args, PyObject* kwds) { int polyindex= 1; PyObject* polyob = NULL; diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index b59f18bf935..87b5c81392d 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -391,7 +391,7 @@ PyObject* KX_MouseFocusSensor::py_getattro(PyObject *attr) { const char KX_MouseFocusSensor::GetHitObject_doc[] = "getHitObject()\n" "\tReturns the object that was hit by this ray.\n"; -PyObject* KX_MouseFocusSensor::PyGetHitObject(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetHitObject() { ShowDeprecationWarning("GetHitObject()", "the hitObject property"); @@ -405,7 +405,7 @@ PyObject* KX_MouseFocusSensor::PyGetHitObject(PyObject* self) const char KX_MouseFocusSensor::GetHitPosition_doc[] = "getHitPosition()\n" "\tReturns the position (in worldcoordinates) where the object was hit by this ray.\n"; -PyObject* KX_MouseFocusSensor::PyGetHitPosition(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetHitPosition() { ShowDeprecationWarning("getHitPosition()", "the hitPosition property"); @@ -415,7 +415,7 @@ PyObject* KX_MouseFocusSensor::PyGetHitPosition(PyObject* self) const char KX_MouseFocusSensor::GetRayDirection_doc[] = "getRayDirection()\n" "\tReturns the direction from the ray (in worldcoordinates) .\n"; -PyObject* KX_MouseFocusSensor::PyGetRayDirection(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetRayDirection() { ShowDeprecationWarning("getRayDirection()", "the rayDirection property"); @@ -428,7 +428,7 @@ PyObject* KX_MouseFocusSensor::PyGetRayDirection(PyObject* self) const char KX_MouseFocusSensor::GetHitNormal_doc[] = "getHitNormal()\n" "\tReturns the normal (in worldcoordinates) at the point of collision where the object was hit by this ray.\n"; -PyObject* KX_MouseFocusSensor::PyGetHitNormal(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetHitNormal() { ShowDeprecationWarning("getHitNormal()", "the hitNormal property"); @@ -441,7 +441,7 @@ const char KX_MouseFocusSensor::GetRayTarget_doc[] = "getRayTarget()\n" "\tReturns the target of the ray that seeks the focus object,\n" "\tin worldcoordinates."; -PyObject* KX_MouseFocusSensor::PyGetRayTarget(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetRayTarget() { ShowDeprecationWarning("getRayTarget()", "the rayTarget property"); @@ -453,7 +453,7 @@ const char KX_MouseFocusSensor::GetRaySource_doc[] = "getRaySource()\n" "\tReturns the source of the ray that seeks the focus object,\n" "\tin worldcoordinates."; -PyObject* KX_MouseFocusSensor::PyGetRaySource(PyObject* self) +PyObject* KX_MouseFocusSensor::PyGetRaySource() { ShowDeprecationWarning("getRaySource()", "the raySource property"); diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp index 4f1890772d7..861c5757971 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp @@ -344,7 +344,7 @@ PyObject* KX_ObjectActuator::py_getattro(PyObject *attr) { /* Removed! */ /* 2. getForce */ -PyObject* KX_ObjectActuator::PyGetForce(PyObject* self) +PyObject* KX_ObjectActuator::PyGetForce() { PyObject *retVal = PyList_New(4); @@ -356,9 +356,7 @@ PyObject* KX_ObjectActuator::PyGetForce(PyObject* self) return retVal; } /* 3. setForce */ -PyObject* KX_ObjectActuator::PySetForce(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetForce(PyObject* args) { float vecArg[3]; int bToggle = 0; @@ -373,7 +371,7 @@ PyObject* KX_ObjectActuator::PySetForce(PyObject* self, } /* 4. getTorque */ -PyObject* KX_ObjectActuator::PyGetTorque(PyObject* self) +PyObject* KX_ObjectActuator::PyGetTorque() { PyObject *retVal = PyList_New(4); @@ -385,9 +383,7 @@ PyObject* KX_ObjectActuator::PyGetTorque(PyObject* self) return retVal; } /* 5. setTorque */ -PyObject* KX_ObjectActuator::PySetTorque(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetTorque(PyObject* args) { float vecArg[3]; int bToggle = 0; @@ -402,7 +398,7 @@ PyObject* KX_ObjectActuator::PySetTorque(PyObject* self, } /* 6. getDLoc */ -PyObject* KX_ObjectActuator::PyGetDLoc(PyObject* self) +PyObject* KX_ObjectActuator::PyGetDLoc() { PyObject *retVal = PyList_New(4); @@ -414,9 +410,7 @@ PyObject* KX_ObjectActuator::PyGetDLoc(PyObject* self) return retVal; } /* 7. setDLoc */ -PyObject* KX_ObjectActuator::PySetDLoc(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetDLoc(PyObject* args) { float vecArg[3]; int bToggle = 0; @@ -431,7 +425,7 @@ PyObject* KX_ObjectActuator::PySetDLoc(PyObject* self, } /* 8. getDRot */ -PyObject* KX_ObjectActuator::PyGetDRot(PyObject* self) +PyObject* KX_ObjectActuator::PyGetDRot() { PyObject *retVal = PyList_New(4); @@ -443,9 +437,7 @@ PyObject* KX_ObjectActuator::PyGetDRot(PyObject* self) return retVal; } /* 9. setDRot */ -PyObject* KX_ObjectActuator::PySetDRot(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetDRot(PyObject* args) { float vecArg[3]; int bToggle = 0; @@ -460,7 +452,7 @@ PyObject* KX_ObjectActuator::PySetDRot(PyObject* self, } /* 10. getLinearVelocity */ -PyObject* KX_ObjectActuator::PyGetLinearVelocity(PyObject* self) { +PyObject* KX_ObjectActuator::PyGetLinearVelocity() { PyObject *retVal = PyList_New(4); PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_linear_velocity[0])); @@ -472,9 +464,7 @@ PyObject* KX_ObjectActuator::PyGetLinearVelocity(PyObject* self) { } /* 11. setLinearVelocity */ -PyObject* KX_ObjectActuator::PySetLinearVelocity(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ObjectActuator::PySetLinearVelocity(PyObject* args) { float vecArg[3]; int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi:setLinearVelocity", &vecArg[0], &vecArg[1], @@ -489,7 +479,7 @@ PyObject* KX_ObjectActuator::PySetLinearVelocity(PyObject* self, /* 12. getAngularVelocity */ -PyObject* KX_ObjectActuator::PyGetAngularVelocity(PyObject* self) { +PyObject* KX_ObjectActuator::PyGetAngularVelocity() { PyObject *retVal = PyList_New(4); PyList_SetItem(retVal, 0, PyFloat_FromDouble(m_angular_velocity[0])); @@ -500,9 +490,7 @@ PyObject* KX_ObjectActuator::PyGetAngularVelocity(PyObject* self) { return retVal; } /* 13. setAngularVelocity */ -PyObject* KX_ObjectActuator::PySetAngularVelocity(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ObjectActuator::PySetAngularVelocity(PyObject* args) { float vecArg[3]; int bToggle = 0; if (!PyArg_ParseTuple(args, "fffi:setAngularVelocity", &vecArg[0], &vecArg[1], @@ -516,9 +504,7 @@ PyObject* KX_ObjectActuator::PySetAngularVelocity(PyObject* self, } /* 13. setDamping */ -PyObject* KX_ObjectActuator::PySetDamping(PyObject* self, - PyObject* args, - PyObject* kwds) { +PyObject* KX_ObjectActuator::PySetDamping(PyObject* args) { int damping = 0; if (!PyArg_ParseTuple(args, "i:setDamping", &damping) || damping < 0 || damping > 1000) { return NULL; @@ -528,11 +514,11 @@ PyObject* KX_ObjectActuator::PySetDamping(PyObject* self, } /* 13. getVelocityDamping */ -PyObject* KX_ObjectActuator::PyGetDamping(PyObject* self) { +PyObject* KX_ObjectActuator::PyGetDamping() { return Py_BuildValue("i",m_damping); } /* 6. getForceLimitX */ -PyObject* KX_ObjectActuator::PyGetForceLimitX(PyObject* self) +PyObject* KX_ObjectActuator::PyGetForceLimitX() { PyObject *retVal = PyList_New(3); @@ -543,9 +529,7 @@ PyObject* KX_ObjectActuator::PyGetForceLimitX(PyObject* self) return retVal; } /* 7. setForceLimitX */ -PyObject* KX_ObjectActuator::PySetForceLimitX(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetForceLimitX(PyObject* args) { float vecArg[2]; int bToggle = 0; @@ -559,7 +543,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitX(PyObject* self, } /* 6. getForceLimitY */ -PyObject* KX_ObjectActuator::PyGetForceLimitY(PyObject* self) +PyObject* KX_ObjectActuator::PyGetForceLimitY() { PyObject *retVal = PyList_New(3); @@ -570,9 +554,7 @@ PyObject* KX_ObjectActuator::PyGetForceLimitY(PyObject* self) return retVal; } /* 7. setForceLimitY */ -PyObject* KX_ObjectActuator::PySetForceLimitY(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetForceLimitY(PyObject* args) { float vecArg[2]; int bToggle = 0; @@ -586,7 +568,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitY(PyObject* self, } /* 6. getForceLimitZ */ -PyObject* KX_ObjectActuator::PyGetForceLimitZ(PyObject* self) +PyObject* KX_ObjectActuator::PyGetForceLimitZ() { PyObject *retVal = PyList_New(3); @@ -597,9 +579,7 @@ PyObject* KX_ObjectActuator::PyGetForceLimitZ(PyObject* self) return retVal; } /* 7. setForceLimitZ */ -PyObject* KX_ObjectActuator::PySetForceLimitZ(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetForceLimitZ(PyObject* args) { float vecArg[2]; int bToggle = 0; @@ -613,7 +593,7 @@ PyObject* KX_ObjectActuator::PySetForceLimitZ(PyObject* self, } /* 4. getPID */ -PyObject* KX_ObjectActuator::PyGetPID(PyObject* self) +PyObject* KX_ObjectActuator::PyGetPID() { PyObject *retVal = PyList_New(3); @@ -624,9 +604,7 @@ PyObject* KX_ObjectActuator::PyGetPID(PyObject* self) return retVal; } /* 5. setPID */ -PyObject* KX_ObjectActuator::PySetPID(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_ObjectActuator::PySetPID(PyObject* args) { float vecArg[3]; if (!PyArg_ParseTuple(args, "fff:setPID", &vecArg[0], &vecArg[1], &vecArg[2])) { diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.h b/source/gameengine/Ketsji/KX_ObjectActuator.h index 00c8fb700ae..a812942a0ae 100644 --- a/source/gameengine/Ketsji/KX_ObjectActuator.h +++ b/source/gameengine/Ketsji/KX_ObjectActuator.h @@ -156,27 +156,27 @@ public: virtual PyObject* py_getattro(PyObject *attr); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetForce); - KX_PYMETHOD(KX_ObjectActuator,SetForce); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetForce); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetTorque); - KX_PYMETHOD(KX_ObjectActuator,SetTorque); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetTorque); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetDLoc); - KX_PYMETHOD(KX_ObjectActuator,SetDLoc); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetDLoc); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetDRot); - KX_PYMETHOD(KX_ObjectActuator,SetDRot); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetDRot); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetLinearVelocity); - KX_PYMETHOD(KX_ObjectActuator,SetLinearVelocity); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetLinearVelocity); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetAngularVelocity); - KX_PYMETHOD(KX_ObjectActuator,SetAngularVelocity); - KX_PYMETHOD(KX_ObjectActuator,SetDamping); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetAngularVelocity); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetDamping); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetDamping); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetForceLimitX); - KX_PYMETHOD(KX_ObjectActuator,SetForceLimitX); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetForceLimitX); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetForceLimitY); - KX_PYMETHOD(KX_ObjectActuator,SetForceLimitY); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetForceLimitY); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetForceLimitZ); - KX_PYMETHOD(KX_ObjectActuator,SetForceLimitZ); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetForceLimitZ); KX_PYMETHOD_NOARGS(KX_ObjectActuator,GetPID); - KX_PYMETHOD(KX_ObjectActuator,SetPID); + KX_PYMETHOD_VARARGS(KX_ObjectActuator,SetPID); }; #endif //__KX_OBJECTACTUATOR diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 5263dd72065..69c0a3cd510 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -221,7 +221,7 @@ const char KX_ParentActuator::SetObject_doc[] = "setObject(object)\n" "\t- object: KX_GameObject, string or None\n" "\tSet the object to set as parent.\n"; -PyObject* KX_ParentActuator::PySetObject(PyObject* self, PyObject* value) { +PyObject* KX_ParentActuator::PySetObject(PyObject* value) { KX_GameObject *gameobj; ShowDeprecationWarning("setObject()", "the object property"); @@ -246,7 +246,7 @@ const char KX_ParentActuator::GetObject_doc[] = "getObject(name_only = 1)\n" "name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the object that is set to.\n"; -PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args) +PyObject* KX_ParentActuator::PyGetObject(PyObject* args) { int ret_name_only = 1; diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp index f000d079927..fda639c09e0 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp @@ -51,9 +51,7 @@ KX_PhysicsObjectWrapper::~KX_PhysicsObjectWrapper() } -PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* args) { float x,y,z; if (PyArg_ParseTuple(args,"fff:setPosition",&x,&y,&z)) @@ -67,9 +65,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* self, } -PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* args) { float x,y,z; int local; @@ -83,9 +79,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* args) { float x,y,z; int local; @@ -99,9 +93,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* args) { int active; if (PyArg_ParseTuple(args,"i:setActive",&active)) diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h index 6dc10f030f0..7e10dc3ccf4 100644 --- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h +++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h @@ -42,10 +42,10 @@ public: KX_PhysicsObjectWrapper(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsEnvironment* physenv,PyTypeObject *T = &Type); virtual ~KX_PhysicsObjectWrapper(); - KX_PYMETHOD(KX_PhysicsObjectWrapper , SetPosition); - KX_PYMETHOD(KX_PhysicsObjectWrapper,SetLinearVelocity); - KX_PYMETHOD(KX_PhysicsObjectWrapper,SetAngularVelocity); - KX_PYMETHOD(KX_PhysicsObjectWrapper,SetActive); + KX_PYMETHOD_VARARGS(KX_PhysicsObjectWrapper,SetPosition); + KX_PYMETHOD_VARARGS(KX_PhysicsObjectWrapper,SetLinearVelocity); + KX_PYMETHOD_VARARGS(KX_PhysicsObjectWrapper,SetAngularVelocity); + KX_PYMETHOD_VARARGS(KX_PhysicsObjectWrapper,SetActive); private: class PHY_IPhysicsController* m_ctrl; diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index e227ba09fba..5888579431a 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -123,7 +123,7 @@ PyObject* KX_PolyProxy::py_getattro(PyObject *attr) // the one of the polygon RAS_MaterialBucket* polyBucket = m_polygon->GetMaterial(); unsigned int matid; - for (matid=0; matidNumMaterials(); matid++) + for (matid=0; matid<(unsigned int)m_mesh->NumMaterials(); matid++) { RAS_MeshMaterial* meshMat = m_mesh->GetMeshMaterial(matid); if (meshMat->m_bucket == polyBucket) @@ -189,7 +189,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_PolyProxy, getMaterialIndex, { RAS_MaterialBucket* polyBucket = m_polygon->GetMaterial(); unsigned int matid; - for (matid=0; matidNumMaterials(); matid++) + for (matid=0; matid<(unsigned int)m_mesh->NumMaterials(); matid++) { RAS_MeshMaterial* meshMat = m_mesh->GetMeshMaterial(matid); if (meshMat->m_bucket == polyBucket) diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 1c3bb250b03..2227072d2e7 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -183,9 +183,9 @@ from = Name of object to sned the string from"; static PyObject* gPySendMessage(PyObject*, PyObject* args) { char* subject; - char* body = ""; - char* to = ""; - char* from = ""; + char* body = (char *)""; + char* to = (char *)""; + char* from = (char *)""; if (!PyArg_ParseTuple(args, "s|sss:sendMessage", &subject, &body, &to, &from)) return NULL; @@ -1422,7 +1422,7 @@ static void clearGameModules() /* Note, user modules could still reference these modules * but since the dict's are cleared their members wont be accessible */ - PyObject *modules= PySys_GetObject("modules"); + PyObject *modules= PySys_GetObject((char *)"modules"); clearModule(modules, "Expression"); clearModule(modules, "CValue"); clearModule(modules, "PhysicsConstraints"); diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 2bf60dbc102..dcd11b551a1 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -160,7 +160,7 @@ void initPyTypes(void) /* For now just do PyType_Ready */ PyObject *mod= PyModule_New("GameTypes"); PyObject *dict= PyModule_GetDict(mod); - PyDict_SetItemString(PySys_GetObject("modules"), "GameTypes", mod); + PyDict_SetItemString(PySys_GetObject((char *)"modules"), (char *)"GameTypes", mod); Py_DECREF(mod); PyType_Ready_Attr(dict, BL_ActionActuator); diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp index 40af3b22aeb..8277e7ef19c 100644 --- a/source/gameengine/Ketsji/KX_RadarSensor.cpp +++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp @@ -207,7 +207,7 @@ const char KX_RadarSensor::GetConeOrigin_doc[] = "getConeOrigin()\n" "\tReturns the origin of the cone with which to test. The origin\n" "\tis in the middle of the cone."; -PyObject* KX_RadarSensor::PyGetConeOrigin(PyObject* self) { +PyObject* KX_RadarSensor::PyGetConeOrigin() { ShowDeprecationWarning("getConeOrigin()", "the coneOrigin property"); PyObject *retVal = PyList_New(3); @@ -223,7 +223,7 @@ PyObject* KX_RadarSensor::PyGetConeOrigin(PyObject* self) { const char KX_RadarSensor::GetConeTarget_doc[] = "getConeTarget()\n" "\tReturns the center of the bottom face of the cone with which to test.\n"; -PyObject* KX_RadarSensor::PyGetConeTarget(PyObject* self) { +PyObject* KX_RadarSensor::PyGetConeTarget() { ShowDeprecationWarning("getConeTarget()", "the coneTarget property"); PyObject *retVal = PyList_New(3); @@ -239,7 +239,7 @@ PyObject* KX_RadarSensor::PyGetConeTarget(PyObject* self) { const char KX_RadarSensor::GetConeHeight_doc[] = "getConeHeight()\n" "\tReturns the height of the cone with which to test.\n"; -PyObject* KX_RadarSensor::PyGetConeHeight(PyObject* self) { +PyObject* KX_RadarSensor::PyGetConeHeight() { ShowDeprecationWarning("getConeHeight()", "the distance property"); diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp index 080a217b9bd..06c04dbf10d 100644 --- a/source/gameengine/Ketsji/KX_RaySensor.cpp +++ b/source/gameengine/Ketsji/KX_RaySensor.cpp @@ -384,7 +384,7 @@ PyObject* KX_RaySensor::pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_ const char KX_RaySensor::GetHitObject_doc[] = "getHitObject()\n" "\tReturns the name of the object that was hit by this ray.\n"; -PyObject* KX_RaySensor::PyGetHitObject(PyObject* self) +PyObject* KX_RaySensor::PyGetHitObject() { ShowDeprecationWarning("getHitObject()", "the hitObject property"); if (m_hitObject) @@ -398,7 +398,7 @@ PyObject* KX_RaySensor::PyGetHitObject(PyObject* self) const char KX_RaySensor::GetHitPosition_doc[] = "getHitPosition()\n" "\tReturns the position (in worldcoordinates) where the object was hit by this ray.\n"; -PyObject* KX_RaySensor::PyGetHitPosition(PyObject* self) +PyObject* KX_RaySensor::PyGetHitPosition() { ShowDeprecationWarning("getHitPosition()", "the hitPosition property"); @@ -414,7 +414,7 @@ PyObject* KX_RaySensor::PyGetHitPosition(PyObject* self) const char KX_RaySensor::GetRayDirection_doc[] = "getRayDirection()\n" "\tReturns the direction from the ray (in worldcoordinates) .\n"; -PyObject* KX_RaySensor::PyGetRayDirection(PyObject* self) +PyObject* KX_RaySensor::PyGetRayDirection() { ShowDeprecationWarning("getRayDirection()", "the rayDirection property"); @@ -430,7 +430,7 @@ PyObject* KX_RaySensor::PyGetRayDirection(PyObject* self) const char KX_RaySensor::GetHitNormal_doc[] = "getHitNormal()\n" "\tReturns the normal (in worldcoordinates) of the object at the location where the object was hit by this ray.\n"; -PyObject* KX_RaySensor::PyGetHitNormal(PyObject* self) +PyObject* KX_RaySensor::PyGetHitNormal() { ShowDeprecationWarning("getHitNormal()", "the hitNormal property"); diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index 1ab4bd21120..f1c7b757579 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -271,7 +271,7 @@ const char KX_SCA_AddObjectActuator::SetObject_doc[] = "\t- object: KX_GameObject, string or None\n" "\tSets the object that will be added. There has to be an object\n" "\tof this name. If not, this function does nothing.\n"; -PyObject* KX_SCA_AddObjectActuator::PySetObject(PyObject* self, PyObject* value) +PyObject* KX_SCA_AddObjectActuator::PySetObject(PyObject* value) { KX_GameObject *gameobj; @@ -300,7 +300,7 @@ const char KX_SCA_AddObjectActuator::SetTime_doc[] = "\tIf the duration is negative, it is set to 0.\n"; -PyObject* KX_SCA_AddObjectActuator::PySetTime(PyObject* self, PyObject* value) +PyObject* KX_SCA_AddObjectActuator::PySetTime(PyObject* value) { ShowDeprecationWarning("setTime()", "the time property"); int deltatime = PyInt_AsLong(value); @@ -323,7 +323,7 @@ const char KX_SCA_AddObjectActuator::GetTime_doc[] = "\tReturns the lifetime of the object that will be added.\n"; -PyObject* KX_SCA_AddObjectActuator::PyGetTime(PyObject* self) +PyObject* KX_SCA_AddObjectActuator::PyGetTime() { ShowDeprecationWarning("getTime()", "the time property"); return PyInt_FromLong(m_timeProp); @@ -335,7 +335,7 @@ const char KX_SCA_AddObjectActuator::GetObject_doc[] = "getObject(name_only = 1)\n" "name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the name of the object that will be added.\n"; -PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self, PyObject* args) +PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* args) { int ret_name_only = 1; @@ -361,7 +361,7 @@ const char KX_SCA_AddObjectActuator::GetLinearVelocity_doc[] = "\tReturns the linear velocity that will be assigned to \n" "\tthe created object.\n"; -PyObject* KX_SCA_AddObjectActuator::PyGetLinearVelocity(PyObject* self) +PyObject* KX_SCA_AddObjectActuator::PyGetLinearVelocity() { ShowDeprecationWarning("getLinearVelocity()", "the linearVelocity property"); PyObject *retVal = PyList_New(3); @@ -384,7 +384,7 @@ const char KX_SCA_AddObjectActuator::SetLinearVelocity_doc[] = "\t- local: bool\n" "\tAssign this velocity to the created object. \n"; -PyObject* KX_SCA_AddObjectActuator::PySetLinearVelocity(PyObject* self, PyObject* args) +PyObject* KX_SCA_AddObjectActuator::PySetLinearVelocity(PyObject* args) { ShowDeprecationWarning("setLinearVelocity()", "the linearVelocity property"); @@ -404,7 +404,7 @@ const char KX_SCA_AddObjectActuator::GetAngularVelocity_doc[] = "\tReturns the angular velocity that will be assigned to \n" "\tthe created object.\n"; -PyObject* KX_SCA_AddObjectActuator::PyGetAngularVelocity(PyObject* self) +PyObject* KX_SCA_AddObjectActuator::PyGetAngularVelocity() { ShowDeprecationWarning("getAngularVelocity()", "the angularVelocity property"); PyObject *retVal = PyList_New(3); @@ -427,7 +427,7 @@ const char KX_SCA_AddObjectActuator::SetAngularVelocity_doc[] = "\t- local: bool\n" "\tAssign this angular velocity to the created object. \n"; -PyObject* KX_SCA_AddObjectActuator::PySetAngularVelocity(PyObject* self, PyObject* args) +PyObject* KX_SCA_AddObjectActuator::PySetAngularVelocity(PyObject* args) { ShowDeprecationWarning("setAngularVelocity()", "the angularVelocity property"); @@ -468,7 +468,7 @@ void KX_SCA_AddObjectActuator::InstantAddObject() } } -PyObject* KX_SCA_AddObjectActuator::PyInstantAddObject(PyObject* self) +PyObject* KX_SCA_AddObjectActuator::PyInstantAddObject() { InstantAddObject(); @@ -483,7 +483,7 @@ const char KX_SCA_AddObjectActuator::GetLastCreatedObject_doc[] = "\tReturn the last created object. \n"; -PyObject* KX_SCA_AddObjectActuator::PyGetLastCreatedObject(PyObject* self) +PyObject* KX_SCA_AddObjectActuator::PyGetLastCreatedObject() { ShowDeprecationWarning("getLastCreatedObject()", "the objectLastCreated property"); SCA_IObject* result = this->GetLastCreatedObject(); diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index b678b14c2f5..44dedb38429 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -141,7 +141,7 @@ const char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] = "\t- name: string or None\n" "\tSet the mesh that will be substituted for the current one.\n"; -PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* self, PyObject* value) +PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* value) { ShowDeprecationWarning("setMesh()", "the mesh property"); if (value == Py_None) { diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 414251d6b06..f54d8542260 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -263,9 +263,9 @@ PyMethodDef KX_SceneActuator::Methods[] = {"setUseRestart", (PyCFunction) KX_SceneActuator::sPySetUseRestart, METH_VARARGS, (PY_METHODCHAR)SetUseRestart_doc}, {"setScene", (PyCFunction) KX_SceneActuator::sPySetScene, METH_VARARGS, (PY_METHODCHAR)SetScene_doc}, {"setCamera", (PyCFunction) KX_SceneActuator::sPySetCamera, METH_VARARGS, (PY_METHODCHAR)SetCamera_doc}, - {"getUseRestart", (PyCFunction) KX_SceneActuator::sPyGetUseRestart, METH_VARARGS, (PY_METHODCHAR)GetUseRestart_doc}, - {"getScene", (PyCFunction) KX_SceneActuator::sPyGetScene, METH_VARARGS, (PY_METHODCHAR)GetScene_doc}, - {"getCamera", (PyCFunction) KX_SceneActuator::sPyGetCamera, METH_VARARGS, (PY_METHODCHAR)GetCamera_doc}, + {"getUseRestart", (PyCFunction) KX_SceneActuator::sPyGetUseRestart, METH_NOARGS, (PY_METHODCHAR)GetUseRestart_doc}, + {"getScene", (PyCFunction) KX_SceneActuator::sPyGetScene, METH_NOARGS, (PY_METHODCHAR)GetScene_doc}, + {"getCamera", (PyCFunction) KX_SceneActuator::sPyGetCamera, METH_NOARGS, (PY_METHODCHAR)GetCamera_doc}, //<----- Deprecated {NULL,NULL} //Sentinel }; @@ -353,9 +353,7 @@ const char KX_SceneActuator::SetUseRestart_doc[] = "setUseRestart(flag)\n" "\t- flag: 0 or 1.\n" "\tSet flag to 1 to restart the scene.\n" ; -PyObject* KX_SceneActuator::PySetUseRestart(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PySetUseRestart(PyObject* args) { ShowDeprecationWarning("setUseRestart()", "(no replacement)"); int boolArg; @@ -376,9 +374,7 @@ PyObject* KX_SceneActuator::PySetUseRestart(PyObject* self, const char KX_SceneActuator::GetUseRestart_doc[] = "getUseRestart()\n" "\tReturn whether the scene will be restarted.\n" ; -PyObject* KX_SceneActuator::PyGetUseRestart(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PyGetUseRestart() { ShowDeprecationWarning("getUseRestart()", "(no replacement)"); return PyInt_FromLong(!(m_restart == 0)); @@ -391,9 +387,7 @@ const char KX_SceneActuator::SetScene_doc[] = "setScene(scene)\n" "\t- scene: string\n" "\tSet the name of scene the actuator will switch to.\n" ; -PyObject* KX_SceneActuator::PySetScene(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PySetScene(PyObject* args) { ShowDeprecationWarning("setScene()", "the scene property"); /* one argument: a scene, ignore the rest */ @@ -416,9 +410,7 @@ PyObject* KX_SceneActuator::PySetScene(PyObject* self, const char KX_SceneActuator::GetScene_doc[] = "getScene()\n" "\tReturn the name of the scene the actuator wants to switch to.\n" ; -PyObject* KX_SceneActuator::PyGetScene(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PyGetScene() { ShowDeprecationWarning("getScene()", "the scene property"); return PyString_FromString(m_nextSceneName); @@ -431,9 +423,7 @@ const char KX_SceneActuator::SetCamera_doc[] = "setCamera(camera)\n" "\t- camera: string\n" "\tSet the camera to switch to.\n" ; -PyObject* KX_SceneActuator::PySetCamera(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PySetCamera(PyObject* args) { ShowDeprecationWarning("setCamera()", "the camera property"); PyObject *cam; @@ -483,9 +473,7 @@ PyObject* KX_SceneActuator::PySetCamera(PyObject* self, const char KX_SceneActuator::GetCamera_doc[] = "getCamera()\n" "\tReturn the name of the camera to switch to.\n" ; -PyObject* KX_SceneActuator::PyGetCamera(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_SceneActuator::PyGetCamera() { ShowDeprecationWarning("getCamera()", "the camera property"); if (m_camera) { diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h index f1904f95c2a..803c5106a60 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.h +++ b/source/gameengine/Ketsji/KX_SceneActuator.h @@ -99,17 +99,17 @@ class KX_SceneActuator : public SCA_IActuator /* Removed */ /* 2. setUseRestart: */ - KX_PYMETHOD_DOC(KX_SceneActuator,SetUseRestart); + KX_PYMETHOD_DOC_VARARGS(KX_SceneActuator,SetUseRestart); /* 3. getUseRestart: */ - KX_PYMETHOD_DOC(KX_SceneActuator,GetUseRestart); + KX_PYMETHOD_DOC_NOARGS(KX_SceneActuator,GetUseRestart); /* 4. setScene: */ - KX_PYMETHOD_DOC(KX_SceneActuator,SetScene); + KX_PYMETHOD_DOC_VARARGS(KX_SceneActuator,SetScene); /* 5. getScene: */ - KX_PYMETHOD_DOC(KX_SceneActuator,GetScene); + KX_PYMETHOD_DOC_NOARGS(KX_SceneActuator,GetScene); /* 6. setCamera: */ - KX_PYMETHOD_DOC(KX_SceneActuator,SetCamera); + KX_PYMETHOD_DOC_VARARGS(KX_SceneActuator,SetCamera); /* 7. getCamera: */ - KX_PYMETHOD_DOC(KX_SceneActuator,GetCamera); + KX_PYMETHOD_DOC_NOARGS(KX_SceneActuator,GetCamera); static PyObject* pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index d7449c7effa..eb1d91d760f 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -267,20 +267,20 @@ PyParentObject KX_SoundActuator::Parents[] = { PyMethodDef KX_SoundActuator::Methods[] = { // Deprecated -----> {"setFilename", (PyCFunction) KX_SoundActuator::sPySetFilename, METH_VARARGS,NULL}, - {"getFilename", (PyCFunction) KX_SoundActuator::sPyGetFilename, METH_VARARGS,NULL}, + {"getFilename", (PyCFunction) KX_SoundActuator::sPyGetFilename, METH_NOARGS,NULL}, {"setGain",(PyCFunction) KX_SoundActuator::sPySetGain,METH_VARARGS,NULL}, - {"getGain",(PyCFunction) KX_SoundActuator::sPyGetGain,METH_VARARGS,NULL}, + {"getGain",(PyCFunction) KX_SoundActuator::sPyGetGain,METH_NOARGS,NULL}, {"setPitch",(PyCFunction) KX_SoundActuator::sPySetPitch,METH_VARARGS,NULL}, - {"getPitch",(PyCFunction) KX_SoundActuator::sPyGetPitch,METH_VARARGS,NULL}, + {"getPitch",(PyCFunction) KX_SoundActuator::sPyGetPitch,METH_NOARGS,NULL}, {"setRollOffFactor",(PyCFunction) KX_SoundActuator::sPySetRollOffFactor,METH_VARARGS,NULL}, - {"getRollOffFactor",(PyCFunction) KX_SoundActuator::sPyGetRollOffFactor,METH_VARARGS,NULL}, + {"getRollOffFactor",(PyCFunction) KX_SoundActuator::sPyGetRollOffFactor,METH_NOARGS,NULL}, {"setLooping",(PyCFunction) KX_SoundActuator::sPySetLooping,METH_VARARGS,NULL}, - {"getLooping",(PyCFunction) KX_SoundActuator::sPyGetLooping,METH_VARARGS,NULL}, + {"getLooping",(PyCFunction) KX_SoundActuator::sPyGetLooping,METH_NOARGS,NULL}, {"setPosition",(PyCFunction) KX_SoundActuator::sPySetPosition,METH_VARARGS,NULL}, {"setVelocity",(PyCFunction) KX_SoundActuator::sPySetVelocity,METH_VARARGS,NULL}, {"setOrientation",(PyCFunction) KX_SoundActuator::sPySetOrientation,METH_VARARGS,NULL}, {"setType",(PyCFunction) KX_SoundActuator::sPySetType,METH_VARARGS,NULL}, - {"getType",(PyCFunction) KX_SoundActuator::sPyGetType,METH_VARARGS,NULL}, + {"getType",(PyCFunction) KX_SoundActuator::sPyGetType,METH_NOARGS,NULL}, // <----- KX_PYMETHODTABLE_NOARGS(KX_SoundActuator, startSound), @@ -587,7 +587,7 @@ int KX_SoundActuator::pyattr_set_orientation(void *self, const struct KX_PYATTRI } // Deprecated -----> -PyObject* KX_SoundActuator::PySetFilename(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetFilename(PyObject* args) { char *soundName = NULL; ShowDeprecationWarning("setFilename()", "the filename property"); @@ -599,7 +599,7 @@ PyObject* KX_SoundActuator::PySetFilename(PyObject* self, PyObject* args, PyObje Py_RETURN_NONE; } -PyObject* KX_SoundActuator::PyGetFilename(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetFilename() { ShowDeprecationWarning("getFilename()", "the filename property"); if (!m_soundObject) @@ -616,7 +616,7 @@ PyObject* KX_SoundActuator::PyGetFilename(PyObject* self, PyObject* args, PyObje return PyString_FromString(name); } -PyObject* KX_SoundActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetGain(PyObject* args) { ShowDeprecationWarning("setGain()", "the volume property"); float gain = 1.0; @@ -631,7 +631,7 @@ PyObject* KX_SoundActuator::PySetGain(PyObject* self, PyObject* args, PyObject* -PyObject* KX_SoundActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetGain() { ShowDeprecationWarning("getGain()", "the volume property"); float gain = (m_soundObject) ? m_soundObject->GetGain() : 1.0f; @@ -642,7 +642,7 @@ PyObject* KX_SoundActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* -PyObject* KX_SoundActuator::PySetPitch(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetPitch(PyObject* args) { ShowDeprecationWarning("setPitch()", "the pitch property"); float pitch = 1.0; @@ -657,7 +657,7 @@ PyObject* KX_SoundActuator::PySetPitch(PyObject* self, PyObject* args, PyObject* -PyObject* KX_SoundActuator::PyGetPitch(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetPitch() { ShowDeprecationWarning("getPitch()", "the pitch property"); float pitch = (m_soundObject) ? m_soundObject->GetPitch() : 1.0; @@ -668,7 +668,7 @@ PyObject* KX_SoundActuator::PyGetPitch(PyObject* self, PyObject* args, PyObject* -PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* args) { ShowDeprecationWarning("setRollOffFactor()", "the rollOffFactor property"); float rollofffactor = 1.0; @@ -683,7 +683,7 @@ PyObject* KX_SoundActuator::PySetRollOffFactor(PyObject* self, PyObject* args, P -PyObject* KX_SoundActuator::PyGetRollOffFactor(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetRollOffFactor() { ShowDeprecationWarning("getRollOffFactor()", "the rollOffFactor property"); float rollofffactor = (m_soundObject) ? m_soundObject->GetRollOffFactor() : 1.0; @@ -694,7 +694,7 @@ PyObject* KX_SoundActuator::PyGetRollOffFactor(PyObject* self, PyObject* args, P -PyObject* KX_SoundActuator::PySetLooping(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetLooping(PyObject* args) { ShowDeprecationWarning("setLooping()", "the looping property"); bool looping = 1; @@ -709,7 +709,7 @@ PyObject* KX_SoundActuator::PySetLooping(PyObject* self, PyObject* args, PyObjec -PyObject* KX_SoundActuator::PyGetLooping(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetLooping() { ShowDeprecationWarning("getLooping()", "the looping property"); int looping = (m_soundObject) ? m_soundObject->GetLoopMode() : (int)SND_LOOP_OFF; @@ -720,7 +720,7 @@ PyObject* KX_SoundActuator::PyGetLooping(PyObject* self, PyObject* args, PyObjec -PyObject* KX_SoundActuator::PySetPosition(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetPosition(PyObject* args) { MT_Point3 pos; ShowDeprecationWarning("setPosition()", "the position property"); @@ -739,7 +739,7 @@ PyObject* KX_SoundActuator::PySetPosition(PyObject* self, PyObject* args, PyObje -PyObject* KX_SoundActuator::PySetVelocity(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetVelocity(PyObject* args) { MT_Vector3 vel; ShowDeprecationWarning("setVelocity()", "the velocity property"); @@ -758,7 +758,7 @@ PyObject* KX_SoundActuator::PySetVelocity(PyObject* self, PyObject* args, PyObje -PyObject* KX_SoundActuator::PySetOrientation(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetOrientation(PyObject* args) { MT_Matrix3x3 ori; ShowDeprecationWarning("setOrientation()", "the orientation property"); @@ -781,7 +781,7 @@ PyObject* KX_SoundActuator::PySetOrientation(PyObject* self, PyObject* args, PyO Py_RETURN_NONE; } -PyObject* KX_SoundActuator::PySetType(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PySetType(PyObject* args) { int typeArg; ShowDeprecationWarning("setType()", "the type property"); @@ -798,7 +798,7 @@ PyObject* KX_SoundActuator::PySetType(PyObject* self, PyObject* args, PyObject* Py_RETURN_NONE; } -PyObject* KX_SoundActuator::PyGetType(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_SoundActuator::PyGetType() { ShowDeprecationWarning("getType()", "the type property"); return PyInt_FromLong(m_type); diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h index eb18ba9f13e..d5e678bbecd 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.h +++ b/source/gameengine/Ketsji/KX_SoundActuator.h @@ -108,21 +108,21 @@ public: static PyObject* pyattr_get_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef); // Deprecated -----> - KX_PYMETHOD(KX_SoundActuator,SetFilename); - KX_PYMETHOD(KX_SoundActuator,GetFilename); - KX_PYMETHOD(KX_SoundActuator,SetGain); - KX_PYMETHOD(KX_SoundActuator,GetGain); - KX_PYMETHOD(KX_SoundActuator,SetPitch); - KX_PYMETHOD(KX_SoundActuator,GetPitch); - KX_PYMETHOD(KX_SoundActuator,SetRollOffFactor); - KX_PYMETHOD(KX_SoundActuator,GetRollOffFactor); - KX_PYMETHOD(KX_SoundActuator,SetLooping); - KX_PYMETHOD(KX_SoundActuator,GetLooping); - KX_PYMETHOD(KX_SoundActuator,SetPosition); - KX_PYMETHOD(KX_SoundActuator,SetVelocity); - KX_PYMETHOD(KX_SoundActuator,SetOrientation); - KX_PYMETHOD(KX_SoundActuator,SetType); - KX_PYMETHOD(KX_SoundActuator,GetType); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetFilename); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetFilename); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetGain); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetGain); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetPitch); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetPitch); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetRollOffFactor); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetRollOffFactor); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetLooping); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetLooping); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetPosition); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetVelocity); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetOrientation); + KX_PYMETHOD_VARARGS(KX_SoundActuator,SetType); + KX_PYMETHOD_NOARGS(KX_SoundActuator,GetType); // <----- }; diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp index 3cfa40c6f80..976e7ea5204 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.cpp +++ b/source/gameengine/Ketsji/KX_StateActuator.cpp @@ -173,9 +173,7 @@ KX_StateActuator::SetOperation_doc[] = "\tUse setMask() to specify the bits that will be modified.\n"; PyObject* -KX_StateActuator::PySetOperation(PyObject* self, - PyObject* args, - PyObject* kwds) { +KX_StateActuator::PySetOperation(PyObject* args) { ShowDeprecationWarning("setOperation()", "the operation property"); int oper; @@ -199,9 +197,7 @@ KX_StateActuator::SetMask_doc[] = "\twhich copies the value to the object state.\n"; PyObject* -KX_StateActuator::PySetMask(PyObject* self, - PyObject* args, - PyObject* kwds) { +KX_StateActuator::PySetMask(PyObject* args) { ShowDeprecationWarning("setMask()", "the mask property"); int mask; diff --git a/source/gameengine/Ketsji/KX_StateActuator.h b/source/gameengine/Ketsji/KX_StateActuator.h index 426753dadfd..4a64894259d 100644 --- a/source/gameengine/Ketsji/KX_StateActuator.h +++ b/source/gameengine/Ketsji/KX_StateActuator.h @@ -78,8 +78,8 @@ class KX_StateActuator : public SCA_IActuator virtual PyObject* py_getattro(PyObject *attr); virtual int py_setattro(PyObject *attr, PyObject* value); //KX_PYMETHOD_DOC - KX_PYMETHOD_DOC(KX_StateActuator,SetOperation); - KX_PYMETHOD_DOC(KX_StateActuator,SetMask); + KX_PYMETHOD_DOC_VARARGS(KX_StateActuator,SetOperation); + KX_PYMETHOD_DOC_VARARGS(KX_StateActuator,SetMask); }; #endif diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index 79da4984740..e7f8acbd1a8 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -310,7 +310,7 @@ const char KX_TouchSensor::SetProperty_doc[] = "\tSet the property or material to collide with. Use\n" "\tsetTouchMaterial() to switch between properties and\n" "\tmaterials."; -PyObject* KX_TouchSensor::PySetProperty(PyObject* self, PyObject* value) +PyObject* KX_TouchSensor::PySetProperty(PyObject* value) { ShowDeprecationWarning("setProperty()", "the propertyName property"); char *nameArg= PyString_AsString(value); @@ -328,14 +328,14 @@ const char KX_TouchSensor::GetProperty_doc[] = "\tReturns the property or material to collide with. Use\n" "\tgetTouchMaterial() to find out whether this sensor\n" "\tlooks for properties or materials."; -PyObject* KX_TouchSensor::PyGetProperty(PyObject* self) { +PyObject* KX_TouchSensor::PyGetProperty() { return PyString_FromString(m_touchedpropname); } const char KX_TouchSensor::GetHitObject_doc[] = "getHitObject()\n" ; -PyObject* KX_TouchSensor::PyGetHitObject(PyObject* self) +PyObject* KX_TouchSensor::PyGetHitObject() { ShowDeprecationWarning("getHitObject()", "the objectHit property"); /* to do: do Py_IncRef if the object is already known in Python */ @@ -351,7 +351,7 @@ const char KX_TouchSensor::GetHitObjectList_doc[] = "getHitObjectList()\n" "\tReturn a list of the objects this object collided with,\n" "\tbut only those matching the property/material condition.\n"; -PyObject* KX_TouchSensor::PyGetHitObjectList(PyObject* self) +PyObject* KX_TouchSensor::PyGetHitObjectList() { ShowDeprecationWarning("getHitObjectList()", "the objectHitList property"); /* to do: do Py_IncRef if the object is already known in Python */ @@ -367,7 +367,7 @@ const char KX_TouchSensor::GetTouchMaterial_doc[] = "getTouchMaterial()\n" "\tReturns KX_TRUE if this sensor looks for a specific material,\n" "\tKX_FALSE if it looks for a specific property.\n" ; -PyObject* KX_TouchSensor::PyGetTouchMaterial(PyObject* self) +PyObject* KX_TouchSensor::PyGetTouchMaterial() { ShowDeprecationWarning("getTouchMaterial()", "the materialCheck property"); return PyInt_FromLong(m_bFindMaterial); @@ -380,7 +380,7 @@ const char KX_TouchSensor::SetTouchMaterial_doc[] = "\t- flag: KX_TRUE or KX_FALSE.\n" "\tSet flag to KX_TRUE to switch on positive pulse mode,\n" "\tKX_FALSE to switch off positive pulse mode.\n" ; -PyObject* KX_TouchSensor::PySetTouchMaterial(PyObject* self, PyObject *value) +PyObject* KX_TouchSensor::PySetTouchMaterial(PyObject *value) { int pulseArg = PyInt_AsLong(value); diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index 6c522b35528..c89d88389c4 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -458,9 +458,9 @@ PyParentObject KX_TrackToActuator::Parents[] = { PyMethodDef KX_TrackToActuator::Methods[] = { // ---> deprecated {"setTime", (PyCFunction) KX_TrackToActuator::sPySetTime, METH_VARARGS, (PY_METHODCHAR)SetTime_doc}, - {"getTime", (PyCFunction) KX_TrackToActuator::sPyGetTime, METH_VARARGS, (PY_METHODCHAR)GetTime_doc}, + {"getTime", (PyCFunction) KX_TrackToActuator::sPyGetTime, METH_NOARGS, (PY_METHODCHAR)GetTime_doc}, {"setUse3D", (PyCFunction) KX_TrackToActuator::sPySetUse3D, METH_VARARGS, (PY_METHODCHAR)SetUse3D_doc}, - {"getUse3D", (PyCFunction) KX_TrackToActuator::sPyGetUse3D, METH_VARARGS, (PY_METHODCHAR)GetUse3D_doc}, + {"getUse3D", (PyCFunction) KX_TrackToActuator::sPyGetUse3D, METH_NOARGS, (PY_METHODCHAR)GetUse3D_doc}, {"setObject", (PyCFunction) KX_TrackToActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc}, {"getObject", (PyCFunction) KX_TrackToActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc}, @@ -519,7 +519,7 @@ const char KX_TrackToActuator::SetObject_doc[] = "setObject(object)\n" "\t- object: KX_GameObject, string or None\n" "\tSet the object to track with the parent of this actuator.\n"; -PyObject* KX_TrackToActuator::PySetObject(PyObject* self, PyObject* value) +PyObject* KX_TrackToActuator::PySetObject(PyObject* value) { KX_GameObject *gameobj; @@ -545,7 +545,7 @@ const char KX_TrackToActuator::GetObject_doc[] = "getObject(name_only = 1)\n" "name_only - optional arg, when true will return the KX_GameObject rather then its name\n" "\tReturns the object to track with the parent of this actuator\n"; -PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args) +PyObject* KX_TrackToActuator::PyGetObject(PyObject* args) { int ret_name_only = 1; @@ -570,7 +570,7 @@ const char KX_TrackToActuator::SetTime_doc[] = "setTime(time)\n" "\t- time: integer\n" "\tSet the time in frames with which to delay the tracking motion.\n"; -PyObject* KX_TrackToActuator::PySetTime(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_TrackToActuator::PySetTime(PyObject* args) { ShowDeprecationWarning("setTime()", "the timer property"); int timeArg; @@ -592,7 +592,7 @@ const char KX_TrackToActuator::GetTime_doc[] = "getTime()\n" "\t- time: integer\n" "\tReturn the time in frames with which the tracking motion is delayed.\n"; -PyObject* KX_TrackToActuator::PyGetTime(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_TrackToActuator::PyGetTime() { ShowDeprecationWarning("getTime()", "the timer property"); return PyInt_FromLong(m_time); @@ -604,7 +604,7 @@ PyObject* KX_TrackToActuator::PyGetTime(PyObject* self, PyObject* args, PyObject const char KX_TrackToActuator::GetUse3D_doc[] = "getUse3D()\n" "\tReturns 1 if the motion is allowed to extend in the z-direction.\n"; -PyObject* KX_TrackToActuator::PyGetUse3D(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_TrackToActuator::PyGetUse3D() { ShowDeprecationWarning("setTime()", "the use3D property"); return PyInt_FromLong(!(m_allow3D == 0)); @@ -618,7 +618,7 @@ const char KX_TrackToActuator::SetUse3D_doc[] = "\t- value: 0 or 1\n" "\tSet to 1 to allow the tracking motion to extend in the z-direction,\n" "\tset to 0 to lock the tracking motion to the x-y plane.\n"; -PyObject* KX_TrackToActuator::PySetUse3D(PyObject* self, PyObject* args, PyObject* kwds) +PyObject* KX_TrackToActuator::PySetUse3D(PyObject* args) { ShowDeprecationWarning("setTime()", "the use3D property"); int boolArg; diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h index cc4049e19a8..99505f93cfe 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.h +++ b/source/gameengine/Ketsji/KX_TrackToActuator.h @@ -84,13 +84,13 @@ class KX_TrackToActuator : public SCA_IActuator /* 2. getObject */ KX_PYMETHOD_DOC_VARARGS(KX_TrackToActuator,GetObject); /* 3. setTime */ - KX_PYMETHOD_DOC(KX_TrackToActuator,SetTime); + KX_PYMETHOD_DOC_VARARGS(KX_TrackToActuator,SetTime); /* 4. getTime */ - KX_PYMETHOD_DOC(KX_TrackToActuator,GetTime); + KX_PYMETHOD_DOC_NOARGS(KX_TrackToActuator,GetTime); /* 5. getUse3D */ - KX_PYMETHOD_DOC(KX_TrackToActuator,GetUse3D); + KX_PYMETHOD_DOC_NOARGS(KX_TrackToActuator,GetUse3D); /* 6. setUse3D */ - KX_PYMETHOD_DOC(KX_TrackToActuator,SetUse3D); + KX_PYMETHOD_DOC_VARARGS(KX_TrackToActuator,SetUse3D); }; /* end of class KX_TrackToActuator : public KX_EditObjectActuator */ diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index 558b2849cc7..f77c135e994 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -35,9 +35,7 @@ KX_VehicleWrapper::~KX_VehicleWrapper() } -PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* args) { PyObject* pylistPos,*pylistDir,*pylistAxleDir; @@ -85,9 +83,7 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self, -PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* args) { int wheelIndex; @@ -102,9 +98,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self, return NULL; } -PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* args) { int wheelIndex; if (PyArg_ParseTuple(args,"i:getWheelRotation",&wheelIndex)) @@ -114,9 +108,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self, return NULL; } -PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* args) { int wheelIndex; if (PyArg_ParseTuple(args,"i:getWheelOrientationQuaternion",&wheelIndex)) @@ -132,26 +124,20 @@ PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self, } -PyObject* KX_VehicleWrapper::PyGetNumWheels(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetNumWheels(PyObject* args) { return PyInt_FromLong(m_vehicle->GetNumWheels()); } -PyObject* KX_VehicleWrapper::PyGetConstraintId(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetConstraintId(PyObject* args) { return PyInt_FromLong(m_vehicle->GetUserConstraintId()); } -PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* args) { float force; int wheelIndex; @@ -167,9 +153,7 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* args) { float wheelFriction; int wheelIndex; @@ -184,9 +168,7 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* args) { float suspensionStiffness; int wheelIndex; @@ -201,9 +183,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* args) { float suspensionDamping; int wheelIndex; @@ -217,9 +197,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* args) { float suspensionCompression; int wheelIndex; @@ -233,9 +211,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self, Py_RETURN_NONE; } -PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* args) { float rollInfluence; int wheelIndex; @@ -251,9 +227,7 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self, } -PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* args) { float braking; int wheelIndex; @@ -271,9 +245,7 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self, -PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* args) { float steeringValue; int wheelIndex; @@ -289,9 +261,7 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self, } -PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* args) { return PyInt_FromLong(m_vehicle->GetUserConstraintType()); } diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.h b/source/gameengine/Ketsji/KX_VehicleWrapper.h index 4e03183bf85..de7fe75cfba 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.h +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.h @@ -23,31 +23,31 @@ public: int getConstraintId(); - KX_PYMETHOD(KX_VehicleWrapper,AddWheel); - KX_PYMETHOD(KX_VehicleWrapper,GetNumWheels); - KX_PYMETHOD(KX_VehicleWrapper,GetWheelOrientationQuaternion); - KX_PYMETHOD(KX_VehicleWrapper,GetWheelRotation); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,AddWheel); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetNumWheels); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetWheelOrientationQuaternion); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetWheelRotation); - KX_PYMETHOD(KX_VehicleWrapper,GetWheelPosition); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetWheelPosition); - KX_PYMETHOD(KX_VehicleWrapper,GetConstraintId); - KX_PYMETHOD(KX_VehicleWrapper,GetConstraintType); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetConstraintId); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,GetConstraintType); - KX_PYMETHOD(KX_VehicleWrapper,SetSteeringValue); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetSteeringValue); - KX_PYMETHOD(KX_VehicleWrapper,ApplyEngineForce); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,ApplyEngineForce); - KX_PYMETHOD(KX_VehicleWrapper,ApplyBraking); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,ApplyBraking); - KX_PYMETHOD(KX_VehicleWrapper,SetTyreFriction); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetTyreFriction); - KX_PYMETHOD(KX_VehicleWrapper,SetSuspensionStiffness); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetSuspensionStiffness); - KX_PYMETHOD(KX_VehicleWrapper,SetSuspensionDamping); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetSuspensionDamping); - KX_PYMETHOD(KX_VehicleWrapper,SetSuspensionCompression); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetSuspensionCompression); - KX_PYMETHOD(KX_VehicleWrapper,SetRollInfluence); + KX_PYMETHOD_VARARGS(KX_VehicleWrapper,SetRollInfluence); private: diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index 4954e94f3e4..8be125011bb 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -341,12 +341,12 @@ void KX_VertexProxy::ReplicaSetName(STR_String) {}; // stuff for python integration -PyObject* KX_VertexProxy::PyGetXYZ(PyObject*) +PyObject* KX_VertexProxy::PyGetXYZ() { return PyObjectFrom(MT_Point3(m_vertex->getXYZ())); } -PyObject* KX_VertexProxy::PySetXYZ(PyObject*, PyObject* value) +PyObject* KX_VertexProxy::PySetXYZ(PyObject* value) { MT_Point3 vec; if (!PyVecTo(value, vec)) @@ -357,12 +357,12 @@ PyObject* KX_VertexProxy::PySetXYZ(PyObject*, PyObject* value) Py_RETURN_NONE; } -PyObject* KX_VertexProxy::PyGetNormal(PyObject*) +PyObject* KX_VertexProxy::PyGetNormal() { return PyObjectFrom(MT_Vector3(m_vertex->getNormal())); } -PyObject* KX_VertexProxy::PySetNormal(PyObject*, PyObject* value) +PyObject* KX_VertexProxy::PySetNormal(PyObject* value) { MT_Vector3 vec; if (!PyVecTo(value, vec)) @@ -374,13 +374,13 @@ PyObject* KX_VertexProxy::PySetNormal(PyObject*, PyObject* value) } -PyObject* KX_VertexProxy::PyGetRGBA(PyObject*) +PyObject* KX_VertexProxy::PyGetRGBA() { int *rgba = (int *) m_vertex->getRGBA(); return PyInt_FromLong(*rgba); } -PyObject* KX_VertexProxy::PySetRGBA(PyObject*, PyObject* value) +PyObject* KX_VertexProxy::PySetRGBA(PyObject* value) { if PyInt_Check(value) { int rgba = PyInt_AsLong(value); @@ -403,12 +403,12 @@ PyObject* KX_VertexProxy::PySetRGBA(PyObject*, PyObject* value) } -PyObject* KX_VertexProxy::PyGetUV(PyObject*) +PyObject* KX_VertexProxy::PyGetUV() { return PyObjectFrom(MT_Vector2(m_vertex->getUV1())); } -PyObject* KX_VertexProxy::PySetUV(PyObject*, PyObject* value) +PyObject* KX_VertexProxy::PySetUV(PyObject* value) { MT_Point2 vec; if (!PyVecTo(value, vec)) @@ -419,12 +419,12 @@ PyObject* KX_VertexProxy::PySetUV(PyObject*, PyObject* value) Py_RETURN_NONE; } -PyObject* KX_VertexProxy::PyGetUV2(PyObject*) +PyObject* KX_VertexProxy::PyGetUV2() { return PyObjectFrom(MT_Vector2(m_vertex->getUV2())); } -PyObject* KX_VertexProxy::PySetUV2(PyObject*, PyObject* args) +PyObject* KX_VertexProxy::PySetUV2(PyObject* args) { MT_Point2 vec; unsigned int unit=0; diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp index 6d984f0d77a..ba59d0d3d47 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp @@ -157,9 +157,7 @@ KX_VisibilityActuator::SetVisible_doc[] = "\tSet the properties of the actuator.\n"; PyObject* -KX_VisibilityActuator::PySetVisible(PyObject* self, - PyObject* args, - PyObject* kwds) { +KX_VisibilityActuator::PySetVisible(PyObject* args) { int vis; ShowDeprecationWarning("SetVisible()", "the visible property"); diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h index 4269258f862..04633bce665 100644 --- a/source/gameengine/Ketsji/KX_VisibilityActuator.h +++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h @@ -73,7 +73,7 @@ class KX_VisibilityActuator : public SCA_IActuator virtual int py_setattro(PyObject *attr, PyObject *value); // Deprecated -----> - KX_PYMETHOD_DOC(KX_VisibilityActuator,SetVisible); + KX_PYMETHOD_DOC_VARARGS(KX_VisibilityActuator,SetVisible); // <----- diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h index c7638b36728..4510bbddf65 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h @@ -107,7 +107,7 @@ public: } CcdShapeConstructionInfo* GetChildShape(int i) { - if (i < 0 || i >= m_shapeArray.size()) + if (i < 0 || i >= (int)m_shapeArray.size()) return NULL; return m_shapeArray.at(i); @@ -116,7 +116,7 @@ public: { if (shapeInfo == NULL) return -1; - for (int i=0; im_userData) && @@ -130,10 +130,10 @@ public: bool RemoveChildShape(int i) { - if (i < 0 || i >= m_shapeArray.size()) + if (i < 0 || i >= (int)m_shapeArray.size()) return false; m_shapeArray.at(i)->Release(); - if (i < m_shapeArray.size()-1) + if (i < (int)m_shapeArray.size()-1) m_shapeArray[i] = m_shapeArray.back(); m_shapeArray.pop_back(); return true; From 904483c96c6adb5dc7976e676d8bb393232eed14 Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 19 Apr 2009 17:47:09 +0000 Subject: [PATCH 192/201] Booleans: Should work with modifier stack now. Please report (new) problems. Thanks --- .../blender/blenkernel/BKE_bad_level_calls.h | 4 +- source/blender/blenkernel/BKE_booleanops.h | 5 +- .../blenkernel/bad_level_call_stubs/stubs.c | 3 +- source/blender/blenkernel/intern/modifier.c | 33 ++++- source/blender/src/booleanops.c | 122 ++++++++++-------- 5 files changed, 100 insertions(+), 67 deletions(-) diff --git a/source/blender/blenkernel/BKE_bad_level_calls.h b/source/blender/blenkernel/BKE_bad_level_calls.h index 93bfb2339be..0962a174a8e 100644 --- a/source/blender/blenkernel/BKE_bad_level_calls.h +++ b/source/blender/blenkernel/BKE_bad_level_calls.h @@ -160,8 +160,8 @@ void bglEnd(void); struct Object; /* booleanops.c */ -struct DerivedMesh *NewBooleanDerivedMesh(struct Object *ob, - struct Object *ob_select, int int_op_type); +struct DerivedMesh *NewBooleanDerivedMesh(struct DerivedMesh *dm, struct Object *ob, struct DerivedMesh *dm_select, struct Object *ob_select, + int int_op_type); /* verse_*.c */ struct VerseVert; diff --git a/source/blender/blenkernel/BKE_booleanops.h b/source/blender/blenkernel/BKE_booleanops.h index b83b9c89ae8..118066e3806 100644 --- a/source/blender/blenkernel/BKE_booleanops.h +++ b/source/blender/blenkernel/BKE_booleanops.h @@ -42,8 +42,7 @@ int NewBooleanMesh(struct Base *base, struct Base *base_select, int op); /* Performs a boolean between two mesh objects, it is assumed that both objects are in fact mesh object. On success returns a DerivedMesh. On failure returns NULL and reports an error. */ -struct DerivedMesh *NewBooleanDerivedMesh(struct Object *ob, - struct Object *ob_select, - int op); +struct DerivedMesh *NewBooleanDerivedMesh(struct DerivedMesh *dm, struct Object *ob, struct DerivedMesh *dm_select, struct Object *ob_select, + int int_op_type); #endif diff --git a/source/blender/blenkernel/bad_level_call_stubs/stubs.c b/source/blender/blenkernel/bad_level_call_stubs/stubs.c index fecead66bda..5f6472ce56e 100644 --- a/source/blender/blenkernel/bad_level_call_stubs/stubs.c +++ b/source/blender/blenkernel/bad_level_call_stubs/stubs.c @@ -240,7 +240,8 @@ void bglVertex3f(float x, float y, float z) {} void bglEnd(void) {} /* booleanops.c */ -struct DerivedMesh *NewBooleanDerivedMesh(struct Object *ob, struct Object *ob_select, int int_op_type) { return 0; } +struct DerivedMesh *NewBooleanDerivedMesh(struct DerivedMesh *dm, struct Object *ob, struct DerivedMesh *dm_select, struct Object *ob_select, + int int_op_type) { return 0; } /* LOD_decimation.cpp */ int LOD_LoadMesh(struct LOD_Decimation_Info* info) { return 0;}; diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 1068950d0d6..65bbbdfbcfb 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6140,22 +6140,44 @@ static DerivedMesh *booleanModifier_applyModifier( { // XXX doesn't handle derived data BooleanModifierData *bmd = (BooleanModifierData*) md; + DerivedMesh *dm = mesh_get_derived_final(bmd->object, CD_MASK_BAREMESH); /* we do a quick sanity check */ - if(((Mesh *)ob->data)->totface > 3 - && bmd->object && ((Mesh *)bmd->object->data)->totface > 3) { - DerivedMesh *result = NewBooleanDerivedMesh(bmd->object, ob, + if(derivedData->getNumFaces(derivedData) > 3 + && bmd->object && dm->getNumFaces(dm) > 3) { + DerivedMesh *result = NewBooleanDerivedMesh(dm, bmd->object, derivedData, ob, 1 + bmd->operation); + if(dm) + dm->release(dm); + /* if new mesh returned, return it; otherwise there was * an error, so delete the modifier object */ if(result) return result; else bmd->object = NULL; - } + } + + if(dm) + dm->release(dm); - return derivedData; + return derivedData; +} + +CustomDataMask booleanModifier_requiredDataMask(ModifierData *md) +{ + CustomDataMask dataMask = (1 << CD_MTFACE) + (1 << CD_MEDGE); + + dataMask |= (1 << CD_MDEFORMVERT); + + /* particles only need this if they are after a non deform modifier, and + * the modifier stack will only create them in that case. */ +// dataMask |= CD_MASK_ORIGSPACE; + +// dataMask |= CD_MASK_ORCO; + + return dataMask; } /* Particles */ @@ -8311,6 +8333,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->applyModifier = booleanModifier_applyModifier; mti->foreachObjectLink = booleanModifier_foreachObjectLink; mti->updateDepgraph = booleanModifier_updateDepgraph; + mti->requiredDataMask = booleanModifier_requiredDataMask; mti = INIT_TYPE(MeshDeform); mti->type = eModifierTypeType_OnlyDeform; diff --git a/source/blender/src/booleanops.c b/source/blender/src/booleanops.c index 14766d1f746..948797014a4 100644 --- a/source/blender/src/booleanops.c +++ b/source/blender/src/booleanops.c @@ -68,7 +68,7 @@ */ typedef struct { - Mesh *mesh; + DerivedMesh *dm; Object *ob; int pos; } VertexIt; @@ -96,13 +96,13 @@ static void VertexIt_Destruct(CSG_VertexIteratorDescriptor * iterator) static int VertexIt_Done(CSG_IteratorPtr it) { VertexIt * iterator = (VertexIt *)it; - return(iterator->pos >= iterator->mesh->totvert); + return(iterator->pos >= iterator->dm->getNumVerts(iterator->dm)); } static void VertexIt_Fill(CSG_IteratorPtr it, CSG_IVertex *vert) { VertexIt * iterator = (VertexIt *)it; - MVert *verts = iterator->mesh->mvert; + MVert *verts = iterator->dm->getVertArray(iterator->dm); float global_pos[3]; @@ -130,7 +130,7 @@ static void VertexIt_Reset(CSG_IteratorPtr it) iterator->pos = 0; } -static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, Object *ob) +static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, DerivedMesh *dm, Object *ob) { VertexIt *it; @@ -142,8 +142,8 @@ static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, Object *ob) return; } // assign blender specific variables - it->ob = ob; - it->mesh = ob->data; + it->dm = dm; + it->ob = ob; // needed for obmat transformations it->pos = 0; @@ -152,7 +152,7 @@ static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, Object *ob) output->Fill = VertexIt_Fill; output->Done = VertexIt_Done; output->Reset = VertexIt_Reset; - output->num_elements = it->mesh->totvert; + output->num_elements = it->dm->getNumVerts(it->dm); output->it = it; } @@ -161,7 +161,7 @@ static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, Object *ob) */ typedef struct { - Mesh *mesh; + DerivedMesh *dm; int pos; int offset; } FaceIt; @@ -180,14 +180,14 @@ static int FaceIt_Done(CSG_IteratorPtr it) { // assume CSG_IteratorPtr is of the correct type. FaceIt * iterator = (FaceIt *)it; - return(iterator->pos >= iterator->mesh->totface); + return(iterator->pos >= iterator->dm->getNumFaces(iterator->dm)); } static void FaceIt_Fill(CSG_IteratorPtr it, CSG_IFace *face) { // assume CSG_IteratorPtr is of the correct type. FaceIt *face_it = (FaceIt *)it; - MFace *mfaces = face_it->mesh->mface; + MFace *mfaces = face_it->dm->getFaceArray(face_it->dm); MFace *mface = &mfaces[face_it->pos]; face->vertex_index[0] = mface->v1; @@ -216,7 +216,7 @@ static void FaceIt_Reset(CSG_IteratorPtr it) } static void FaceIt_Construct( - CSG_FaceIteratorDescriptor *output, Object *ob, int offset) + CSG_FaceIteratorDescriptor *output, DerivedMesh *dm, int offset) { FaceIt *it; if (output == 0) return; @@ -227,7 +227,7 @@ static void FaceIt_Construct( return ; } // assign blender specific variables - it->mesh = ob->data; + it->dm = dm; it->offset = offset; it->pos = 0; @@ -236,7 +236,7 @@ static void FaceIt_Construct( output->Fill = FaceIt_Fill; output->Done = FaceIt_Done; output->Reset = FaceIt_Reset; - output->num_elements = it->mesh->totface; + output->num_elements = it->dm->getNumFaces(it->dm); output->it = it; } @@ -280,7 +280,7 @@ static Object *AddNewBlenderMesh(Base *base) } static void InterpCSGFace( - DerivedMesh *dm, Mesh *orig_me, int index, int orig_index, int nr, + DerivedMesh *dm, DerivedMesh *orig_dm, int index, int orig_index, int nr, float mapmat[][4]) { float obco[3], *co[4], *orig_co[4], w[4][4]; @@ -288,13 +288,13 @@ static void InterpCSGFace( int j; mface = CDDM_get_face(dm, index); - orig_mface = orig_me->mface + orig_index; + orig_mface = orig_dm->getFaceArray(orig_dm) + orig_index; // get the vertex coordinates from the original mesh - orig_co[0] = (orig_me->mvert + orig_mface->v1)->co; - orig_co[1] = (orig_me->mvert + orig_mface->v2)->co; - orig_co[2] = (orig_me->mvert + orig_mface->v3)->co; - orig_co[3] = (orig_mface->v4)? (orig_me->mvert + orig_mface->v4)->co: NULL; + orig_co[0] = (orig_dm->getVertArray(orig_dm) + orig_mface->v1)->co; + orig_co[1] = (orig_dm->getVertArray(orig_dm) + orig_mface->v2)->co; + orig_co[2] = (orig_dm->getVertArray(orig_dm) + orig_mface->v3)->co; + orig_co[3] = (orig_mface->v4)? (orig_dm->getVertArray(orig_dm) + orig_mface->v4)->co: NULL; // get the vertex coordinates from the new derivedmesh co[0] = CDDM_get_vert(dm, mface->v1)->co; @@ -312,7 +312,7 @@ static void InterpCSGFace( InterpWeightsQ3Dfl(orig_co[0], orig_co[1], orig_co[2], orig_co[3], obco, w[j]); } - CustomData_interp(&orig_me->fdata, &dm->faceData, &orig_index, NULL, (float*)w, 1, index); + CustomData_interp(&orig_dm->faceData, &dm->faceData, &orig_index, NULL, (float*)w, 1, index); } /* Iterate over the CSG Output Descriptors and create a new DerivedMesh @@ -324,27 +324,28 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh( float mapmat[][4], Material **mat, int *totmat, + DerivedMesh *dm1, Object *ob1, + DerivedMesh *dm2, Object *ob2) { - DerivedMesh *dm; + DerivedMesh *result, *orig_dm; GHash *material_hash = NULL; Mesh *me1= (Mesh*)ob1->data; Mesh *me2= (Mesh*)ob2->data; int i; // create a new DerivedMesh - dm = CDDM_new(vertex_it->num_elements, 0, face_it->num_elements); - - CustomData_merge(&me1->fdata, &dm->faceData, CD_MASK_DERIVEDMESH, - CD_DEFAULT, face_it->num_elements); - CustomData_merge(&me2->fdata, &dm->faceData, CD_MASK_DERIVEDMESH, - CD_DEFAULT, face_it->num_elements); + result = CDDM_new(vertex_it->num_elements, 0, face_it->num_elements); + CustomData_merge(&dm1->faceData, &result->faceData, CD_MASK_DERIVEDMESH, + CD_DEFAULT, face_it->num_elements); + CustomData_merge(&dm2->faceData, &result->faceData, CD_MASK_DERIVEDMESH, + CD_DEFAULT, face_it->num_elements); // step through the vertex iterators: for (i = 0; !vertex_it->Done(vertex_it->it); i++) { CSG_IVertex csgvert; - MVert *mvert = CDDM_get_vert(dm, i); + MVert *mvert = CDDM_get_vert(result, i); // retrieve a csg vertex from the boolean module vertex_it->Fill(vertex_it->it, &csgvert); @@ -375,15 +376,16 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh( face_it->Step(face_it->it); // find the original mesh and data - orig_ob = (csgface.orig_face < me1->totface)? ob1: ob2; + orig_ob = (csgface.orig_face < dm1->getNumFaces(dm1))? ob1: ob2; + orig_dm = (csgface.orig_face < dm1->getNumFaces(dm1))? dm1: dm2; orig_me = (orig_ob == ob1)? me1: me2; - orig_index = (orig_ob == ob1)? csgface.orig_face: csgface.orig_face - me1->totface; + orig_index = (orig_ob == ob1)? csgface.orig_face: csgface.orig_face - dm1->getNumFaces(dm1); // copy all face layers, including mface - CustomData_copy_data(&orig_me->fdata, &dm->faceData, orig_index, i, 1); + CustomData_copy_data(&orig_dm->faceData, &result->faceData, orig_index, i, 1); // set mface - mface = CDDM_get_face(dm, i); + mface = CDDM_get_face(result, i); mface->v1 = csgface.vertex_index[0]; mface->v2 = csgface.vertex_index[1]; mface->v3 = csgface.vertex_index[2]; @@ -404,29 +406,30 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh( else mface->mat_nr = 0; - InterpCSGFace(dm, orig_me, i, orig_index, csgface.vertex_number, + InterpCSGFace(result, orig_dm, i, orig_index, csgface.vertex_number, (orig_me == me2)? mapmat: NULL); - test_index_face(mface, &dm->faceData, i, csgface.vertex_number); + test_index_face(mface, &result->faceData, i, csgface.vertex_number); } if (material_hash) BLI_ghash_free(material_hash, NULL, NULL); - CDDM_calc_edges(dm); - CDDM_calc_normals(dm); + CDDM_calc_edges(result); + CDDM_calc_normals(result); - return dm; + return result; } static void BuildMeshDescriptors( + struct DerivedMesh *dm, struct Object *ob, int face_offset, struct CSG_FaceIteratorDescriptor * face_it, struct CSG_VertexIteratorDescriptor * vertex_it) { - VertexIt_Construct(vertex_it,ob); - FaceIt_Construct(face_it,ob,face_offset); + VertexIt_Construct(vertex_it,dm, ob); + FaceIt_Construct(face_it,dm,face_offset); } static void FreeMeshDescriptors( @@ -438,19 +441,17 @@ static void FreeMeshDescriptors( } DerivedMesh *NewBooleanDerivedMesh_intern( - struct Object *ob, struct Object *ob_select, + DerivedMesh *dm, struct Object *ob, DerivedMesh *dm_select, struct Object *ob_select, int int_op_type, Material **mat, int *totmat) { float inv_mat[4][4]; float map_mat[4][4]; - DerivedMesh *dm = NULL; - Mesh *me1 = get_mesh(ob_select); - Mesh *me2 = get_mesh(ob); + DerivedMesh *result = NULL; - if (me1 == NULL || me2 == NULL) return 0; - if (!me1->totface || !me2->totface) return 0; + if (dm == NULL || dm_select == NULL) return 0; + if (!dm->getNumFaces(dm) || !dm_select->getNumFaces(dm_select)) return 0; // we map the final object back into ob's local coordinate space. For this // we need to compute the inverse transform from global to ob (inv_mat), @@ -481,8 +482,8 @@ DerivedMesh *NewBooleanDerivedMesh_intern( default : op_type = e_csg_intersection; } - BuildMeshDescriptors(ob_select, 0, &fd_1, &vd_1); - BuildMeshDescriptors(ob, me1->totface, &fd_2, &vd_2); + BuildMeshDescriptors(dm_select, ob_select, 0, &fd_1, &vd_1); + BuildMeshDescriptors(dm, ob, dm_select->getNumFaces(dm_select) , &fd_2, &vd_2); bool_op = CSG_NewBooleanFunction(); @@ -496,8 +497,8 @@ DerivedMesh *NewBooleanDerivedMesh_intern( // iterate through results of operation and insert // into new object - dm = ConvertCSGDescriptorsToDerivedMesh( - &fd_o, &vd_o, inv_mat, map_mat, mat, totmat, ob_select, ob); + result = ConvertCSGDescriptorsToDerivedMesh( + &fd_o, &vd_o, inv_mat, map_mat, mat, totmat, dm_select, ob_select, dm, ob); // free up the memory CSG_FreeVertexDescriptor(&vd_o); @@ -512,7 +513,7 @@ DerivedMesh *NewBooleanDerivedMesh_intern( FreeMeshDescriptors(&fd_2, &vd_2); } - return dm; + return result; } int NewBooleanMesh(Base *base, Base *base_select, int int_op_type) @@ -521,24 +522,30 @@ int NewBooleanMesh(Base *base, Base *base_select, int int_op_type) int a, maxmat, totmat= 0; Object *ob_new, *ob, *ob_select; Material **mat; + DerivedMesh *result; + DerivedMesh *dm_select; DerivedMesh *dm; ob= base->object; ob_select= base_select->object; + dm = mesh_get_derived_final(ob, CD_MASK_BAREMESH); + dm_select = mesh_create_derived_view(ob_select, 0); // no modifiers in editmode ?? + maxmat= ob->totcol + ob_select->totcol; mat= (Material**)MEM_mallocN(sizeof(Material*)*maxmat, "NewBooleanMeshMat"); /* put some checks in for nice user feedback */ - if((!(get_mesh(ob)->totface)) || (!(get_mesh(ob_select)->totface))) + if (dm == NULL || dm_select == NULL) return 0; + if (!dm->getNumFaces(dm) || !dm_select->getNumFaces(dm_select)) return 0; { MEM_freeN(mat); return -1; } - dm= NewBooleanDerivedMesh_intern(ob, ob_select, int_op_type, mat, &totmat); + result= NewBooleanDerivedMesh_intern(dm, ob, dm_select, ob_select, int_op_type, mat, &totmat); - if (dm == NULL) { + if (result == NULL) { MEM_freeN(mat); return 0; } @@ -547,8 +554,11 @@ int NewBooleanMesh(Base *base, Base *base_select, int int_op_type) ob_new= AddNewBlenderMesh(base_select); me_new= ob_new->data; - DM_to_mesh(dm, me_new); + DM_to_mesh(result, me_new); + result->release(result); + dm->release(dm); + dm_select->release(dm_select); /* add materials to object */ for (a = 0; a < totmat; a++) @@ -562,9 +572,9 @@ int NewBooleanMesh(Base *base, Base *base_select, int int_op_type) return 1; } -DerivedMesh *NewBooleanDerivedMesh(struct Object *ob, struct Object *ob_select, +DerivedMesh *NewBooleanDerivedMesh(DerivedMesh *dm, struct Object *ob, DerivedMesh *dm_select, struct Object *ob_select, int int_op_type) { - return NewBooleanDerivedMesh_intern(ob, ob_select, int_op_type, NULL, NULL); + return NewBooleanDerivedMesh_intern(dm, ob, dm_select, ob_select, int_op_type, NULL, NULL); } From b36514a3be32f0d3a5f85557be54e7060c9099da Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 19 Apr 2009 18:18:52 +0000 Subject: [PATCH 193/201] Booleans: - Enable e.g. subsurf before boolean modifier - Fix editmode crash --- source/blender/blenkernel/intern/modifier.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 65bbbdfbcfb..7977e7b0160 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6143,7 +6143,7 @@ static DerivedMesh *booleanModifier_applyModifier( DerivedMesh *dm = mesh_get_derived_final(bmd->object, CD_MASK_BAREMESH); /* we do a quick sanity check */ - if(derivedData->getNumFaces(derivedData) > 3 + if(dm && (derivedData->getNumFaces(derivedData) > 3) && bmd->object && dm->getNumFaces(dm) > 3) { DerivedMesh *result = NewBooleanDerivedMesh(dm, bmd->object, derivedData, ob, 1 + bmd->operation); @@ -8326,7 +8326,6 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti = INIT_TYPE(Boolean); mti->type = eModifierTypeType_Nonconstructive; mti->flags = eModifierTypeFlag_AcceptsMesh - | eModifierTypeFlag_RequiresOriginalData | eModifierTypeFlag_UsesPointCache; mti->copyData = booleanModifier_copyData; mti->isDisabled = booleanModifier_isDisabled; From 71448386069cfc00dba40deb6735b273a3ba33ad Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Sun, 19 Apr 2009 19:31:32 +0000 Subject: [PATCH 194/201] Compile fixed for Win64. Please check if that also compiles on win32. --- source/gameengine/GamePlayer/ghost/GPG_Application.cpp | 6 +++--- source/gameengine/Ketsji/CMakeLists.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 6ff46ca8200..0ecbbea3af6 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -208,7 +208,7 @@ static LRESULT CALLBACK screenSaverWindowProc(HWND hwnd, UINT uMsg, WPARAM wPara BOOL CALLBACK findGhostWindowHWNDProc(HWND hwnd, LPARAM lParam) { - GHOST_IWindow *p = (GHOST_IWindow*) GetWindowLong(hwnd, GWL_USERDATA); + GHOST_IWindow *p = (GHOST_IWindow*) GetWindowLongPtr(hwnd, GWLP_USERDATA); BOOL ret = TRUE; if (p == ghost_window_to_find) { @@ -292,8 +292,8 @@ bool GPG_Application::startScreenSaverFullScreen( if (ghost_hwnd != NULL) { GetCursorPos(&scr_save_mouse_pos); - ghost_wnd_proc = (WNDPROC) GetWindowLong(ghost_hwnd, GWL_WNDPROC); - SetWindowLong(ghost_hwnd,GWL_WNDPROC, (LONG) screenSaverWindowProc); + ghost_wnd_proc = (WNDPROC) GetWindowLongPtr(ghost_hwnd, GWLP_WNDPROC); + SetWindowLongPtr(ghost_hwnd,GWLP_WNDPROC, (uintptr_t) screenSaverWindowProc); } } return ret; diff --git a/source/gameengine/Ketsji/CMakeLists.txt b/source/gameengine/Ketsji/CMakeLists.txt index d45d5345678..b848fa9ef42 100644 --- a/source/gameengine/Ketsji/CMakeLists.txt +++ b/source/gameengine/Ketsji/CMakeLists.txt @@ -68,7 +68,7 @@ SET(INC ../../../source/gameengine/Physics/Sumo ../../../source/gameengine/Physics/Sumo/Fuzzics/include ../../../source/gameengine/Network/LoopBackNetwork - ../../../intern/SoundSystem + ../../../intern/SoundSystem ../../../source/blender/misc ../../../source/blender/blenloader ../../../source/blender/gpu From 084efe0703202527af996fb5a2547824522a0ccf Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Sun, 19 Apr 2009 19:36:04 +0000 Subject: [PATCH 195/201] added a python26.zip file, and also made scons pick which zip to use based on the python version --- SConstruct | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SConstruct b/SConstruct index 28e5001b12f..6cc3fcb811d 100644 --- a/SConstruct +++ b/SConstruct @@ -554,7 +554,9 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'): if env['WITH_BF_SDL']: dllsources.append('${BF_SDL_LIBPATH}/SDL.dll') if env['WITH_BF_PYTHON']: - dllsources.append('#release/windows/extra/python25.zip') + ver = env["BF_PYTHON_VERSION"].replace(".", "") + + dllsources.append('#release/windows/extra/python' + ver + '.zip') dllsources.append('#release/windows/extra/zlib.pyd') if env['BF_DEBUG']: dllsources.append('${BF_PYTHON_LIBPATH}/${BF_PYTHON_LIB}_d.dll') From d78eec93197cc1d3cc9da773ce30396891ec60f6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 20:09:05 +0000 Subject: [PATCH 196/201] --- tools/btools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/btools.py b/tools/btools.py index 911376856ad..dd04a366b1b 100755 --- a/tools/btools.py +++ b/tools/btools.py @@ -298,7 +298,7 @@ def read_opts(cfg, args): ##BF_PARANOID = True ## ### enable freetype2 support for text objects - (BoolVariable('WITH_BF_FREETYPE', 'Use FreeType2 if true', False)), + (BoolVariable('WITH_BF_FREETYPE', 'Use FreeType2 if true', True)), ('BF_FREETYPE', 'Freetype base path', ''), ('BF_FREETYPE_INC', 'Freetype include path', ''), ('BF_FREETYPE_LIB', 'Freetype library', ''), From f5fc4ebdd8ede5263f4b34f161ebe139d40466dc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 21:01:12 +0000 Subject: [PATCH 197/201] BGE Python API - More verbose error messages. - BL_Shader wasnt setting error messages on some errors - FilterNormal depth attribute was checking for float which is bad because scripts often expect ints assigned to float attributes. - Added a check to PyVecTo for a tuple rather then always using a generic python sequence. On my system this is over 2x faster with an optmized build. --- .../Converter/BL_ActionActuator.cpp | 4 +- .../gameengine/Converter/BL_ActionActuator.h | 2 +- .../Converter/BL_ShapeActionActuator.cpp | 4 +- .../Converter/BL_ShapeActionActuator.h | 2 +- source/gameengine/Expressions/ListValue.cpp | 12 +- .../gameengine/Expressions/PyObjectPlus.cpp | 56 ++-- source/gameengine/Expressions/Value.cpp | 2 +- .../GameLogic/SCA_JoystickSensor.cpp | 2 +- .../GameLogic/SCA_KeyboardSensor.cpp | 4 +- .../gameengine/GameLogic/SCA_MouseSensor.cpp | 2 +- .../GameLogic/SCA_PythonController.cpp | 16 +- .../GameLogic/SCA_RandomActuator.cpp | 2 +- .../gameengine/GameLogic/SCA_RandomSensor.cpp | 2 +- source/gameengine/Ketsji/BL_Shader.cpp | 249 ++++++++++-------- .../KXNetwork/KX_NetworkMessageSensor.cpp | 2 +- .../gameengine/Ketsji/KX_BlenderMaterial.cpp | 4 +- source/gameengine/Ketsji/KX_Camera.cpp | 18 +- .../Ketsji/KX_ConstraintActuator.cpp | 2 +- source/gameengine/Ketsji/KX_GameObject.cpp | 46 ++-- source/gameengine/Ketsji/KX_MeshProxy.cpp | 4 +- source/gameengine/Ketsji/KX_PolyProxy.cpp | 2 +- source/gameengine/Ketsji/KX_PyMath.h | 31 ++- source/gameengine/Ketsji/KX_PythonInit.cpp | 32 +-- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 4 +- source/gameengine/Ketsji/KX_Scene.cpp | 4 +- source/gameengine/Ketsji/KX_SoundActuator.cpp | 4 +- source/gameengine/Ketsji/KX_TouchSensor.cpp | 3 +- source/gameengine/Ketsji/KX_VertexProxy.cpp | 2 +- .../gameengine/VideoTexture/FilterNormal.cpp | 21 +- .../gameengine/VideoTexture/blendVideoTex.cpp | 10 +- 30 files changed, 300 insertions(+), 248 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index f413ad969f4..7515f3f5f91 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1037,7 +1037,7 @@ int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF if (!PyString_Check(value)) { - PyErr_SetString(PyExc_ValueError, "expected the string name of the action"); + PyErr_SetString(PyExc_ValueError, "actuator.action = val: Action Actuator, expected the string name of the action"); return -1; } @@ -1049,7 +1049,7 @@ int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF action= (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); if (!action) { - PyErr_SetString(PyExc_ValueError, "action not found!"); + PyErr_SetString(PyExc_ValueError, "actuator.action = val: Action Actuator, action not found!"); return 1; } } diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h index d5b5762d9e7..6ae7f716b4b 100644 --- a/source/gameengine/Converter/BL_ActionActuator.h +++ b/source/gameengine/Converter/BL_ActionActuator.h @@ -154,7 +154,7 @@ public: case ACT_ACTION_FROM_PROP: return 0; default: - PyErr_SetString(PyExc_ValueError, "invalid type supplied"); + PyErr_SetString(PyExc_ValueError, "Action Actuator, invalid play type supplied"); return 1; } } diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp index 25a4413a31d..62bc99bb437 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp +++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp @@ -869,7 +869,7 @@ int BL_ShapeActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE /* exact copy of BL_ActionActuator's function from here down */ if (!PyString_Check(value)) { - PyErr_SetString(PyExc_ValueError, "expected the string name of the action"); + PyErr_SetString(PyExc_ValueError, "actuator.action = val: Shape Action Actuator, expected the string name of the action"); return -1; } @@ -881,7 +881,7 @@ int BL_ShapeActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE action= (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(val); if (action==NULL) { - PyErr_SetString(PyExc_ValueError, "action not found!"); + PyErr_SetString(PyExc_ValueError, "actuator.action = val: Shape Action Actuator, action not found!"); return 1; } } diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.h b/source/gameengine/Converter/BL_ShapeActionActuator.h index 716d8c9995b..3bc35ac9495 100644 --- a/source/gameengine/Converter/BL_ShapeActionActuator.h +++ b/source/gameengine/Converter/BL_ShapeActionActuator.h @@ -144,7 +144,7 @@ public: case ACT_ACTION_FROM_PROP: return 0; default: - PyErr_SetString(PyExc_ValueError, "invalid type supplied"); + PyErr_SetString(PyExc_ValueError, "Shape Action Actuator, invalid play type supplied"); return 1; } diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp index 5c7e6a4383e..dd9b296dce1 100644 --- a/source/gameengine/Expressions/ListValue.cpp +++ b/source/gameengine/Expressions/ListValue.cpp @@ -58,7 +58,7 @@ PyObject* listvalue_buffer_item(PyObject* self, Py_ssize_t index) return list->GetValue(index)->GetProxy(); } - PyErr_SetString(PyExc_IndexError, "Python ListIndex out of range"); + PyErr_SetString(PyExc_IndexError, "list[i]: Python ListIndex out of range in CValueList"); return NULL; } @@ -85,7 +85,7 @@ PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex) } PyObject *pyindex_str = PyObject_Repr(pyindex); /* new ref */ - PyErr_Format(PyExc_KeyError, "'%s' not in list", PyString_AsString(pyindex_str)); + PyErr_Format(PyExc_KeyError, "list[key]: '%s' key not in list", PyString_AsString(pyindex_str)); Py_DECREF(pyindex_str); return NULL; } @@ -162,7 +162,7 @@ listvalue_buffer_concat(PyObject * self, PyObject * other) } if (error) { - PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add one or more items to a list"); + PyErr_SetString(PyExc_SystemError, "list.append(val): couldn't add one or more items to this CValueList"); return NULL; } @@ -187,7 +187,7 @@ listvalue_buffer_concat(PyObject * self, PyObject * other) listval->Add(objval); } else { - PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add item to a list"); + PyErr_SetString(PyExc_SystemError, "list.append(i): couldn't add item to this CValueList"); return NULL; } } @@ -495,7 +495,7 @@ PyObject* CListValue::Pyindex(PyObject *value) checkobj->Release(); if (result==NULL) { - PyErr_SetString(PyExc_ValueError, "ValueError: list.index(x): x not in CListValue"); + PyErr_SetString(PyExc_ValueError, "list.index(x): x not in CListValue"); } return result; @@ -543,7 +543,7 @@ PyObject* CListValue::Pyfrom_id(PyObject* value) if (reinterpret_cast(m_pValueArray[i]->m_proxy) == id) return GetValue(i)->GetProxy(); } - PyErr_SetString(PyExc_IndexError, "from_id(#), id not found in CValueList"); + PyErr_SetString(PyExc_IndexError, "from_id(#): id not found in CValueList"); return NULL; } diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index da761bd22cb..6cfa14ddc80 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -325,12 +325,12 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb { if (!PySequence_Check(value)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence"); + PyErr_Format(PyExc_TypeError, "expected a sequence for attribute \"%s\"", attrdef->m_name); return 1; } if (PySequence_Size(value) != attrdef->m_length) { - PyErr_SetString(PyExc_TypeError, "incorrect number of elements in sequence"); + PyErr_Format(PyExc_TypeError, "incorrect number of elements in sequence for attribute \"%s\"", attrdef->m_name); return 1; } switch (attrdef->m_type) @@ -338,7 +338,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb case KX_PYATTRIBUTE_TYPE_FUNCTION: if (attrdef->m_setFunction == NULL) { - PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "function attribute without function for attribute \"%s\", report to blender.org", attrdef->m_name); return 1; } return (*attrdef->m_setFunction)(self, attrdef, value); @@ -357,7 +357,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb break; default: // should not happen - PyErr_SetString(PyExc_AttributeError, "Unsupported attribute type, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "Unsupported attribute type for attribute \"%s\", report to blender.org", attrdef->m_name); return 1; } // let's implement a smart undo method @@ -390,7 +390,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else { - PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); + PyErr_Format(PyExc_TypeError, "expected an integer or a bool for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } break; @@ -411,14 +411,14 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_imin || val > attrdef->m_imax) { - PyErr_SetString(PyExc_ValueError, "item value out of range"); + PyErr_Format(PyExc_ValueError, "item value out of range for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } *var = (short int)val; } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_Format(PyExc_TypeError, "expected an integer for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } break; @@ -427,7 +427,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb // enum are equivalent to int, just make sure that the field size matches: if (sizeof(int) != attrdef->m_size) { - PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "Size check error for attribute, \"%s\", report to blender.org", attrdef->m_name); goto UNDO_AND_ERROR; } // walkthrough @@ -447,14 +447,14 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_imin || val > attrdef->m_imax) { - PyErr_SetString(PyExc_ValueError, "item value out of range"); + PyErr_Format(PyExc_ValueError, "item value out of range for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } *var = (int)val; } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_Format(PyExc_TypeError, "expected an integer for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } break; @@ -466,7 +466,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb double val = PyFloat_AsDouble(item); if (val == -1.0 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "expected a float"); + PyErr_Format(PyExc_TypeError, "expected a float for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } else if (attrdef->m_clamp) @@ -478,7 +478,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_fmin || val > attrdef->m_fmax) { - PyErr_SetString(PyExc_ValueError, "item value out of range"); + PyErr_Format(PyExc_ValueError, "item value out of range for attribute \"%s\"", attrdef->m_name); goto UNDO_AND_ERROR; } *var = (float)val; @@ -486,7 +486,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } default: // should not happen - PyErr_SetString(PyExc_AttributeError, "attribute type check error, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "type check error for attribute \"%s\", report to blender.org", attrdef->m_name); goto UNDO_AND_ERROR; } } @@ -515,7 +515,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb { if (attrdef->m_setFunction == NULL) { - PyErr_SetString(PyExc_AttributeError, "function attribute without function, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "function attribute without function \"%s\", report to blender.org", attrdef->m_name); return 1; } return (*attrdef->m_setFunction)(self, attrdef, value); @@ -545,7 +545,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb bufferSize = strlen(reinterpret_cast(sourceBuffer))+1; break; default: - PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "unknown type for attribute \"%s\", report to blender.org", attrdef->m_name); return 1; } if (bufferSize) @@ -573,7 +573,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else { - PyErr_SetString(PyExc_TypeError, "expected an integer or a bool"); + PyErr_Format(PyExc_TypeError, "expected an integer or a bool for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } break; @@ -593,14 +593,14 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_imin || val > attrdef->m_imax) { - PyErr_SetString(PyExc_ValueError, "value out of range"); + PyErr_Format(PyExc_ValueError, "value out of range for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } *var = (short int)val; } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_Format(PyExc_TypeError, "expected an integer for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } break; @@ -609,7 +609,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb // enum are equivalent to int, just make sure that the field size matches: if (sizeof(int) != attrdef->m_size) { - PyErr_SetString(PyExc_AttributeError, "attribute size check error, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "attribute size check error for attribute \"%s\", report to blender.org", attrdef->m_name); goto FREE_AND_ERROR; } // walkthrough @@ -628,14 +628,14 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_imin || val > attrdef->m_imax) { - PyErr_SetString(PyExc_ValueError, "value out of range"); + PyErr_Format(PyExc_ValueError, "value out of range for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } *var = (int)val; } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_Format(PyExc_TypeError, "expected an integer for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } break; @@ -646,7 +646,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb double val = PyFloat_AsDouble(value); if (val == -1.0 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "expected a float"); + PyErr_Format(PyExc_TypeError, "expected a float for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } else if (attrdef->m_clamp) @@ -658,7 +658,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } else if (val < attrdef->m_fmin || val > attrdef->m_fmax) { - PyErr_SetString(PyExc_ValueError, "value out of range"); + PyErr_Format(PyExc_ValueError, "value out of range for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } *var = (float)val; @@ -675,7 +675,7 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb if (strlen(val) < attrdef->m_imin) { // can't increase the length of the string - PyErr_SetString(PyExc_ValueError, "string length too short"); + PyErr_Format(PyExc_ValueError, "string length too short for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } else if (strlen(val) > attrdef->m_imax) @@ -689,21 +689,21 @@ int PyObjectPlus::py_set_attrdef(void *self, const PyAttributeDef *attrdef, PyOb } } else if (strlen(val) < attrdef->m_imin || strlen(val) > attrdef->m_imax) { - PyErr_SetString(PyExc_ValueError, "string length out of range"); + PyErr_Format(PyExc_ValueError, "string length out of range for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } *var = val; } else { - PyErr_SetString(PyExc_TypeError, "expected a string"); + PyErr_Format(PyExc_TypeError, "expected a string for attribute \"%s\"", attrdef->m_name); goto FREE_AND_ERROR; } break; } default: // should not happen - PyErr_SetString(PyExc_AttributeError, "unknown attribute type, report to blender.org"); + PyErr_Format(PyExc_AttributeError, "unknown type for attribute \"%s\", report to blender.org", attrdef->m_name); goto FREE_AND_ERROR; } } @@ -787,7 +787,7 @@ PyObject *PyObjectPlus::PyisA(PyObject *value) // Python wrapper for isA } else if (PyString_Check(value)) { return PyBool_FromLong(isA(PyString_AsString(value))); } - PyErr_SetString(PyExc_TypeError, "expected a type or a string"); + PyErr_SetString(PyExc_TypeError, "object.isA(value): expected a type or a string"); return NULL; } diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp index ca46d782992..7cb97909119 100644 --- a/source/gameengine/Expressions/Value.cpp +++ b/source/gameengine/Expressions/Value.cpp @@ -671,7 +671,7 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj) } else { /* return an error value from the caller */ - PyErr_SetString(PyExc_TypeError, "This python value could not be assigned to a game engine property"); + PyErr_SetString(PyExc_TypeError, "This python type could not be converted to a to a game engine property"); } return vallie; diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 28ff1c82924..1c601eded81 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -601,7 +601,7 @@ PyObject* SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYAT SCA_Joystick *joy = self->m_pJoystickMgr->GetJoystickDevice(self->m_joyindex); if(self->m_joymode != KX_JOYSENSORMODE_AXIS_SINGLE) { - PyErr_SetString(PyExc_TypeError, "joystick sensor is not an 'Single Axis' type"); + PyErr_SetString(PyExc_TypeError, "val = sensor.axisSingle: Joystick Sensor, not 'Single Axis' type"); return NULL; } diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index d56e5fe29dc..c946156283f 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -590,7 +590,7 @@ KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, "\tGet the given key's status (KX_NO_INPUTSTATUS, KX_JUSTACTIVATED, KX_ACTIVE or KX_JUSTRELEASED).\n") { if (!PyInt_Check(value)) { - PyErr_SetString(PyExc_ValueError, "getKeyStatus expected an int"); + PyErr_SetString(PyExc_ValueError, "sensor.getKeyStatus(int): Keyboard Sensor, expected an int"); return NULL; } @@ -598,7 +598,7 @@ KX_PYMETHODDEF_DOC_O(SCA_KeyboardSensor, getKeyStatus, if ((keycode < SCA_IInputDevice::KX_BEGINKEY) || (keycode > SCA_IInputDevice::KX_ENDKEY)){ - PyErr_SetString(PyExc_AttributeError, "invalid keycode specified!"); + PyErr_SetString(PyExc_AttributeError, "sensor.getKeyStatus(int): Keyboard Sensor, invalid keycode specified!"); return NULL; } diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 8f41e799b01..4dbeb156e63 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -279,7 +279,7 @@ KX_PYMETHODDEF_DOC_O(SCA_MouseSensor, getButtonStatus, if ((button < SCA_IInputDevice::KX_LEFTMOUSE) || (button > SCA_IInputDevice::KX_RIGHTMOUSE)){ - PyErr_SetString(PyExc_ValueError, "invalid button specified!"); + PyErr_SetString(PyExc_ValueError, "sensor.getButtonStatus(int): Mouse Sensor, invalid button specified!"); return NULL; } diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index 121f868a281..b8052555528 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -187,7 +187,7 @@ SCA_IActuator* SCA_PythonController::LinkedActuatorFromPy(PyObject *value) /* set the exception */ PyObject *value_str = PyObject_Repr(value); /* new ref */ - PyErr_Format(PyExc_ValueError, "'%s' not in this controllers actuator list", PyString_AsString(value_str)); + PyErr_Format(PyExc_ValueError, "'%s' not in this python controllers actuator list", PyString_AsString(value_str)); Py_DECREF(value_str); return false; @@ -417,14 +417,14 @@ PyObject* SCA_PythonController::PyGetActuators() } const char SCA_PythonController::GetSensor_doc[] = -"GetSensor (char sensorname) return linked sensor that is named [sensorname]\n"; +"getSensor (char sensorname) return linked sensor that is named [sensorname]\n"; PyObject* SCA_PythonController::PyGetSensor(PyObject* value) { char *scriptArg = PyString_AsString(value); if (scriptArg==NULL) { - PyErr_SetString(PyExc_TypeError, "expected a string (sensor name)"); + PyErr_SetString(PyExc_TypeError, "controller.getSensor(string): Python Controller, expected a string (sensor name)"); return NULL; } @@ -438,21 +438,21 @@ SCA_PythonController::PyGetSensor(PyObject* value) } } - PyErr_Format(PyExc_AttributeError, "Unable to find requested sensor \"%s\"", scriptArg); + PyErr_Format(PyExc_AttributeError, "controller.getSensor(string): Python Controller, unable to find requested sensor \"%s\"", scriptArg); return NULL; } const char SCA_PythonController::GetActuator_doc[] = -"GetActuator (char sensorname) return linked actuator that is named [actuatorname]\n"; +"getActuator (char sensorname) return linked actuator that is named [actuatorname]\n"; PyObject* SCA_PythonController::PyGetActuator(PyObject* value) { char *scriptArg = PyString_AsString(value); if (scriptArg==NULL) { - PyErr_SetString(PyExc_TypeError, "expected a string (actuator name)"); + PyErr_SetString(PyExc_TypeError, "controller.getActuator(string): Python Controller, expected a string (actuator name)"); return NULL; } @@ -465,7 +465,7 @@ SCA_PythonController::PyGetActuator(PyObject* value) } } - PyErr_Format(PyExc_AttributeError, "Unable to find requested actuator \"%s\"", scriptArg); + PyErr_Format(PyExc_AttributeError, "controller.getActuator(string): Python Controller, unable to find requested actuator \"%s\"", scriptArg); return NULL; } @@ -536,7 +536,7 @@ int SCA_PythonController::pyattr_set_script(void *self_v, const KX_PYATTRIBUTE_D char *scriptArg = PyString_AsString(value); if (scriptArg==NULL) { - PyErr_SetString(PyExc_TypeError, "expected a string (script name)"); + PyErr_SetString(PyExc_TypeError, "controller.script = string: Python Controller, expected a string script text"); return -1; } diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index 6fb10faaf8c..3a72d9b7652 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -386,7 +386,7 @@ int SCA_RandomActuator::pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_ act->m_base->SetSeed(ival); return 0; } else { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_SetString(PyExc_TypeError, "actuator.seed = int: Random Actuator, expected an integer"); return 1; } } diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index e04d2a8ab90..5ead82db428 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -224,7 +224,7 @@ int SCA_RandomSensor::pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *at { SCA_RandomSensor* self= static_cast(self_v); if (!PyInt_Check(value)) { - PyErr_SetString(PyExc_TypeError, "expected an integer"); + PyErr_SetString(PyExc_TypeError, "sensor.seed = int: Random Sensor, expected an integer"); return -1; } self->m_basegenerator->SetSeed(PyInt_AsLong(value)); diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp index 01b6805ae7a..88d920043e0 100644 --- a/source/gameengine/Ketsji/BL_Shader.cpp +++ b/source/gameengine/Ketsji/BL_Shader.cpp @@ -858,7 +858,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, validate, "validate()") Py_RETURN_NONE; } if(mShader==0) { - PyErr_Format(PyExc_TypeError, "invalid shader object"); + PyErr_SetString(PyExc_TypeError, "shader.validate(): BL_Shader, invalid shader object"); return NULL; } int stat = 0; @@ -1175,7 +1175,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv , "setUniformfv( float (list2 or lis }break; default: { - PyErr_Format(PyExc_TypeError, "Invalid list size"); + PyErr_SetString(PyExc_TypeError, "shader.setUniform4i(name, ix,iy,iz, iw): BL_Shader. invalid list size"); return NULL; }break; } @@ -1185,7 +1185,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv , "setUniformfv( float (list2 or lis return NULL; } -KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( int (list2 or list3 or list4) )") +KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( uniform_name, (list2 or list3 or list4) )") { if(mError) { Py_RETURN_NONE; @@ -1194,70 +1194,84 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( int (list2 or list3 PyObject *listPtr =0; int array_data[4] = {0,0,0,0}; - if(PyArg_ParseTuple(args, "sO:setUniformiv", &uniform, &listPtr)) - { - int loc = GetUniformLocation(uniform); - if(loc != -1) - { - if(PySequence_Check(listPtr)) - { - unsigned int list_size = PySequence_Size(listPtr); - - for(unsigned int i=0; (i(self_v); int param = PyObject_IsTrue( value ); if (param == -1) { - PyErr_SetString(PyExc_AttributeError, "expected True or False"); + PyErr_SetString(PyExc_AttributeError, "camera.perspective = bool: KX_Camera, expected True/False or 0/1"); return -1; } @@ -808,7 +808,7 @@ int KX_Camera::pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, KX_Camera* self= static_cast(self_v); float param = PyFloat_AsDouble(value); if (param == -1) { - PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + PyErr_SetString(PyExc_AttributeError, "camera.lens = float: KX_Camera, expected a float greater then zero"); return -1; } @@ -828,7 +828,7 @@ int KX_Camera::pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, KX_Camera* self= static_cast(self_v); float param = PyFloat_AsDouble(value); if (param == -1) { - PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + PyErr_SetString(PyExc_AttributeError, "camera.near = float: KX_Camera, expected a float greater then zero"); return -1; } @@ -848,7 +848,7 @@ int KX_Camera::pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, P KX_Camera* self= static_cast(self_v); float param = PyFloat_AsDouble(value); if (param == -1) { - PyErr_SetString(PyExc_AttributeError, "expected a float greater then zero"); + PyErr_SetString(PyExc_AttributeError, "camera.far = float: KX_Camera, expected a float greater then zero"); return -1; } diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp index 462abd3a584..1ce7fac0cfe 100644 --- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp +++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp @@ -652,7 +652,7 @@ int KX_ConstraintActuator::pyattr_check_direction(void *self, const struct KX_PY MT_Vector3 dir(act->m_refDirection); MT_Scalar len = dir.length(); if (MT_fuzzyZero(len)) { - PyErr_SetString(PyExc_ValueError, "Invalid direction"); + PyErr_SetString(PyExc_ValueError, "actuator.direction = vec: KX_ConstraintActuator, invalid direction"); return 1; } act->m_refDirVector = dir/len; diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 9fe7ab75267..af1dc7f67b2 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1187,13 +1187,13 @@ PyObject* KX_GameObject::PyReplaceMesh(PyObject* value) meshname = PyString_AsString(value); if (meshname==NULL) { - PyErr_SetString(PyExc_ValueError, "Expected a mesh name"); + PyErr_SetString(PyExc_ValueError, "gameOb.replaceMesh(value): KX_GameObject, expected a mesh name"); return NULL; } mesh_pt = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); if (mesh_pt==NULL) { - PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); + PyErr_SetString(PyExc_ValueError, "gameOb.replaceMesh(value): KX_GameObject, the mesh name given does not exist"); return NULL; } scene->ReplaceMesh(this, (class RAS_MeshObject*)mesh_pt); @@ -1259,8 +1259,8 @@ PyObject *KX_GameObject::Map_GetItem(PyObject *self_v, PyObject *item) return pyconvert; } else { - if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" does not exist", attr_str); - else PyErr_SetString(PyExc_KeyError, "KX_GameObject key does not exist"); + if(attr_str) PyErr_Format(PyExc_KeyError, "value = gameOb[key]: KX_GameObject, key \"%s\" does not exist", attr_str); + else PyErr_SetString(PyExc_KeyError, "value = gameOb[key]: KX_GameObject, key does not exist"); return NULL; } @@ -1290,8 +1290,8 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) del |= (PyDict_DelItem(self->m_attr_dict, key)==0) ? 1:0; if (del==0) { - if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not found", attr_str); - else PyErr_SetString(PyExc_KeyError, "KX_GameObject key not found"); + if(attr_str) PyErr_Format(PyExc_KeyError, "gameOb[key] = value: KX_GameObject, key \"%s\" could not be set", attr_str); + else PyErr_SetString(PyExc_KeyError, "gameOb[key] = value: KX_GameObject, key could not be set"); return -1; } else if (self->m_attr_dict) { @@ -1342,8 +1342,8 @@ int KX_GameObject::Map_SetItem(PyObject *self_v, PyObject *key, PyObject *val) set= 1; } else { - if(attr_str) PyErr_Format(PyExc_KeyError, "KX_GameObject key \"%s\" not be added to internal dictionary", attr_str); - else PyErr_SetString(PyExc_KeyError, "KX_GameObject key not be added to internal dictionary"); + if(attr_str) PyErr_Format(PyExc_KeyError, "gameOb[key] = value: KX_GameObject, key \"%s\" not be added to internal dictionary", attr_str); + else PyErr_SetString(PyExc_KeyError, "gameOb[key] = value: KX_GameObject, key not be added to internal dictionary"); } } @@ -1424,7 +1424,7 @@ int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrd KX_IPhysicsController *spc = self->GetPhysicsController(); MT_Scalar val = PyFloat_AsDouble(value); if (val < 0.0f) { /* also accounts for non float */ - PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + PyErr_SetString(PyExc_AttributeError, "gameOb.mass = float: KX_GameObject, expected a float zero or above"); return 1; } @@ -1447,7 +1447,7 @@ int KX_GameObject::pyattr_set_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF KX_IPhysicsController *spc = self->GetPhysicsController(); MT_Scalar val = PyFloat_AsDouble(value); if (val < 0.0f) { /* also accounts for non float */ - PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + PyErr_SetString(PyExc_AttributeError, "gameOb.linVelocityMin = float: KX_GameObject, expected a float zero or above"); return 1; } @@ -1470,7 +1470,7 @@ int KX_GameObject::pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF KX_IPhysicsController *spc = self->GetPhysicsController(); MT_Scalar val = PyFloat_AsDouble(value); if (val < 0.0f) { /* also accounts for non float */ - PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + PyErr_SetString(PyExc_AttributeError, "gameOb.linVelocityMax = float: KX_GameObject, expected a float zero or above"); return 1; } @@ -1492,7 +1492,7 @@ int KX_GameObject::pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *at KX_GameObject* self= static_cast(self_v); int param = PyObject_IsTrue( value ); if (param == -1) { - PyErr_SetString(PyExc_AttributeError, "expected True or False"); + PyErr_SetString(PyExc_AttributeError, "gameOb.visible = bool: KX_GameObject, expected True or False"); return 1; } @@ -1569,7 +1569,7 @@ int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUT { KX_GameObject* self= static_cast(self_v); if (!PySequence_Check(value)) { - PyErr_SetString(PyExc_AttributeError, "'orientation' attribute needs to be a sequence"); + PyErr_SetString(PyExc_AttributeError, "gameOb.orientation = [...]: KX_GameObject, expected a sequence"); return 1; } @@ -1609,7 +1609,7 @@ int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUT return 1; } - PyErr_SetString(PyExc_AttributeError, "could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); + PyErr_SetString(PyExc_AttributeError, "gameOb.orientation = [...]: KX_GameObject, could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); return 1; } @@ -1658,7 +1658,7 @@ int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF MT_Scalar val = PyFloat_AsDouble(value); SG_Node* sg_parent= self->GetSGNode()->GetSGParent(); if (val < 0.0f) { /* also accounts for non float */ - PyErr_SetString(PyExc_AttributeError, "expected a float zero or above"); + PyErr_SetString(PyExc_AttributeError, "gameOb.timeOffset = float: KX_GameObject, expected a float zero or above"); return 1; } if (sg_parent && sg_parent->IsSlowParent()) @@ -1682,13 +1682,13 @@ int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attr unsigned int state = 0; if (state_i == -1 && PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, "expected an int bit field"); + PyErr_SetString(PyExc_TypeError, "gameOb.state = int: KX_GameObject, expected an int bit field"); return 1; } state |= state_i; if ((state & ((1<<30)-1)) == 0) { - PyErr_SetString(PyExc_AttributeError, "The state bitfield was not between 0 and 30 (1<<0 and 1<<29)"); + PyErr_SetString(PyExc_AttributeError, "gameOb.state = int: KX_GameObject, state bitfield was not between 0 and 30 (1<<0 and 1<<29)"); return 1; } self->SetState(state); @@ -1701,7 +1701,7 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE PyObject *meshes= PyList_New(self->m_meshes.size()); int i; - for(i=0; i < (int)self->m_meshes.size(); i++) + for(i=0; i < self->m_meshes.size(); i++) { KX_MeshProxy* meshproxy = new KX_MeshProxy(self->m_meshes[i]); PyList_SET_ITEM(meshes, i, meshproxy->GetProxy()); @@ -1847,7 +1847,7 @@ int KX_GameObject::py_setattro(PyObject *attr, PyObject *value) // py_setattro m ret= PY_SET_ATTR_SUCCESS; } else { - PyErr_Format(PyExc_AttributeError, "failed assigning value to KX_GameObject internal dictionary"); + PyErr_Format(PyExc_AttributeError, "gameOb.myAttr = value: KX_GameObject, failed assigning value to internal dictionary"); ret= PY_SET_ATTR_FAIL; } } @@ -1866,7 +1866,7 @@ int KX_GameObject::py_delattro(PyObject *attr) if (m_attr_dict && (PyDict_DelItem(m_attr_dict, attr) == 0)) return 0; - PyErr_Format(PyExc_AttributeError, "attribute \"%s\" dosnt exist", attr_str); + PyErr_Format(PyExc_AttributeError, "del gameOb.myAttr: KX_GameObject, attribute \"%s\" dosnt exist", attr_str); return 1; } @@ -2390,7 +2390,7 @@ KX_PYMETHODDEF_DOC_O(KX_GameObject, getVectTo, toPoint = other->NodeGetWorldPosition(); } else { - PyErr_SetString(PyExc_TypeError, "Expected a 3D Vector or GameObject type"); + PyErr_SetString(PyExc_TypeError, "gameOb.getVectTo(other): KX_GameObject, expected a 3D Vector or KX_GameObject type"); return NULL; } } @@ -2484,7 +2484,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo, toPoint = other->NodeGetWorldPosition(); } else { - PyErr_SetString(PyExc_TypeError, "the first argument to rayCastTo must be a vector or a KX_GameObject"); + PyErr_SetString(PyExc_TypeError, "gameOb.rayCastTo(other,dist,prop): KX_GameObject, the first argument to rayCastTo must be a vector or a KX_GameObject"); return NULL; } } @@ -2577,7 +2577,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, fromPoint = other->NodeGetWorldPosition(); } else { - PyErr_SetString(PyExc_TypeError, "the second optional argument to rayCast must be a vector or a KX_GameObject"); + PyErr_SetString(PyExc_TypeError, "gameOb.rayCast(to,from,dist,prop,face,xray,poly): KX_GameObject, the second optional argument to rayCast must be a vector or a KX_GameObject"); return NULL; } } diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index ded862fb21d..e2c59ab4242 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -243,7 +243,7 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* args, PyObject* kwds) if (polyindex<0 || polyindex >= m_meshobj->NumPolygons()) { - PyErr_SetString(PyExc_AttributeError, "Invalid polygon index"); + PyErr_SetString(PyExc_AttributeError, "mesh.getPolygon(int): KX_MeshProxy, invalid polygon index"); return NULL; } @@ -254,7 +254,7 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* args, PyObject* kwds) polyob = (new KX_PolyProxy(m_meshobj, polygon))->NewProxy(true); } else { - PyErr_SetString(PyExc_AttributeError, "polygon is NULL, unknown reason"); + PyErr_SetString(PyExc_AttributeError, "mesh.getPolygon(int): KX_MeshProxy, polygon is NULL, unknown reason"); } return polyob; } diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp index 5888579431a..2e5dd72db0e 100644 --- a/source/gameengine/Ketsji/KX_PolyProxy.cpp +++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp @@ -242,7 +242,7 @@ KX_PYMETHODDEF_DOC(KX_PolyProxy, getVertexIndex, } if (index < 0 || index > 3) { - PyErr_SetString(PyExc_AttributeError, "Valid range for index is 0-3"); + PyErr_SetString(PyExc_AttributeError, "poly.getVertexIndex(int): KX_PolyProxy, expected an index between 0-3"); return NULL; } if (index < m_polygon->VertexCount()) diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h index 39c9c358792..4a64063aaa1 100644 --- a/source/gameengine/Ketsji/KX_PyMath.h +++ b/source/gameengine/Ketsji/KX_PyMath.h @@ -92,18 +92,35 @@ bool PyMatTo(PyObject* pymat, T& mat) } /** - * Converts a python list to a MT class. + * Converts a python sequence to a MT class. */ template bool PyVecTo(PyObject* pyval, T& vec) { - if (PySequence_Check(pyval)) + + if(PyTuple_Check(pyval)) + { + unsigned int numitems = PyTuple_GET_SIZE(pyval); + if (numitems != Size(vec)) { + PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", numitems, Size(vec)); + return false; + } + + for (unsigned int x = 0; x < numitems; x++) + vec[x] = PyFloat_AsDouble(PyTuple_GET_ITEM(pyval, x)); /* borrow ref */ + + if (PyErr_Occurred()) { + PyErr_SetString(PyExc_AttributeError, "one or more of the items in the sequence was not a float"); + return false; + } + + return true; + } + else if (PySequence_Check(pyval)) { unsigned int numitems = PySequence_Size(pyval); if (numitems != Size(vec)) { - char err[128]; - sprintf(err, "error setting vector, %d args, should be %d", numitems, Size(vec)); - PyErr_SetString(PyExc_AttributeError, err); + PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", numitems, Size(vec)); return false; } @@ -122,9 +139,7 @@ bool PyVecTo(PyObject* pyval, T& vec) return true; } else { - char err[128]; - sprintf(err, "not a sequence type, expected a sequence of numbers size %d", Size(vec)); - PyErr_SetString(PyExc_AttributeError, err); + PyErr_Format(PyExc_AttributeError, "not a sequence type, expected a sequence of numbers size %d", Size(vec)); } return false; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 2227072d2e7..097d20fe0e5 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -553,7 +553,7 @@ static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setEyeSeparation(float), Rasterizer not available"); return NULL; } @@ -565,7 +565,7 @@ static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args) static PyObject* gPyGetEyeSeparation(PyObject*) { if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getEyeSeparation(), Rasterizer not available"); return NULL; } @@ -579,7 +579,7 @@ static PyObject* gPySetFocalLength(PyObject*, PyObject* args) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setFocalLength(float), Rasterizer not available"); return NULL; } @@ -591,7 +591,7 @@ static PyObject* gPySetFocalLength(PyObject*, PyObject* args) static PyObject* gPyGetFocalLength(PyObject*, PyObject*, PyObject*) { if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getFocalLength(), Rasterizer not available"); return NULL; } @@ -624,7 +624,7 @@ static PyObject* gPySetMistColor(PyObject*, PyObject* value) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setMistColor(color), Rasterizer not available"); return NULL; } gp_Rasterizer->SetFogColor(vec[0], vec[1], vec[2]); @@ -642,7 +642,7 @@ static PyObject* gPySetMistStart(PyObject*, PyObject* args) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setMistStart(float), Rasterizer not available"); return NULL; } @@ -661,7 +661,7 @@ static PyObject* gPySetMistEnd(PyObject*, PyObject* args) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setMistEnd(float), Rasterizer not available"); return NULL; } @@ -679,7 +679,7 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* value) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setAmbientColor(color), Rasterizer not available"); return NULL; } gp_Rasterizer->SetAmbientColor(vec[0], vec[1], vec[2]); @@ -711,7 +711,7 @@ static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args) return NULL; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.enableMotionBlur(float), Rasterizer not available"); return NULL; } @@ -723,7 +723,7 @@ static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args) static PyObject* gPyDisableMotionBlur(PyObject*, PyObject* args) { if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.disableMotionBlur(), Rasterizer not available"); return NULL; } @@ -763,7 +763,7 @@ static PyObject* gPySetGLSLMaterialSetting(PyObject*, flag = getGLSLSettingFlag(setting); if (flag==-1) { - PyErr_SetString(PyExc_ValueError, "glsl setting is not known"); + PyErr_SetString(PyExc_ValueError, "Rasterizer.setGLSLMaterialSetting(string): glsl setting is not known"); return NULL; } @@ -804,7 +804,7 @@ static PyObject* gPyGetGLSLMaterialSetting(PyObject*, flag = getGLSLSettingFlag(setting); if (flag==-1) { - PyErr_SetString(PyExc_ValueError, "glsl setting is not known"); + PyErr_SetString(PyExc_ValueError, "Rasterizer.getGLSLMaterialSetting(string): glsl setting is not known"); return NULL; } @@ -832,7 +832,7 @@ static PyObject* gPySetMaterialType(PyObject*, else if(type == KX_TEXFACE_MATERIAL) flag = 0; else { - PyErr_SetString(PyExc_ValueError, "material type is not known"); + PyErr_SetString(PyExc_ValueError, "Rasterizer.setMaterialType(int): material type is not known"); return NULL; } @@ -863,7 +863,7 @@ static PyObject* gPyDrawLine(PyObject*, PyObject* args) PyObject* ob_color; if (!gp_Rasterizer) { - PyErr_SetString(PyExc_RuntimeError, "Rasterizer not available"); + PyErr_SetString(PyExc_RuntimeError, "Rasterizer.drawLine(obFrom, obTo, color): Rasterizer not available"); return NULL; } @@ -1270,7 +1270,7 @@ PyObject *KXpy_reload(PyObject *self, PyObject *args) { return newmodule; if (found==0) /* if its found but could not import then it has its own error */ - PyErr_SetString(PyExc_ImportError, "failed to reload from blenders internal text"); + PyErr_SetString(PyExc_ImportError, "reload(module): failed to reload from blenders internal text"); return newmodule; } @@ -1517,7 +1517,7 @@ static PyObject* gPyEventToString(PyObject*, PyObject* value) PyErr_Clear(); // incase there was an error clearing Py_DECREF(mod); - if (!ret) PyErr_SetString(PyExc_ValueError, "expected a valid int keyboard event"); + if (!ret) PyErr_SetString(PyExc_ValueError, "GameKeys.EventToString(int): expected a valid int keyboard event"); else Py_INCREF(ret); return ret; diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 44dedb38429..53067e94cd8 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -121,7 +121,7 @@ int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYAT } else if (PyString_Check(value)) { void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(PyString_AsString(value))); if (mesh==NULL) { - PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); + PyErr_SetString(PyExc_ValueError, "actuator.mesh = string: Replace Mesh Actuator, mesh name given does not exist"); return 1; } actuator->m_mesh= (class RAS_MeshObject*)mesh; @@ -129,7 +129,7 @@ int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYAT KX_MeshProxy* proxy = (KX_MeshProxy*)value; actuator->m_mesh= proxy->GetMesh(); } else { - PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh, a mesh proxy or None"); + PyErr_SetString(PyExc_ValueError, "actuator.mesh = value: Replace Mesh Actuator, expected the mesh name, a KX_MeshProxy or None"); return 1; } return 0; diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 96f2f3e8ed3..0e1572da679 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1678,7 +1678,7 @@ PyObject* KX_Scene::py_getattro(PyObject *attr) Py_INCREF(object); } else { - PyErr_Format(PyExc_AttributeError, "KX_Scene attribute \"%s\" not found", PyString_AsString(attr)); + PyErr_Format(PyExc_AttributeError, "value = scene.myAttr: KX_Scene, attribute \"%s\" not found", PyString_AsString(attr)); } } @@ -1696,7 +1696,7 @@ int KX_Scene::py_setattro(PyObject *attr, PyObject *value) ret= PY_SET_ATTR_SUCCESS; } else { - PyErr_SetString(PyExc_AttributeError, "failed assigning value to KX_Scenes internal dictionary"); + PyErr_SetString(PyExc_AttributeError, "scene.UserAttr = value: KX_Scenes, failed assigning value to internal dictionary"); ret= PY_SET_ATTR_FAIL; } } diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index eb1d91d760f..b9edd7436df 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -355,7 +355,7 @@ PyObject* KX_SoundActuator::pyattr_get_filename(void *self, const struct KX_PYAT char* name = objectname.Ptr(); if (!name) { - PyErr_SetString(PyExc_RuntimeError, "Unable to get sound filename"); + PyErr_SetString(PyExc_RuntimeError, "value = actuator.filename: KX_SoundActuator, unable to get sound filename"); return NULL; } else return PyString_FromString(name); @@ -541,7 +541,7 @@ int KX_SoundActuator::pyattr_set_orientation(void *self, const struct KX_PYATTRI KX_SoundActuator * actuator = static_cast (self); if (!PySequence_Check(value)) { - PyErr_SetString(PyExc_AttributeError, "'orientation' attribute needs to be a sequence"); + PyErr_SetString(PyExc_AttributeError, "value = actuator.orientation: KX_SoundActuator, expected a sequence"); return 1; } diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp index e7f8acbd1a8..5a6e8e6f501 100644 --- a/source/gameengine/Ketsji/KX_TouchSensor.cpp +++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp @@ -369,7 +369,7 @@ const char KX_TouchSensor::GetTouchMaterial_doc[] = "\tKX_FALSE if it looks for a specific property.\n" ; PyObject* KX_TouchSensor::PyGetTouchMaterial() { - ShowDeprecationWarning("getTouchMaterial()", "the materialCheck property"); + ShowDeprecationWarning("getTouchMaterial()", "the useMaterial property"); return PyInt_FromLong(m_bFindMaterial); } @@ -382,6 +382,7 @@ const char KX_TouchSensor::SetTouchMaterial_doc[] = "\tKX_FALSE to switch off positive pulse mode.\n" ; PyObject* KX_TouchSensor::PySetTouchMaterial(PyObject *value) { + ShowDeprecationWarning("setTouchMaterial()", "the useMaterial property"); int pulseArg = PyInt_AsLong(value); if(pulseArg ==-1 && PyErr_Occurred()) { diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp index 8be125011bb..88f63334285 100644 --- a/source/gameengine/Ketsji/KX_VertexProxy.cpp +++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp @@ -398,7 +398,7 @@ PyObject* KX_VertexProxy::PySetRGBA(PyObject* value) } } - PyErr_SetString(PyExc_TypeError, "expected a 4D vector or an int"); + PyErr_SetString(PyExc_TypeError, "vert.setRGBA(value): KX_VertexProxy, expected a 4D vector or an int"); return NULL; } diff --git a/source/gameengine/VideoTexture/FilterNormal.cpp b/source/gameengine/VideoTexture/FilterNormal.cpp index 03a79c1c8ce..a7266967efb 100644 --- a/source/gameengine/VideoTexture/FilterNormal.cpp +++ b/source/gameengine/VideoTexture/FilterNormal.cpp @@ -74,7 +74,7 @@ static int setColor (PyFilter * self, PyObject * value, void * closure) // check validity of parameter if (value == NULL || !PyInt_Check(value)) { - PyErr_SetString(PyExc_TypeError, "The value must be a int"); + PyErr_SetString(PyExc_TypeError, "filt.colorIdx = int: VideoTexture.FilterNormal, expected the value must be a int"); return -1; } // set color index @@ -94,15 +94,20 @@ static PyObject * getDepth (PyFilter * self, void * closure) static int setDepth (PyFilter * self, PyObject * value, void * closure) { // check validity of parameter - if (value == NULL || !PyFloat_Check(value)) + if (value) { - PyErr_SetString(PyExc_TypeError, "The value must be a float"); - return -1; + float depth= (float)PyFloat_AsDouble(value); + if ((depth==-1 && PyErr_Occurred()) == 0) /* no error converting to a float? */ + { + // set depth + getFilter(self)->setDepth(depth); + // success + return 0; + } } - // set depth - getFilter(self)->setDepth(float(PyFloat_AsDouble(value))); - // success - return 0; + + PyErr_SetString(PyExc_TypeError, "filt.depth = float: VideoTexture.FilterNormal, expected the value must be a float"); + return -1; } diff --git a/source/gameengine/VideoTexture/blendVideoTex.cpp b/source/gameengine/VideoTexture/blendVideoTex.cpp index ec066811a52..c11e7fffecd 100644 --- a/source/gameengine/VideoTexture/blendVideoTex.cpp +++ b/source/gameengine/VideoTexture/blendVideoTex.cpp @@ -1,6 +1,6 @@ /* $Id$ ----------------------------------------------------------------------------- -This source file is part of VideoTexure library +This source file is part of VideoTexture library Copyright (c) 2006 The Zdeno Ash Miklas @@ -49,14 +49,14 @@ static PyObject * getMaterialID (PyObject *self, PyObject *args) char * matName; // get parameters - if (!PyArg_ParseTuple(args, "Os", &obj, &matName)) + if (!PyArg_ParseTuple(args, "Os:materialID", &obj, &matName)) return NULL; // get material id short matID = getMaterialID(obj, matName); // if material was not found, report errot if (matID < 0) { - PyErr_SetString(PyExc_RuntimeError, "object doesn't have material with given name"); + PyErr_SetString(PyExc_RuntimeError, "VideoTexture.materialID(ob, string): Object doesn't have material with given name"); return NULL; } // return material ID @@ -67,7 +67,7 @@ static PyObject * getMaterialID (PyObject *self, PyObject *args) // get last error description static PyObject * getLastError (PyObject *self, PyObject *args) { - return Py_BuildValue("s", Exception::m_lastError.c_str()); + return PyString_FromString(Exception::m_lastError.c_str()); } // set log file @@ -89,7 +89,7 @@ static PyObject * imageToArray (PyObject * self, PyObject *args) if (!PyArg_ParseTuple(args, "O", &pyImg) || !pyImageTypes.in(pyImg->ob_type)) { // if object is incorect, report error - PyErr_SetString(PyExc_TypeError, "The value must be a image source object"); + PyErr_SetString(PyExc_TypeError, "VideoTexture.imageToArray(image): The value must be a image source object"); return NULL; } // get image structure From fcdbbee208fb64e9f0696843a69726de3c0d36b8 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Sun, 19 Apr 2009 21:26:29 +0000 Subject: [PATCH 198/201] SCons / epydoc support * properly detect if epydoc is installed. patch by Brandano --- SConstruct | 9 ++++- source/blender/python/api2_2x/doc/SConscript | 40 +++++++++----------- source/gameengine/PyDoc/SConscript | 40 +++++++++----------- 3 files changed, 43 insertions(+), 46 deletions(-) diff --git a/SConstruct b/SConstruct index 6cc3fcb811d..3cdb5aeace7 100644 --- a/SConstruct +++ b/SConstruct @@ -616,6 +616,11 @@ if not env['WITHOUT_BF_INSTALL']: #------------ EPYDOC if env['WITH_BF_DOCS']: - SConscript('source/blender/python/api2_2x/doc/SConscript') - SConscript('source/gameengine/PyDoc/SConscript') + try: + import epydoc + SConscript('source/blender/python/api2_2x/doc/SConscript') + SConscript('source/gameengine/PyDoc/SConscript') + except ImportError: + print "No epydoc install detected, Python API and Gameengine API Docs will not be generated " + diff --git a/source/blender/python/api2_2x/doc/SConscript b/source/blender/python/api2_2x/doc/SConscript index eca5d9a615c..4e2c72ba502 100644 --- a/source/blender/python/api2_2x/doc/SConscript +++ b/source/blender/python/api2_2x/doc/SConscript @@ -3,26 +3,22 @@ Import ('env') from optparse import OptionParser -try: - import epydoc -except ImportError: - print "No epydoc install detected, Python API Docs will not be generated " -if epydoc: - from epydoc.docbuilder import build_doc_index - from epydoc import cli - names = env.Glob("source/blender/python/api2_2x/doc/[A-Z]*.py") - docindex = build_doc_index(names) - optvalues = cli.OPTION_DEFAULTS - optvalues["verbose"] = 1 - optvalues["target"] = env["BF_DOCDIR"]+"/BPY_API/" - optvalues["url"] = "http://www.blender.org" - optvalues["top"] = "API_intro" - optvalues["name"] = "Blender" - optvalues["noprivate"] = 1 - optvalues["noframes"] = 1 - optvalues["names"] = names - optparser = OptionParser() - optparser.set_defaults(**optvalues) - (options, args) = optparser.parse_args([]) - cli.write_html(docindex, options) +import epydoc +from epydoc.docbuilder import build_doc_index +from epydoc import cli +names = env.Glob("source/blender/python/api2_2x/doc/[A-Z]*.py") +docindex = build_doc_index(names) +optvalues = cli.OPTION_DEFAULTS +optvalues["verbose"] = 1 +optvalues["target"] = env["BF_DOCDIR"]+"/BPY_API/" +optvalues["url"] = "http://www.blender.org" +optvalues["top"] = "API_intro" +optvalues["name"] = "Blender" +optvalues["noprivate"] = 1 +optvalues["noframes"] = 1 +optvalues["names"] = names +optparser = OptionParser() +optparser.set_defaults(**optvalues) +(options, args) = optparser.parse_args([]) +cli.write_html(docindex, options) diff --git a/source/gameengine/PyDoc/SConscript b/source/gameengine/PyDoc/SConscript index ac0b163d7bd..ab1fda8fa85 100644 --- a/source/gameengine/PyDoc/SConscript +++ b/source/gameengine/PyDoc/SConscript @@ -3,26 +3,22 @@ Import ('env') from optparse import OptionParser -try: - import epydoc -except ImportError: - print "No epydoc install detected, Python API Docs will not be generated " -if epydoc: - from epydoc.docbuilder import build_doc_index - from epydoc import cli - names = env.Glob("source/gameengine/PyDoc/*.py") - docindex = build_doc_index(names) - optvalues = cli.OPTION_DEFAULTS - optvalues["verbose"] = 1 - optvalues["target"] = env["BF_DOCDIR"]+"/BGE_API/" - optvalues["url"] = "http://www.blender.org" - optvalues["top"] = "Game Engine API" - optvalues["name"] = "Blender" - optvalues["noprivate"] = 1 - optvalues["noframes"] = 1 - optvalues["names"] = names - optparser = OptionParser() - optparser.set_defaults(**optvalues) - (options, args) = optparser.parse_args([]) - cli.write_html(docindex, options) +import epydoc +from epydoc.docbuilder import build_doc_index +from epydoc import cli +names = env.Glob("source/gameengine/PyDoc/*.py") +docindex = build_doc_index(names) +optvalues = cli.OPTION_DEFAULTS +optvalues["verbose"] = 1 +optvalues["target"] = env["BF_DOCDIR"]+"/BGE_API/" +optvalues["url"] = "http://www.blender.org" +optvalues["top"] = "Game Engine API" +optvalues["name"] = "Blender" +optvalues["noprivate"] = 1 +optvalues["noframes"] = 1 +optvalues["names"] = names +optparser = OptionParser() +optparser.set_defaults(**optvalues) +(options, args) = optparser.parse_args([]) +cli.write_html(docindex, options) From 9078ce5da209bcfd31c60b55118076359ce7244f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 19 Apr 2009 22:02:48 +0000 Subject: [PATCH 199/201] Scons epydos changed options - no source code since this is only useful if the epydocs contain code, ours are only docstrings. - set inheritance to included so you dont have to search up the classes to find available functions. - SConstruct, isolate the exception for importing epydoc. - Added a print to the SConscript files otherwise it looks like nothings happening. --- SConstruct | 8 +++++--- source/blender/python/api2_2x/doc/SConscript | 5 +++++ source/gameengine/PyDoc/SConscript | 5 +++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/SConstruct b/SConstruct index 3cdb5aeace7..03aee18413c 100644 --- a/SConstruct +++ b/SConstruct @@ -616,11 +616,13 @@ if not env['WITHOUT_BF_INSTALL']: #------------ EPYDOC if env['WITH_BF_DOCS']: - try: - import epydoc + try: import epydoc + except: epydoc = None + + if epydoc: SConscript('source/blender/python/api2_2x/doc/SConscript') SConscript('source/gameengine/PyDoc/SConscript') - except ImportError: + else: print "No epydoc install detected, Python API and Gameengine API Docs will not be generated " diff --git a/source/blender/python/api2_2x/doc/SConscript b/source/blender/python/api2_2x/doc/SConscript index 4e2c72ba502..c95b844c1f4 100644 --- a/source/blender/python/api2_2x/doc/SConscript +++ b/source/blender/python/api2_2x/doc/SConscript @@ -10,6 +10,10 @@ names = env.Glob("source/blender/python/api2_2x/doc/[A-Z]*.py") docindex = build_doc_index(names) optvalues = cli.OPTION_DEFAULTS optvalues["verbose"] = 1 +optvalues["quiet"] = 0 +optvalues["include_source_code"] = 0 +optvalues["inheritance"] = "included" +optvalues["show_private"] = 0 optvalues["target"] = env["BF_DOCDIR"]+"/BPY_API/" optvalues["url"] = "http://www.blender.org" optvalues["top"] = "API_intro" @@ -20,5 +24,6 @@ optvalues["names"] = names optparser = OptionParser() optparser.set_defaults(**optvalues) (options, args) = optparser.parse_args([]) +print "Writing Blender Python epydocs to \"%s\"" % optvalues["target"] cli.write_html(docindex, options) diff --git a/source/gameengine/PyDoc/SConscript b/source/gameengine/PyDoc/SConscript index ab1fda8fa85..ed9712ba273 100644 --- a/source/gameengine/PyDoc/SConscript +++ b/source/gameengine/PyDoc/SConscript @@ -10,6 +10,10 @@ names = env.Glob("source/gameengine/PyDoc/*.py") docindex = build_doc_index(names) optvalues = cli.OPTION_DEFAULTS optvalues["verbose"] = 1 +optvalues["quiet"] = 0 +optvalues["include_source_code"] = 0 +optvalues["inheritance"] = "included" +optvalues["show_private"] = 0 optvalues["target"] = env["BF_DOCDIR"]+"/BGE_API/" optvalues["url"] = "http://www.blender.org" optvalues["top"] = "Game Engine API" @@ -20,5 +24,6 @@ optvalues["names"] = names optparser = OptionParser() optparser.set_defaults(**optvalues) (options, args) = optparser.parse_args([]) +print "Writing Game Engine epydocs to \"%s\"" % optvalues["target"] cli.write_html(docindex, options) From dee32d0b3f409007f5a392668068b92c3810026a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 20 Apr 2009 09:13:59 +0000 Subject: [PATCH 200/201] BGE Python API - initialize pythons sys.argv in the blenderplayer - ignore all arguments after a single " - " in the blenderplayer (like in blender), so args can be passed to the game. - add a utility function PyOrientationTo() - to take a Py euler, quat or 3x3 matrix and convert into a C++ MT_Matrix3x3. - add utility function ConvertPythonToMesh to get a RAS_MeshObject from a KX_MeshProxy or a name. - Added error prefix arguments to ConvertPythonToGameObject, ConvertPythonToMesh and PyOrientationTo so the error messages can include what function they came from. - deprecated brick.getOwner() for the "owner" attribute. --- .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 20 ++++- source/gameengine/GameLogic/SCA_ILogicBrick.h | 2 + .../GamePlayer/ghost/GPG_Application.cpp | 8 +- .../GamePlayer/ghost/GPG_Application.h | 6 +- .../gameengine/GamePlayer/ghost/GPG_ghost.cpp | 13 ++- .../gameengine/Ketsji/KX_CameraActuator.cpp | 4 +- source/gameengine/Ketsji/KX_GameObject.cpp | 90 +++++-------------- source/gameengine/Ketsji/KX_GameObject.h | 2 +- source/gameengine/Ketsji/KX_MeshProxy.cpp | 55 ++++++++++++ source/gameengine/Ketsji/KX_MeshProxy.h | 3 + .../gameengine/Ketsji/KX_ParentActuator.cpp | 4 +- source/gameengine/Ketsji/KX_PyMath.cpp | 34 +++++++ source/gameengine/Ketsji/KX_PyMath.h | 2 + source/gameengine/Ketsji/KX_PythonInit.cpp | 7 +- source/gameengine/Ketsji/KX_PythonInit.h | 2 +- .../Ketsji/KX_SCA_AddObjectActuator.cpp | 4 +- .../Ketsji/KX_SCA_ReplaceMeshActuator.cpp | 41 +++------ source/gameengine/Ketsji/KX_Scene.cpp | 4 +- source/gameengine/Ketsji/KX_SoundActuator.cpp | 50 ++--------- .../gameengine/Ketsji/KX_TrackToActuator.cpp | 4 +- .../gameengine/Ketsji/KX_VehicleWrapper.cpp | 5 +- source/gameengine/PyDoc/KX_VehicleWrapper.py | 20 +++-- source/gameengine/PyDoc/SCA_ILogicBrick.py | 6 +- 23 files changed, 215 insertions(+), 171 deletions(-) diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index b3045402c2c..3cd750ff63b 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -246,8 +246,8 @@ PyParentObject SCA_ILogicBrick::Parents[] = { PyMethodDef SCA_ILogicBrick::Methods[] = { + // --> Deprecated {"getOwner", (PyCFunction) SCA_ILogicBrick::sPyGetOwner, METH_NOARGS}, - // --> Deprecated {"getExecutePriority", (PyCFunction) SCA_ILogicBrick::sPyGetExecutePriority, METH_NOARGS}, {"setExecutePriority", (PyCFunction) SCA_ILogicBrick::sPySetExecutePriority, METH_VARARGS}, // <-- Deprecated @@ -255,6 +255,7 @@ PyMethodDef SCA_ILogicBrick::Methods[] = { }; PyAttributeDef SCA_ILogicBrick::Attributes[] = { + KX_PYATTRIBUTE_RO_FUNCTION("owner", SCA_ILogicBrick, pyattr_get_owner), KX_PYATTRIBUTE_INT_RW("executePriority",0,100000,false,SCA_ILogicBrick,m_Execute_Ueber_Priority), {NULL} //Sentinel }; @@ -291,6 +292,8 @@ int SCA_ILogicBrick::py_setattro(PyObject *attr, PyObject *value) PyObject* SCA_ILogicBrick::PyGetOwner() { + ShowDeprecationWarning("getOwner()", "the owner property"); + CValue* parent = GetParent(); if (parent) { @@ -327,6 +330,19 @@ PyObject* SCA_ILogicBrick::PyGetExecutePriority() } +/*Attribute functions */ +PyObject* SCA_ILogicBrick::pyattr_get_owner(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + SCA_ILogicBrick* self= static_cast(self_v); + CValue* parent = self->GetParent(); + + if (parent) + return parent->GetProxy(); + + Py_RETURN_NONE; +} + + /* Conversions for making life better. */ bool SCA_ILogicBrick::PyArgToBool(int boolArg) @@ -338,8 +354,6 @@ bool SCA_ILogicBrick::PyArgToBool(int boolArg) } } - - PyObject* SCA_ILogicBrick::BoolToPyArg(bool boolarg) { return PyInt_FromLong(boolarg? KX_TRUE: KX_FALSE); diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index c0ff0fd633f..e59d05ea051 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -90,6 +90,8 @@ public: KX_PYMETHOD_NOARGS(SCA_ILogicBrick,GetOwner); KX_PYMETHOD_VARARGS(SCA_ILogicBrick,SetExecutePriority); KX_PYMETHOD_NOARGS(SCA_ILogicBrick,GetExecutePriority); + + static PyObject* pyattr_get_owner(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); // check that attribute is a property static int CheckProperty(void *self, const PyAttributeDef *attrdef); diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp index 0ecbbea3af6..907ba99e63b 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp @@ -151,7 +151,7 @@ GPG_Application::~GPG_Application(void) -bool GPG_Application::SetGameEngineData(struct Main* maggie, Scene *scene) +bool GPG_Application::SetGameEngineData(struct Main* maggie, Scene *scene, int argc, char **argv) { bool result = false; @@ -163,6 +163,10 @@ bool GPG_Application::SetGameEngineData(struct Main* maggie, Scene *scene) m_startScene = scene; result = true; } + + /* Python needs these */ + m_argc= argc; + m_argv= argv; return result; } @@ -681,7 +685,7 @@ bool GPG_Application::startEngine(void) // some python things - PyObject* dictionaryobject = initGamePlayerPythonScripting("Ketsji", psl_Lowest, m_maggie); + PyObject* dictionaryobject = initGamePlayerPythonScripting("Ketsji", psl_Lowest, m_maggie, m_argc, m_argv); m_ketsjiengine->SetPythonDictionary(dictionaryobject); initRasterizer(m_rasterizer, m_canvas); PyObject *gameLogic = initGameLogic(m_ketsjiengine, startscene); diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.h b/source/gameengine/GamePlayer/ghost/GPG_Application.h index 38408f919b4..845686f5770 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_Application.h +++ b/source/gameengine/GamePlayer/ghost/GPG_Application.h @@ -58,7 +58,7 @@ public: GPG_Application(GHOST_ISystem* system); ~GPG_Application(void); - bool SetGameEngineData(struct Main* maggie, struct Scene* scene); + bool SetGameEngineData(struct Main* maggie, struct Scene* scene, int argc, char** argv); bool startWindow(STR_String& title, int windowLeft, int windowTop, int windowWidth, int windowHeight, const bool stereoVisual, const int stereoMode); bool startFullScreen(int width, int height, int bpp, int frequency, const bool stereoVisual, const int stereoMode); @@ -154,5 +154,9 @@ protected: */ char* m_pyGlobalDictString; int m_pyGlobalDictString_Length; + + /* argc and argv need to be passed on to python */ + int m_argc; + char** m_argv; }; diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index a41446ad88c..64e70ce37c3 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -206,6 +206,8 @@ void usage(const char* program) printf(" blender_material 0 Enable material settings\n"); printf(" ignore_deprecation_warnings 1 Ignore deprecation warnings\n"); printf("\n"); + printf(" - : all arguments after this are ignored, allowing python to access them from sys.argv\n"); + printf("\n"); printf("example: %s -w 320 200 10 10 -g noaudio c:\\loadtest.blend\n", program); printf("example: %s -g show_framerate = 0 c:\\loadtest.blend\n", program); } @@ -293,6 +295,7 @@ static BlendFileData *load_game_data(char *progname, char *filename = NULL, char int main(int argc, char** argv) { int i; + int argc_py_clamped= argc; /* use this so python args can be added after ' - ' */ bool error = false; SYS_SystemHandle syshandle = SYS_GetSystem(); bool fullScreen = false; @@ -393,6 +396,12 @@ int main(int argc, char** argv) #endif if (argv[i][0] == '-') { + /* ignore all args after " - ", allow python to have own args */ + if (argv[i][1]=='\0') { + argc_py_clamped= i; + break; + } + switch (argv[i][1]) { case 'g': @@ -596,7 +605,7 @@ int main(int argc, char** argv) char pathname[FILE_MAXDIR + FILE_MAXFILE]; char *titlename; - get_filename(argc, argv, filename); + get_filename(argc_py_clamped, argv, filename); if(filename[0]) BLI_convertstringcwd(filename); @@ -691,7 +700,7 @@ int main(int argc, char** argv) } // GPG_Application app (system, maggie, startscenename); - app.SetGameEngineData(maggie, scene); + app.SetGameEngineData(maggie, scene, argc, argv); /* this argc cant be argc_py_clamped, since python uses it */ BLI_strncpy(pathname, maggie->name, sizeof(pathname)); BLI_strncpy(G.sce, maggie->name, sizeof(G.sce)); diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp index 6cc48856a94..355cdbb6263 100644 --- a/source/gameengine/Ketsji/KX_CameraActuator.cpp +++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp @@ -462,7 +462,7 @@ PyObject* KX_CameraActuator::PySetObject(PyObject* value) ShowDeprecationWarning("setObject()", "the object property"); - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.setObject(value): KX_CameraActuator")) return NULL; // ConvertPythonToGameObject sets the error if (m_ob != NULL) @@ -589,7 +589,7 @@ int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF KX_CameraActuator* self= static_cast(self_v); KX_GameObject *gameobj; - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.object = value: KX_CameraActuator")) return 1; // ConvertPythonToGameObject sets the error if (self->m_ob) diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index af1dc7f67b2..bea0fcff2af 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -1182,22 +1182,12 @@ bool KX_GameObject::ConvertPythonVectorArgs(PyObject* args, PyObject* KX_GameObject::PyReplaceMesh(PyObject* value) { KX_Scene *scene = KX_GetActiveScene(); - char* meshname; - void* mesh_pt; - - meshname = PyString_AsString(value); - if (meshname==NULL) { - PyErr_SetString(PyExc_ValueError, "gameOb.replaceMesh(value): KX_GameObject, expected a mesh name"); - return NULL; - } - mesh_pt = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); + RAS_MeshObject* new_mesh; - if (mesh_pt==NULL) { - PyErr_SetString(PyExc_ValueError, "gameOb.replaceMesh(value): KX_GameObject, the mesh name given does not exist"); + if (!ConvertPythonToMesh(value, &new_mesh, false, "gameOb.replaceMesh(value): KX_GameObject")) return NULL; - } - scene->ReplaceMesh(this, (class RAS_MeshObject*)mesh_pt); + scene->ReplaceMesh(this, new_mesh); Py_RETURN_NONE; } @@ -1568,49 +1558,15 @@ PyObject* KX_GameObject::pyattr_get_localOrientation(void *self_v, const KX_PYAT int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_GameObject* self= static_cast(self_v); - if (!PySequence_Check(value)) { - PyErr_SetString(PyExc_AttributeError, "gameOb.orientation = [...]: KX_GameObject, expected a sequence"); - return 1; - } - + + /* if value is not a sequence PyOrientationTo makes an error */ MT_Matrix3x3 rot; + if (!PyOrientationTo(value, rot, "gameOb.orientation = sequence: KX_GameObject, ")) + return NULL; - if (PyMatTo(value, rot)) - { - self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f); - return 0; - } - PyErr_Clear(); - - if (PySequence_Size(value) == 4) - { - MT_Quaternion qrot; - if (PyVecTo(value, qrot)) - { - rot.setRotation(qrot); - self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f); - return 0; - } - return 1; - } - - if (PySequence_Size(value) == 3) - { - MT_Vector3 erot; - if (PyVecTo(value, erot)) - { - rot.setEuler(erot); - self->NodeSetLocalOrientation(rot); - self->NodeUpdateGS(0.f); - return 0; - } - return 1; - } - - PyErr_SetString(PyExc_AttributeError, "gameOb.orientation = [...]: KX_GameObject, could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); - return 1; + self->NodeSetLocalOrientation(rot); + self->NodeUpdateGS(0.f); + return 0; } PyObject* KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) @@ -2127,7 +2083,7 @@ PyObject* KX_GameObject::PyGetParent() PyObject* KX_GameObject::PySetParent(PyObject* value) { KX_GameObject *obj; - if (!ConvertPythonToGameObject(value, &obj, false)) + if (!ConvertPythonToGameObject(value, &obj, false, "gameOb.setParent(value): KX_GameObject")) return NULL; this->SetParent(KX_GetActiveScene(), obj); @@ -2362,7 +2318,7 @@ KX_PYMETHODDEF_DOC_O(KX_GameObject, getDistanceTo, PyErr_Clear(); KX_GameObject *other; - if (ConvertPythonToGameObject(value, &other, false)) + if (ConvertPythonToGameObject(value, &other, false, "gameOb.getDistanceTo(value): KX_GameObject")) { return PyFloat_FromDouble(NodeGetWorldPosition().distance(other->NodeGetWorldPosition())); } @@ -2385,7 +2341,7 @@ KX_PYMETHODDEF_DOC_O(KX_GameObject, getVectTo, PyErr_Clear(); KX_GameObject *other; - if (ConvertPythonToGameObject(value, &other, false)) + if (ConvertPythonToGameObject(value, &other, false, "")) /* error will be overwritten */ { toPoint = other->NodeGetWorldPosition(); } else @@ -2479,7 +2435,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo, KX_GameObject *other; PyErr_Clear(); - if (ConvertPythonToGameObject(pyarg, &other, false)) + if (ConvertPythonToGameObject(pyarg, &other, false, "")) /* error will be overwritten */ { toPoint = other->NodeGetWorldPosition(); } else @@ -2555,7 +2511,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, { PyErr_Clear(); - if (ConvertPythonToGameObject(pyto, &other, false)) + if (ConvertPythonToGameObject(pyto, &other, false, "")) /* error will be overwritten */ { toPoint = other->NodeGetWorldPosition(); } else @@ -2572,7 +2528,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast, { PyErr_Clear(); - if (ConvertPythonToGameObject(pyfrom, &other, false)) + if (ConvertPythonToGameObject(pyfrom, &other, false, "")) /* error will be overwritten */ { fromPoint = other->NodeGetWorldPosition(); } else @@ -2685,10 +2641,10 @@ void KX_GameObject::Relink(GEN_Map *map_parameter) } } -bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok) +bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok, const char *error_prefix) { if (value==NULL) { - PyErr_SetString(PyExc_TypeError, "Error in ConvertPythonToGameObject, python pointer NULL, should never happen"); + PyErr_Format(PyExc_TypeError, "%s, python pointer NULL, should never happen", error_prefix); *object = NULL; return false; } @@ -2699,7 +2655,7 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py if (py_none_ok) { return true; } else { - PyErr_SetString(PyExc_TypeError, "Expected KX_GameObject or a string for a name of a KX_GameObject, None is invalid"); + PyErr_Format(PyExc_TypeError, "%s, expected KX_GameObject or a KX_GameObject name, None is invalid", error_prefix); return false; } } @@ -2710,7 +2666,7 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py if (*object) { return true; } else { - PyErr_SetString(PyExc_ValueError, "Requested name did not match any KX_GameObject"); + PyErr_Format(PyExc_ValueError, "%s, requested name \"%s\" did not match any KX_GameObject in this scene", error_prefix, PyString_AsString(value)); return false; } } @@ -2720,7 +2676,7 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py /* sets the error */ if (*object==NULL) { - PyErr_SetString(PyExc_RuntimeError, BGE_PROXY_ERROR_MSG); + PyErr_Format(PyExc_RuntimeError, "%s, " BGE_PROXY_ERROR_MSG, error_prefix); return false; } @@ -2730,9 +2686,9 @@ bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py *object = NULL; if (py_none_ok) { - PyErr_SetString(PyExc_TypeError, "Expect a KX_GameObject, a string or None"); + PyErr_Format(PyExc_TypeError, "%s, expect a KX_GameObject, a string or None", error_prefix); } else { - PyErr_SetString(PyExc_TypeError, "Expect a KX_GameObject or a string"); + PyErr_Format(PyExc_TypeError, "%s, expect a KX_GameObject or a string", error_prefix); } return false; diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h index 89517bd76ce..ec02dc17b75 100644 --- a/source/gameengine/Ketsji/KX_GameObject.h +++ b/source/gameengine/Ketsji/KX_GameObject.h @@ -61,7 +61,7 @@ class PHY_IPhysicsEnvironment; struct Object; /* utility conversion function */ -bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok); +bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok, const char *error_prefix); /** * KX_GameObject is the main class for dynamic objects. diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp index e2c59ab4242..6be1da55ff8 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.cpp +++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp @@ -304,3 +304,58 @@ PyObject * KX_MeshProxy::pyattr_get_numPolygons(void * selfv, const KX_PYATTRIBU KX_MeshProxy * self = static_cast (selfv); return PyInt_FromLong(self->m_meshobj->NumPolygons()); } + +/* a close copy of ConvertPythonToGameObject but for meshes */ +bool ConvertPythonToMesh(PyObject * value, RAS_MeshObject **object, bool py_none_ok, const char *error_prefix) +{ + if (value==NULL) { + PyErr_Format(PyExc_TypeError, "%s, python pointer NULL, should never happen", error_prefix); + *object = NULL; + return false; + } + + if (value==Py_None) { + *object = NULL; + + if (py_none_ok) { + return true; + } else { + PyErr_Format(PyExc_TypeError, "%s, expected KX_MeshProxy or a KX_MeshProxy name, None is invalid", error_prefix); + return false; + } + } + + if (PyString_Check(value)) { + *object = (RAS_MeshObject*)SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String( PyString_AsString(value) )); + + if (*object) { + return true; + } else { + PyErr_Format(PyExc_ValueError, "%s, requested name \"%s\" did not match any KX_MeshProxy in this scene", error_prefix, PyString_AsString(value)); + return false; + } + } + + if (PyObject_TypeCheck(value, &KX_MeshProxy::Type)) { + KX_MeshProxy *kx_mesh = static_castBGE_PROXY_REF(value); + + /* sets the error */ + if (*object==NULL) { + PyErr_Format(PyExc_RuntimeError, "%s, " BGE_PROXY_ERROR_MSG, error_prefix); + return false; + } + + *object = kx_mesh->GetMesh(); + return true; + } + + *object = NULL; + + if (py_none_ok) { + PyErr_Format(PyExc_TypeError, "%s, expect a KX_MeshProxy, a string or None", error_prefix); + } else { + PyErr_Format(PyExc_TypeError, "%s, expect a KX_MeshProxy or a string", error_prefix); + } + + return false; +} diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h index dfc498801a7..aeecefc09e6 100644 --- a/source/gameengine/Ketsji/KX_MeshProxy.h +++ b/source/gameengine/Ketsji/KX_MeshProxy.h @@ -31,6 +31,9 @@ #include "SCA_IObject.h" +/* utility conversion function */ +bool ConvertPythonToMesh(PyObject * value, class RAS_MeshObject **object, bool py_none_ok, const char *error_prefix); + class KX_MeshProxy : public SCA_IObject { Py_Header; diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 69c0a3cd510..0093cf5f313 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -192,7 +192,7 @@ int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE KX_ParentActuator* actuator = static_cast(self); KX_GameObject *gameobj; - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.object = value: KX_ParentActuator")) return 1; // ConvertPythonToGameObject sets the error if (actuator->m_ob != NULL) @@ -226,7 +226,7 @@ PyObject* KX_ParentActuator::PySetObject(PyObject* value) { ShowDeprecationWarning("setObject()", "the object property"); - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.setObject(value): KX_ParentActuator")) return NULL; // ConvertPythonToGameObject sets the error if (m_ob != NULL) diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp index cceb7a12446..0093a72808e 100644 --- a/source/gameengine/Ketsji/KX_PyMath.cpp +++ b/source/gameengine/Ketsji/KX_PyMath.cpp @@ -44,6 +44,7 @@ #include "ListValue.h" #include "KX_Python.h" +#include "KX_PyMath.h" bool PyObject_IsMT_Matrix(PyObject *pymat, unsigned int rank) { @@ -74,6 +75,39 @@ bool PyObject_IsMT_Matrix(PyObject *pymat, unsigned int rank) return false; } +bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &mat, const char *error_prefix) +{ + MT_Matrix3x3 rot; + int size= PySequence_Size(pyval); + + if (size == 4) + { + MT_Quaternion qrot; + if (PyVecTo(pyval, qrot)) + { + rot.setRotation(qrot); + return true; + } + } + else if (size == 3) { + /* 3x3 matrix or euler */ + MT_Vector3 erot; + if (PyVecTo(pyval, erot)) + { + rot.setEuler(erot); + return true; + } + PyErr_Clear(); + + if (PyMatTo(pyval, rot)) + { + return true; + } + } + + PyErr_Format(PyExc_TypeError, "%s, could not set the orientation from a 3x3 matrix, quaternion or euler sequence", error_prefix); + return false; +} PyObject* PyObjectFrom(const MT_Matrix4x4 &mat) { diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h index 4a64063aaa1..00f7c5cad93 100644 --- a/source/gameengine/Ketsji/KX_PyMath.h +++ b/source/gameengine/Ketsji/KX_PyMath.h @@ -145,6 +145,8 @@ bool PyVecTo(PyObject* pyval, T& vec) return false; } +bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &mat, const char *error_prefix); + /** * Converts an MT_Matrix4x4 to a python object. */ diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 097d20fe0e5..9649e50a98b 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1357,14 +1357,17 @@ void setSandbox(TPythonSecurityLevel level) /** * Python is not initialised. */ -PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie) +PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie, int argc, char** argv) { STR_String pname = progname; Py_SetProgramName(pname.Ptr()); Py_NoSiteFlag=1; Py_FrozenFlag=1; Py_Initialize(); - + + if(argv) /* browser plugins dont currently set this */ + PySys_SetArgv(argc, argv); + //importBlenderModules() setSandbox(level); diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h index 97d23fe391c..11360197b95 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.h +++ b/source/gameengine/Ketsji/KX_PythonInit.h @@ -43,7 +43,7 @@ extern bool gUseVisibilityTemp; PyObject* initGameLogic(class KX_KetsjiEngine *engine, class KX_Scene* ketsjiscene); PyObject* initGameKeys(); PyObject* initRasterizer(class RAS_IRasterizer* rasty,class RAS_ICanvas* canvas); -PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie); +PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie, int argc, char** argv); PyObject* initMathutils(); PyObject* initBGL(); PyObject* initVideoTexture(void); diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp index f1c7b757579..56d94a8d226 100644 --- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp @@ -231,7 +231,7 @@ int KX_SCA_AddObjectActuator::pyattr_set_object(void *self, const struct KX_PYAT KX_SCA_AddObjectActuator* actuator = static_cast(self); KX_GameObject *gameobj; - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.object = value: KX_SCA_AddObjectActuator")) return 1; // ConvertPythonToGameObject sets the error if (actuator->m_OriginalObject != NULL) @@ -277,7 +277,7 @@ PyObject* KX_SCA_AddObjectActuator::PySetObject(PyObject* value) ShowDeprecationWarning("setObject()", "the object property"); - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.setObject(value): KX_SCA_AddObjectActuator")) return NULL; // ConvertPythonToGameObject sets the error if (m_OriginalObject != NULL) diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp index 53067e94cd8..38f8d581d55 100644 --- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp +++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp @@ -116,22 +116,12 @@ PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct K int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) { KX_SCA_ReplaceMeshActuator* actuator = static_cast(self); - if (value == Py_None) { - actuator->m_mesh = NULL; - } else if (PyString_Check(value)) { - void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(PyString_AsString(value))); - if (mesh==NULL) { - PyErr_SetString(PyExc_ValueError, "actuator.mesh = string: Replace Mesh Actuator, mesh name given does not exist"); - return 1; - } - actuator->m_mesh= (class RAS_MeshObject*)mesh; - } else if PyObject_TypeCheck(value, &KX_MeshProxy::Type) { - KX_MeshProxy* proxy = (KX_MeshProxy*)value; - actuator->m_mesh= proxy->GetMesh(); - } else { - PyErr_SetString(PyExc_ValueError, "actuator.mesh = value: Replace Mesh Actuator, expected the mesh name, a KX_MeshProxy or None"); + RAS_MeshObject* new_mesh; + + if (!ConvertPythonToMesh(value, &new_mesh, true, "actuator.mesh = value: KX_SCA_ReplaceMeshActuator")) return 1; - } + + actuator->m_mesh = new_mesh; return 0; } @@ -144,23 +134,12 @@ const char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] = PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* value) { ShowDeprecationWarning("setMesh()", "the mesh property"); - if (value == Py_None) { - m_mesh = NULL; - } else { - char* meshname = PyString_AsString(value); - if (!meshname) { - PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh or None"); - return NULL; - } - void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname)); - - if (mesh==NULL) { - PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist"); - return NULL; - } - m_mesh= (class RAS_MeshObject*)mesh; - } + RAS_MeshObject* new_mesh; + if (!ConvertPythonToMesh(value, &new_mesh, true, "actuator.mesh = value: KX_SCA_ReplaceMeshActuator")) + return NULL; + + m_mesh = new_mesh; Py_RETURN_NONE; } diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 0e1572da679..aa7bd65f240 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1747,8 +1747,8 @@ KX_PYMETHODDEF_DOC(KX_Scene, addObject, if (!PyArg_ParseTuple(args, "OO|i:addObject", &pyob, &pyother, &time)) return NULL; - if (!ConvertPythonToGameObject(pyob, &ob, false) - || !ConvertPythonToGameObject(pyother, &other, false)) + if ( !ConvertPythonToGameObject(pyob, &ob, false, "scene.addObject(object, other, time): KX_Scene (first argument)") || + !ConvertPythonToGameObject(pyother, &other, false, "scene.addObject(object, other, time): KX_Scene (second argument)") ) return NULL; diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp index b9edd7436df..412be497c5a 100644 --- a/source/gameengine/Ketsji/KX_SoundActuator.cpp +++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp @@ -540,50 +540,16 @@ int KX_SoundActuator::pyattr_set_orientation(void *self, const struct KX_PYATTRI MT_Matrix3x3 rot; KX_SoundActuator * actuator = static_cast (self); - if (!PySequence_Check(value)) { - PyErr_SetString(PyExc_AttributeError, "value = actuator.orientation: KX_SoundActuator, expected a sequence"); - return 1; - } - + /* if value is not a sequence PyOrientationTo makes an error */ + if (!PyOrientationTo(value, rot, "actuator.orientation = value: KX_SoundActuator")) + return NULL; + if (!actuator->m_soundObject) return 0; /* Since not having m_soundObject didn't do anything in the old version, - * it probably should be kept that way */ - - if (PyMatTo(value, rot)) - { - actuator->m_soundObject->SetOrientation(rot); - return 0; - } - PyErr_Clear(); - - - if (PySequence_Size(value) == 4) - { - MT_Quaternion qrot; - if (PyVecTo(value, qrot)) - { - rot.setRotation(qrot); - actuator->m_soundObject->SetOrientation(rot); - return 0; - } - return 1; - } - - if (PySequence_Size(value) == 3) - { - MT_Vector3 erot; - if (PyVecTo(value, erot)) - { - rot.setEuler(erot); - actuator->m_soundObject->SetOrientation(rot); - return 0; - } - return 1; - } - - PyErr_SetString(PyExc_AttributeError, "could not set the orientation from a 3x3 matrix, quaternion or euler sequence"); - return 1; - + * it probably should be kept that way */ + + actuator->m_soundObject->SetOrientation(rot); + return 0; } // Deprecated -----> diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp index c89d88389c4..fbf43de6cf4 100644 --- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp +++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp @@ -489,7 +489,7 @@ int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUT KX_TrackToActuator* actuator = static_cast(self); KX_GameObject *gameobj; - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.object = value: KX_TrackToActuator")) return 1; // ConvertPythonToGameObject sets the error if (actuator->m_object != NULL) @@ -525,7 +525,7 @@ PyObject* KX_TrackToActuator::PySetObject(PyObject* value) ShowDeprecationWarning("setObject()", "the object property"); - if (!ConvertPythonToGameObject(value, &gameobj, true)) + if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.setObject(value): KX_TrackToActuator")) return NULL; // ConvertPythonToGameObject sets the error if (m_object != NULL) diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp index f77c135e994..1a6fb196db5 100644 --- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp +++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp @@ -47,14 +47,15 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* args) if (PyArg_ParseTuple(args,"OOOOffi:addWheel",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering)) { KX_GameObject *gameOb; - if (!ConvertPythonToGameObject(wheelGameObject, &gameOb, false)) + if (!ConvertPythonToGameObject(wheelGameObject, &gameOb, false, "vehicle.addWheel(...): KX_VehicleWrapper (first argument)")) return NULL; if (gameOb->GetSGNode()) { PHY_IMotionState* motionState = new KX_MotionState(gameOb->GetSGNode()); - + + /* TODO - no error checking here! - bad juju */ MT_Vector3 attachPos,attachDir,attachAxle; PyVecTo(pylistPos,attachPos); PyVecTo(pylistDir,attachDir); diff --git a/source/gameengine/PyDoc/KX_VehicleWrapper.py b/source/gameengine/PyDoc/KX_VehicleWrapper.py index 68240e15622..087aa167475 100644 --- a/source/gameengine/PyDoc/KX_VehicleWrapper.py +++ b/source/gameengine/PyDoc/KX_VehicleWrapper.py @@ -5,15 +5,23 @@ class KX_VehicleWrapper: # (PyObjectPlus) All placeholders have a __ prefix """ - def __addWheel(val): + def addWheel(wheel, attachPos, attachDir, axleDir, suspensionRestLength, wheelRadius, hasSteering): + """ TODO - Description - @param val: the starting frame of the animation - @type val: float - - @rtype: integer - @return: TODO Description + @param wheel: The object to use as a wheel. + @type wheel: L{KX_GameObject} or a KX_GameObject name + @param attachPos: The position that this wheel will attach to. + @type attachPos: vector of 3 floats + @param attachDir: The direction this wheel points. + @type attachDir: vector of 3 floats + @param axleDir: The direction of this wheels axle. + @type axleDir: vector of 3 floats + @param suspensionRestLength: TODO - Description + @type suspensionRestLength: float + @param wheelRadius: The size of the wheel. + @type wheelRadius: float """ def __applyBraking(val): diff --git a/source/gameengine/PyDoc/SCA_ILogicBrick.py b/source/gameengine/PyDoc/SCA_ILogicBrick.py index 18cb900f28d..4688ba12bb6 100644 --- a/source/gameengine/PyDoc/SCA_ILogicBrick.py +++ b/source/gameengine/PyDoc/SCA_ILogicBrick.py @@ -8,13 +8,17 @@ class SCA_ILogicBrick: @ivar executePriority: This determines the order controllers are evaluated, and actuators are activated (lower priority is executed first). @type executePriority: int + @ivar owner: The game object this logic brick is attached to (read only). + @type owner: L{KX_GameObject} or None in exceptional cases. """ def getOwner(): """ Gets the game object associated with this logic brick. - @rtype: L{KX_GameObject} + Deprecated: Use the "owner" property instead. + + @rtype: L{KX_GameObject} """ #--The following methods are deprecated-- From d76a6f5231c015c35123d22e1f5c3ffcdfbf9bbd Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Mon, 20 Apr 2009 13:18:54 +0000 Subject: [PATCH 201/201] Booleans: Fix for "no faces" error, reported by alxarch, thanks! --- source/blender/src/booleanops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/src/booleanops.c b/source/blender/src/booleanops.c index 948797014a4..c5b97e475a9 100644 --- a/source/blender/src/booleanops.c +++ b/source/blender/src/booleanops.c @@ -537,7 +537,7 @@ int NewBooleanMesh(Base *base, Base *base_select, int int_op_type) /* put some checks in for nice user feedback */ if (dm == NULL || dm_select == NULL) return 0; - if (!dm->getNumFaces(dm) || !dm_select->getNumFaces(dm_select)) return 0; + if (!dm->getNumFaces(dm) || !dm_select->getNumFaces(dm_select)) { MEM_freeN(mat); return -1;