[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17253] trunk/blender: Preparation to VideoTexture: everything but the VideoTexture module itself .

Benoit Bolsee benoit.bolsee at online.be
Fri Oct 31 22:06:48 CET 2008


Revision: 17253
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17253
Author:   ben2610
Date:     2008-10-31 22:06:48 +0100 (Fri, 31 Oct 2008)

Log Message:
-----------
Preparation to VideoTexture: everything but the VideoTexture module itself.

Rename PHY_GetActiveScene() to KX_GetActiveScene(): more logical name
Add KX_GetActiveEngine()

new KX_KetsjiEngine::GetClockTime(void) to return current 
render frame time: if the CPU does not keep up with the 
frame rate, up to 5 consecutive logic frames are processed 
between each render frame, so that the logic system stays 
accurate even if the graphic system is slow. For the video 
texture module, it is important to stay in sync with the
render frame: no need to update the texture for logic frame.

BL_Texture::swapTexture(): texture id manipulation
BL_Texture::getTex() : return material texture

Enable video support in ffmpeg for Linux.

Modified Paths:
--------------
    trunk/blender/extern/ffmpeg/Makefile
    trunk/blender/extern/ffmpeg/SConscript
    trunk/blender/projectfiles_vc7/blender/blender.vcproj
    trunk/blender/source/blender/imbuf/intern/util.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/Ketsji/BL_Texture.h
    trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h
    trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
    trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.h

Modified: trunk/blender/extern/ffmpeg/Makefile
===================================================================
--- trunk/blender/extern/ffmpeg/Makefile	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/extern/ffmpeg/Makefile	2008-10-31 21:06:48 UTC (rev 17253)
@@ -35,7 +35,7 @@
 ALLDIRS = libavcodec libavformat libavutil libswscale
 
 config::
-	./configure --disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads 
+	./configure --disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads 
 all::
 	@for i in $(ALLDIRS); do \
 	    echo "====> $(MAKE) $@ in $(SOURCEDIR)/$$i" ;\

Modified: trunk/blender/extern/ffmpeg/SConscript
===================================================================
--- trunk/blender/extern/ffmpeg/SConscript	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/extern/ffmpeg/SConscript	2008-10-31 21:06:48 UTC (rev 17253)
@@ -7,9 +7,9 @@
 root = "extern/ffmpeg"
 
 if env['OURPLATFORM'] == 'win32-mingw':
-    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads --enable-libx264 --enable-libxvid --enable-libmp3lame"
+    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads --enable-libx264 --enable-libxvid --enable-libmp3lame"
 else:
-    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-network --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-memalign-hack --enable-libx264 --enable-libxvid --enable-libmp3lame"
+    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-memalign-hack --enable-libx264 --enable-libxvid --enable-libmp3lame"
 
 if env['WITH_BF_OGG']:
     ffmpeg_switches += " --enable-libogg --enable-libtheora --enable-libvorbis"

Modified: trunk/blender/projectfiles_vc7/blender/blender.vcproj
===================================================================
--- trunk/blender/projectfiles_vc7/blender/blender.vcproj	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/projectfiles_vc7/blender/blender.vcproj	2008-10-31 21:06:48 UTC (rev 17253)
@@ -124,7 +124,7 @@
 				Name="VCLinkerTool"
 				AdditionalOptions="/MACHINE:I386
 "
-				AdditionalDependencies="SDL.lib freetype2ST.lib ftgl_static.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.lib libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.lib libbsp.lib libbmfont.lib libghost.lib libstring.lib ws2_32.lib dxguid.lib opengl32.lib libjpeg.lib glu32.lib vfw32.lib winmm.lib libdecimation.lib libiksolver.lib libpng_st.lib zlib.lib libmoto.lib solid.lib qhull.lib libopennl.lib Bullet.lib python25_d.lib libelbeem.lib libboolop.lib pthreadVSE2.lib pthreadVC2.lib libtiff.lib broad.lib complex.lib convex.lib memutil.lib verse.lib Half.lib Iex.lib Imath.lib IlmImf.lib IlmThread.lib avcodec-51.lib avformat-52.lib avutil-49.lib swscale-0.lib glew.lib"
+				AdditionalDependencies="SDL.lib freetype2ST.lib ftgl_static.lib gnu_gettext.lib qtmlClient.lib openal_static.lib libsoundsystem.lib libopenalsoundsystem.lib libdummysoundsystem.lib libguardedalloc.lib libbsp.lib libbmfont.lib libghost.lib libstring.lib ws2_32.lib dxguid.lib opengl32.lib libjpeg.lib glu32.lib vfw32.lib winmm.lib libdecimation.lib libiksolver.lib libpng_st.lib zlib.lib libmoto.lib solid.lib qhull.lib libopennl.lib Bullet.lib python25_d.lib libelbeem.lib libboolop.lib pthreadVSE2.lib pthreadVC2.lib libtiff.lib broad.lib complex.lib convex.lib memutil.lib verse.lib Half.lib Iex.lib Imath.lib IlmImf.lib IlmThread.lib avcodec-51.lib avformat-52.lib avdevice-52.lib avutil-49.lib swscale-0.lib glew.lib"
 				ShowProgress="0"
 				OutputFile="..\..\bin\debug\blender.exe"
 				LinkIncremental="2"

