[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38168] branches/soc-2011-pepper: Merging trunk up to r38167.

Joerg Mueller nexyon at gmail.com
Wed Jul 6 22:26:56 CEST 2011


Revision: 38168
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38168
Author:   nexyon
Date:     2011-07-06 20:26:56 +0000 (Wed, 06 Jul 2011)
Log Message:
-----------
Merging trunk up to r38167.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38167

Modified Paths:
--------------
    branches/soc-2011-pepper/doc/python_api/rst/bge.logic.rst
    branches/soc-2011-pepper/intern/ghost/intern/GHOST_SystemCocoa.mm
    branches/soc-2011-pepper/intern/ghost/intern/GHOST_SystemX11.cpp
    branches/soc-2011-pepper/intern/smoke/intern/WAVELET_NOISE.h
    branches/soc-2011-pepper/source/blender/avi/AVI_avi.h
    branches/soc-2011-pepper/source/blender/avi/CMakeLists.txt
    branches/soc-2011-pepper/source/blender/avi/SConscript
    branches/soc-2011-pepper/source/blender/avi/intern/avi.c
    branches/soc-2011-pepper/source/blender/avi/intern/options.c
    branches/soc-2011-pepper/source/blender/blenkernel/intern/anim.c
    branches/soc-2011-pepper/source/blender/blenkernel/intern/material.c
    branches/soc-2011-pepper/source/blender/blenlib/BLI_math_base.h
    branches/soc-2011-pepper/source/blender/blenlib/BLI_winstuff.h
    branches/soc-2011-pepper/source/blender/blenlib/intern/storage.c
    branches/soc-2011-pepper/source/blender/editors/object/object_relations.c
    branches/soc-2011-pepper/source/blender/editors/space_sequencer/sequencer_draw.c
    branches/soc-2011-pepper/source/blender/editors/space_sequencer/sequencer_edit.c
    branches/soc-2011-pepper/source/blender/imbuf/intern/util.c
    branches/soc-2011-pepper/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
    branches/soc-2011-pepper/source/blender/render/intern/source/rendercore.c
    branches/soc-2011-pepper/source/blender/render/intern/source/shadeinput.c
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_PythonInit.cpp

Added Paths:
-----------
    branches/soc-2011-pepper/doc/python_api/examples/bge.texture.1.py
    branches/soc-2011-pepper/doc/python_api/examples/bge.texture.py
    branches/soc-2011-pepper/doc/python_api/examples/blf.py
    branches/soc-2011-pepper/doc/python_api/rst/bge.texture.rst

Property Changed:
----------------
    branches/soc-2011-pepper/


Property changes on: branches/soc-2011-pepper
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender:36830-38119
   + /trunk/blender:36830-38167

Copied: branches/soc-2011-pepper/doc/python_api/examples/bge.texture.1.py (from rev 38166, trunk/blender/doc/python_api/examples/bge.texture.1.py)
===================================================================
--- branches/soc-2011-pepper/doc/python_api/examples/bge.texture.1.py	                        (rev 0)
+++ branches/soc-2011-pepper/doc/python_api/examples/bge.texture.1.py	2011-07-06 20:26:56 UTC (rev 38168)
@@ -0,0 +1,38 @@
+"""
+Texture replacement
+++++++++++++++++++++++
+Example of how to replace a texture in game with an external image.
+createTexture() and removeTexture() are to be called from a module Python
+Controller.
+"""
+import bge
+from bge import logic
+from bge import texture	
+
+def createTexture(cont):
+    """Create a new Dynamic Texture"""
+    object = cont.owner
+	
+    # get the reference pointer (ID) of the internal texture
+    ID = VT.materialID(obj, 'IMoriginal.png')
+	
+    # create a texture object 
+    object_texture = texture.Texture(object, ID)
+	
+    # create a new source with an external image
+    url = logic.expandPath("//newtexture.jpg")
+    new_source = texture.ImageFFmpeg(url)
+	
+    # the texture has to be stored in a permanent Python object
+    logic.texture = object_texture
+	
+    # update/replace the texture
+    logic.texture.source = new_source
+    logic.texture.refresh(False)
+
+def removeTexture(cont):
+    """Delete the Dynamic Texture, reversing back the final to its original state."""
+    try:
+        del logic.texture
+    except:
+        pass