Modified: trunk/blender/source/blender/imbuf/intern/util.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/util.c	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/blender/imbuf/intern/util.c	2008-10-31 21:06:48 UTC (rev 17253)
@@ -64,6 +64,7 @@
 #ifdef WITH_FFMPEG
 #include <ffmpeg/avcodec.h>
 #include <ffmpeg/avformat.h>
+#include <ffmpeg/avdevice.h>
 
 #if LIBAVFORMAT_VERSION_INT < (49 << 16)
 #define FFMPEG_OLD_FRAME_RATE 1
@@ -236,6 +237,7 @@
 	if (!ffmpeg_init) {
 		ffmpeg_init = 1;
 		av_register_all();
+		avdevice_register_all();
 	}
 }
 

Modified: trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2008-10-31 21:06:48 UTC (rev 17253)
@@ -364,6 +364,7 @@
 			initGameKeys();
 			initPythonConstraintBinding();
 			initMathutils();
+			//initVideoTexture();
 
 			if (sceneconverter)
 			{

Modified: trunk/blender/source/gameengine/Ketsji/BL_Texture.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/BL_Texture.h	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/BL_Texture.h	2008-10-31 21:06:48 UTC (rev 17253)
@@ -59,6 +59,14 @@
 	void SetMapping(int mode);
 	void DisableUnit();
 	void setTexEnv(BL_Material *mat, bool modulate=false);
+	unsigned int swapTexture (unsigned int newTex) {
+		// swap texture codes
+		unsigned int tmp = mTexture;
+		mTexture = newTex;
+		// return original texture code
+		return tmp;
+	}
+
 };
 
 #endif//__BL_TEXTURE_H__

Modified: trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h	2008-10-31 21:06:48 UTC (rev 17253)
@@ -67,6 +67,9 @@
 
 	MTFace* GetMTFace(void) const;
 	unsigned int* GetMCol(void) const;
+	BL_Texture * getTex (unsigned int idx) { 
+		return (idx < MAXTEX) ? mTextures + idx : NULL; 
+	}
 
 	// for ipos
 	void UpdateIPO(

Modified: trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/KX_Camera.cpp	2008-10-31 21:06:48 UTC (rev 17253)
@@ -793,7 +793,7 @@
 {
 	class KX_Scene* scene;
 	
-	scene = PHY_GetActiveScene();
+	scene = KX_GetActiveScene();
 	MT_assert(scene);
 	scene->SetCameraOnTop(this);
 	Py_Return;

Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2008-10-31 21:06:48 UTC (rev 17253)
@@ -1027,7 +1027,7 @@
 
 PyObject* KX_GameObject::PyReplaceMesh(PyObject* self, PyObject* value)
 {
-	KX_Scene *scene = PHY_GetActiveScene();
+	KX_Scene *scene = KX_GetActiveScene();
 	char* meshname;
 	void* mesh_pt;
 
@@ -1050,7 +1050,7 @@
 PyObject* KX_GameObject::PyEndObject(PyObject* self)
 {
 
-	KX_Scene *scene = PHY_GetActiveScene();
+	KX_Scene *scene = KX_GetActiveScene();
 	scene->DelayedRemoveObject(this);
 	
 	Py_RETURN_NONE;
@@ -1447,7 +1447,7 @@
 	// The object we want to set as parent
 	CValue *m_ob = (CValue*)value;
 	KX_GameObject *obj = ((KX_GameObject*)m_ob);
-	KX_Scene *scene = PHY_GetActiveScene();
+	KX_Scene *scene = KX_GetActiveScene();
 	
 	this->SetParent(scene, obj);
 		
@@ -1456,7 +1456,7 @@
 
 PyObject* KX_GameObject::PyRemoveParent(PyObject* self)
 {
-	KX_Scene *scene = PHY_GetActiveScene();
+	KX_Scene *scene = KX_GetActiveScene();
 	this->RemoveParent(scene);
 	Py_RETURN_NONE;
 }

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp	2008-10-31 21:06:48 UTC (rev 17253)
@@ -470,7 +470,7 @@
 				m_logger->StartLog(tc_physics, m_kxsystem->GetTimeInSeconds(), true);
 				// set Python hooks for each scene
 				PHY_SetActiveEnvironment(scene->GetPhysicsEnvironment());
-				PHY_SetActiveScene(scene);
+				KX_SetActiveScene(scene);
 	
 				scene->GetPhysicsEnvironment()->endFrame();
 				
@@ -568,7 +568,7 @@
 				
 				// set Python hooks for each scene
 				PHY_SetActiveEnvironment(scene->GetPhysicsEnvironment());
-				PHY_SetActiveScene(scene);
+				KX_SetActiveScene(scene);
 				
 				m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true);
 				scene->UpdateParents(m_clockTime);
@@ -1540,6 +1540,11 @@
 	return m_anim_framerate;
 }
 
+double KX_KetsjiEngine::GetClockTime(void) const
+{
+	return m_clockTime;
+}
+
 void KX_KetsjiEngine::SetAnimFrameRate(double framerate)
 {
 	m_anim_framerate = framerate;

Modified: trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2008-10-31 20:50:07 UTC (rev 17252)
+++ trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h	2008-10-31 21:06:48 UTC (rev 17253)
@@ -254,6 +254,11 @@
 	bool GetUseFixedTime(void) const;
 
 	/**
+	 * Returns current render frame clock time
+	 */
+	double GetClockTime(void) const;
+
+	/**
 	 * Returns the difference between the local time of the scene (when it
 	 * was running and not suspended) and the "curtime"
 	 */

Modified: trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp	2008-10-31 20:50:07 UTC (rev 17252)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list