Copied: branches/soc-2011-pepper/doc/python_api/examples/bge.texture.py (from rev 38166, trunk/blender/doc/python_api/examples/bge.texture.py)
===================================================================
--- branches/soc-2011-pepper/doc/python_api/examples/bge.texture.py	                        (rev 0)
+++ branches/soc-2011-pepper/doc/python_api/examples/bge.texture.py	2011-07-06 20:26:56 UTC (rev 38168)
@@ -0,0 +1,32 @@
+"""
+Basic Video Playback
+++++++++++++++++++++++
+Example of how to replace a texture in game with a video. It needs to run everyframe
+"""
+import bge
+from bge import texture
+from bge import logic
+
+cont = logic.getCurrentController()
+obj = cont.owner
+	
+# the creation of the texture must be done once: save the 
+# texture object in an attribute of bge.logic module makes it persistent
+if not hasattr(logic, 'video'):
+	
+    # identify a static texture by name
+    matID = texture.materialID(obj, 'IMvideo.png')
+		
+    # create a dynamic texture that will replace the static texture
+    logic.video = texture.Texture(obj, matID)
+
+    # define a source of image for the texture, here a movie
+    movie = logic.expandPath('//trailer_400p.ogg')
+    logic.video.source = texture.VideoFFmpeg(movie)
+    logic.video.source.scale = True
+		
+    # quick off the movie, but it wont play in the background
+    logic.video.source.play()
+
+# you need to call this function every frame to ensure update of the texture.
+logic.video.refresh(True)
\ No newline at end of file

Copied: branches/soc-2011-pepper/doc/python_api/examples/blf.py (from rev 38166, trunk/blender/doc/python_api/examples/blf.py)
===================================================================
--- branches/soc-2011-pepper/doc/python_api/examples/blf.py	                        (rev 0)
+++ branches/soc-2011-pepper/doc/python_api/examples/blf.py	2011-07-06 20:26:56 UTC (rev 38168)
@@ -0,0 +1,42 @@
+"""
+Hello World Text Example
+++++++++++++++++++++++++
+Blender Game Engine example of using the blf module. For this module to work we
+need to use the OpenGL wrapper :class:`~bgl` as well.
+"""
+# import game engine modules
+import bge
+from bge import render
+from bge import logic
+# import stand alone modules
+import bgl
+import blf
+
+def init():
+    """init function - runs once"""
+    # create a new font object, use external ttf file
+    font_path = logic.expandPath('//Zeyada.ttf')
+	# store the font indice - to use later
+    logic.font_id = blf.load(font_path)
+
+    # set the font drawing routine to run every frame   
+    scene = logic.getCurrentScene()
+    scene.post_draw=[write]
+
+def write():
+    """write on screen"""
+    width = render.getWindowWidth()
+    height = render.getWindowHeight()
+    
+    # OpenGL setup
+    bgl.glMatrixMode(bgl.GL_PROJECTION)
+    bgl.glLoadIdentity()
+    bgl.gluOrtho2D(0, width, 0, height)
+    bgl.glMatrixMode(bgl.GL_MODELVIEW)
+    bgl.glLoadIdentity()
+    
+    # BLF drawing routine
+    font_id = logic.font_id
+    blf.position(font_id, (width*0.2), (height*0.3), 0)
+    blf.size(font_id, 50, 72)
+    blf.draw(font_id, "Hello World")

Modified: branches/soc-2011-pepper/doc/python_api/rst/bge.logic.rst
===================================================================
--- branches/soc-2011-pepper/doc/python_api/rst/bge.logic.rst	2011-07-06 20:22:35 UTC (rev 38167)
+++ branches/soc-2011-pepper/doc/python_api/rst/bge.logic.rst	2011-07-06 20:26:56 UTC (rev 38168)
@@ -17,7 +17,7 @@
    # To get the game object this controller is on:
    obj = cont.owner
 
-:class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`bge.types.~KX_LightObject` methods are available depending on the type of object
+:class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`~bge.types.KX_LightObject` methods are available depending on the type of object
 
 .. code-block:: python
 

Copied: branches/soc-2011-pepper/doc/python_api/rst/bge.texture.rst (from rev 38166, trunk/blender/doc/python_api/rst/bge.texture.rst)
===================================================================
--- branches/soc-2011-pepper/doc/python_api/rst/bge.texture.rst	                        (rev 0)
+++ branches/soc-2011-pepper/doc/python_api/rst/bge.texture.rst	2011-07-06 20:26:56 UTC (rev 38168)
@@ -0,0 +1,451 @@
+
+Game Engine bge.texture Module
+==============================
+
+.. note::
+	This documentation is still very weak, and needs some help! Right now they are mostly a collection
+	of the docstrings found in the bge.texture source code + some random places filled with text.
+
+*****
+Intro
+*****
+
+The bge.texture module allows you to manipulate textures during the game.
+
+Several sources for texture are possible: video files, image files, video capture, memory buffer, camera render or a mix of that.
+
+The video and image files can be loaded from the internet using an URL instead of a file name.
+
+In addition, you can apply filters on the images before sending them to the GPU, allowing video effect: blue screen, color band, gray, normal map.
+
+bge.texture uses FFmpeg to load images and videos. All the formats and codecs that FFmpeg supports are supported by this module, including but not limited to::
+
+	* AVI
+	* Ogg
+	* Xvid
+	* Theora
+	* dv1394 camera
+	* video4linux capture card (this includes many webcams)
+	* videoForWindows capture card (this includes many webcams)
+	* JPG 
+
+The principle is simple: first you identify a texture on an existing object using 
+the :materialID: function, then you create a new texture with dynamic content
+and swap the two textures in the GPU.
+
+The GE is not aware of the substitution and continues to display the object as always, 
+except that you are now in control of the texture.
+
+When the texture object is deleted, the new texture is deleted and the old texture restored.
+
+.. module:: bge.texture
+
+.. class:: VideoFFmpeg(file [, capture=-1, rate=25.0, width=0, height=0])
+
+	FFmpeg video source
+   
+	.. attribute:: status
+		video status
+		
+	.. attribute::  range
+		replay range
+		
+	.. attribute:: repeat
+		repeat count, -1 for infinite repeat
+		
+		:type: int
+	
+	.. attribute:: framerate
+		frame rate
+		
+		:type: float
+		
+	.. attribute:: valid
+		Tells if an image is available
+		
+		:type: bool
+		
+	.. attribute:: image
+		image data
+		
+	.. attribute:: size
+		image size
+		
+	.. attribute:: scale
+		fast scale of image (near neighbour)
+		
+	.. attribute:: flip
+		flip image vertically
+		
+	.. attribute:: filter
+		pixel filter
+		
+	.. attribute:: preseek
+		number of frames of preseek
+		
+		:type: int
+		
+	.. attribute:: deinterlace
+		deinterlace image
+		
+		:type: bool
+   
+	.. method:: play()
+		Play (restart) video
+		
+	.. method:: pause()
+		pause video
+		
+	.. method:: stop()
+		stop video (play will replay it from start)
+		
+	.. method:: refresh()
+		Refresh video - get its status
+
+.. class:: ImageFFmpeg(file)
+
+	FFmpeg image source
+	
+	.. attribute:: status
+		video status
+	
+	.. attribute:: valid
+		Tells if an image is available
+		
+		:type: bool
+		
+	.. attribute:: image
+		image data
+		
+	.. attribute:: size
+		image size
+		
+	.. attribute:: scale
+		fast scale of image (near neighbour)
+		
+	.. attribute:: flip
+		flip image vertically
+		
+	.. attribute:: filter
+		pixel filter
+		
+	.. method:: refresh()
+		Refresh image, i.e. load it
+		
+	.. method:: reload([newname])
+		Reload image, i.e. reopen it
+		
+.. class:: ImageBuff()
+	
+	Image source from image buffer
+	
+	.. attribute:: filter
+		pixel filter
+	
+	.. attribute:: flip
+		flip image vertically
+	
+	.. attribute:: image
+		image data
+	
+	.. method:: load(imageBuffer, width, height)
+		Load image from buffer
+	
+	.. method:: plot(imageBuffer, width, height, positionX, positionY)
+		update image buffer
+	
+	.. attribute:: scale
+		fast scale of image (near neighbour)
+	
+	.. attribute:: size
+		image size
+	
+	.. attribute:: valid
+		bool to tell if an image is available
+
+.. class:: ImageMirror(scene)
+	
+	Image source from mirror
+	
+	.. attribute:: alpha
+		use alpha in texture
+	
+	.. attribute:: background
+		background color
+	
+	.. attribute:: capsize
+		size of render area
+	
+	.. attribute:: clip
+		clipping distance
+	
+	.. attribute:: filter
+		pixel filter
+	
+	.. attribute:: flip
+		flip image vertically
+	
+	.. attribute:: image
+		image data
+	
+	.. method:: refresh(imageMirror)
+		Refresh image - invalidate its current content
+	
+	.. attribute:: scale
+		fast scale of image (near neighbour)
+	
+	.. attribute:: size
+		image size
+	
+	.. attribute:: valid
+		bool to tell if an image is available
+	
+	.. attribute:: whole
+		use whole viewport to render
+
+.. class:: ImageMix()
+	
+	Image mixer
+	
+	.. attribute:: filter
+		pixel filter
+	
+	.. attribute:: flip

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list