[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47842] branches/soc-2012-swiss_cheese: Update support for Android

Alexander Kuznetsov kuzsasha at gmail.com
Wed Jun 13 18:21:43 CEST 2012


Revision: 47842
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47842
Author:   alexk
Date:     2012-06-13 16:21:43 +0000 (Wed, 13 Jun 2012)
Log Message:
-----------
Update support for Android
Fake GL switches:
#include REAL_GL_MODE
#include FAKE_GL_MODE
In not GLES mode, they are defined as "***/empty.h"

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/CMakeLists.txt
    branches/soc-2012-swiss_cheese/build_files/scons/tools/Blender.py
    branches/soc-2012-swiss_cheese/extern/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blenderplayer/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/creator/CMakeLists.txt

Added Paths:
-----------
    branches/soc-2012-swiss_cheese/source/blender/empty.h
    branches/soc-2012-swiss_cheese/source/blenderplayer/androidfix.c

Modified: branches/soc-2012-swiss_cheese/CMakeLists.txt
===================================================================
--- branches/soc-2012-swiss_cheese/CMakeLists.txt	2012-06-13 16:15:42 UTC (rev 47841)
+++ branches/soc-2012-swiss_cheese/CMakeLists.txt	2012-06-13 16:21:43 UTC (rev 47842)
@@ -266,7 +266,10 @@
 option(WITH_ANDROID "Compiles Blender for Android" OFF)
 mark_as_advanced(WITH_ANDROID)
 
+option(WITH_GLES "Compiles Blender with OpenGL ES 2.0" OFF)
+mark_as_advanced(WITH_GLES)
 
+
 if(APPLE)
 	if(NOT CMAKE_OSX_ARCHITECTURES)
 		set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
@@ -467,13 +470,26 @@
 if(WITH_ANDROID)
 add_definitions(-DWITH_ANDROID)
 add_definitions(-DNDEBUG)
+set(WITH_GLES ON )
+set(ANDROID_TARGET "armv7-a_9"  CACHE STRING "Processor Target")
 
+endif()
 
-set(ANDROID_TARGET "armv7-a_9"  CACHE STRING "Processor Target")
+if(WITH_GLES)
+message(setting)
+add_definitions(-DGLES)
+add_definitions(-DREAL_GL_MODE=<GL/realgl.h>)
+add_definitions(-DFAKE_GL_MODE=<GL/fakegl.h>)
 
+else()
+add_definitions(-DREAL_GL_MODE=<${CMAKE_SOURCE_DIR}/source/blender/empty.h>)
+add_definitions(-DFAKE_GL_MODE=<${CMAKE_SOURCE_DIR}/source/blender/empty.h>)
+
 endif()
 
 
+
+
 if(UNIX AND NOT APPLE)
 
 	# needed for ubuntu 11.04
@@ -736,7 +752,11 @@
 
 	# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
 	set(PLATFORM_LINKLIBS "-lc -lm -lstdc++")
-	if(NOT WITH_ANDROID)
+	if(WITH_ANDROID)
+		set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS}  -lGLESv2")
+	elseif(WITH_GLES)
+		set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS}  -lGLESv2 -lEGL")
+	else()
 		set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lutil -lpthread")
 	endif()
 
@@ -1592,6 +1612,10 @@
 set(OPENGL_INCLUDE_DIR ${LIBDIR}/fakeGL/)
 set(OPENGL_gl_LIBRARY ${OPENGL_INCLUDE_DIR}/libGLarm.so)
 set(OPENGL_glu_LIBRARY ${OPENGL_INCLUDE_DIR}/libGLUarm.so)
+elseif(WITH_GLES)
+set(OPENGL_INCLUDE_DIR "" CACHE PATH "")
+set(OPENGL_gl_LIBRARY "" CACHE FILEPATH "")
+set(OPENGL_glu_LIBRARY "" CACHE FILEPATH "")
 else()
 find_package(OpenGL)
 endif()
@@ -1625,7 +1649,7 @@
 
 if(WITH_BUILTIN_GLEW)
 	# set(GLEW_LIBRARY "")  # unused
-	if(WITH_ANDROID)
+	if(WITH_GLES)
 		set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew-android/include")
 	else()
 		set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include")

Modified: branches/soc-2012-swiss_cheese/build_files/scons/tools/Blender.py
===================================================================
--- branches/soc-2012-swiss_cheese/build_files/scons/tools/Blender.py	2012-06-13 16:15:42 UTC (rev 47841)
+++ branches/soc-2012-swiss_cheese/build_files/scons/tools/Blender.py	2012-06-13 16:21:43 UTC (rev 47842)
@@ -765,7 +765,10 @@
                 print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname + bc.ENDC
             lenv = self.Clone()
             lenv.Append(CPPPATH=includes)
+            lenv.Append(CPPDEFINES={'REAL_GL_MODE':'\\"'+os.getcwd()+'/source/blender/empty.h\\"'})
+            lenv.Append(CPPDEFINES={'FAKE_GL_MODE':'\\"'+os.getcwd()+'/source/blender/empty.h\\"'})
             lenv.Append(CPPDEFINES=defines)
+            
             if lenv['BF_DEBUG'] or (libname in quickdebug):
                 lenv.Append(CFLAGS = lenv['BF_DEBUG_CFLAGS'])
                 lenv.Append(CCFLAGS = lenv['BF_DEBUG_CCFLAGS'])

Modified: branches/soc-2012-swiss_cheese/extern/CMakeLists.txt
===================================================================
--- branches/soc-2012-swiss_cheese/extern/CMakeLists.txt	2012-06-13 16:15:42 UTC (rev 47841)
+++ branches/soc-2012-swiss_cheese/extern/CMakeLists.txt	2012-06-13 16:21:43 UTC (rev 47842)
@@ -41,7 +41,7 @@
 endif()
 
 if(WITH_BUILTIN_GLEW)
-if(WITH_ANDROID)
+if(WITH_GLES)
 	add_subdirectory(glew-android)
 else()
 	add_subdirectory(glew)

Added: branches/soc-2012-swiss_cheese/source/blender/empty.h
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/empty.h	                        (rev 0)
+++ branches/soc-2012-swiss_cheese/source/blender/empty.h	2012-06-13 16:21:43 UTC (rev 47842)
@@ -0,0 +1 @@
+ 

Modified: branches/soc-2012-swiss_cheese/source/blenderplayer/CMakeLists.txt
===================================================================
--- branches/soc-2012-swiss_cheese/source/blenderplayer/CMakeLists.txt	2012-06-13 16:15:42 UTC (rev 47841)
+++ branches/soc-2012-swiss_cheese/source/blenderplayer/CMakeLists.txt	2012-06-13 16:21:43 UTC (rev 47842)
@@ -37,7 +37,7 @@
 	OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dna.c
 	WORKING_DIRECTORY ${ANDROID_PROJ}
 	COMMAND ${ANDROID_PROJ}/makesdna.sh ${CMAKE_BINARY_DIR}/lib/libmakesdna.so ${CMAKE_CURRENT_BINARY_DIR}/dna.c  ${CMAKE_SOURCE_DIR}/source/blender/makesdna/
-	DEPENDS makesdna
+	DEPENDS ${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/libmakesdna.so
 )
 else()
 add_custom_command(
@@ -85,6 +85,10 @@
 		MACOSX_BUNDLE_SHORT_VERSION_STRING ${BLENDER_VERSION}
 		MACOSX_BUNDLE_LONG_VERSION_STRING "${BLENDER_VERSION} ${BLENDER_DATE}")
 
+elseif(WITH_ANDROID)
+message(${CMAKE_CURRENT_BINARY_DIR})
+message(${CMAKE_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/libmakesdna.so)
+	add_library(blenderplayer SHARED ${CMAKE_CURRENT_BINARY_DIR}/dna.c ./androidfix.c)
 else()
 	add_executable(blenderplayer ${CMAKE_CURRENT_BINARY_DIR}/dna.c)
 endif()
@@ -134,7 +138,7 @@
 		bf_modifiers
 		bf_intern_moto 
 		bf_nodes
-
+		
 		bf_imbuf
 		bf_avi 
 		ge_logic_network 

Added: branches/soc-2012-swiss_cheese/source/blenderplayer/androidfix.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blenderplayer/androidfix.c	                        (rev 0)
+++ branches/soc-2012-swiss_cheese/source/blenderplayer/androidfix.c	2012-06-13 16:21:43 UTC (rev 47842)
@@ -0,0 +1,7 @@
+int main(int argc, char **argv);
+
+void foo(void)
+{
+  
+ main(0,0); 
+} 

Modified: branches/soc-2012-swiss_cheese/source/creator/CMakeLists.txt
===================================================================
--- branches/soc-2012-swiss_cheese/source/creator/CMakeLists.txt	2012-06-13 16:15:42 UTC (rev 47841)
+++ branches/soc-2012-swiss_cheese/source/creator/CMakeLists.txt	2012-06-13 16:21:43 UTC (rev 47842)
@@ -205,10 +205,8 @@
 
 elseif(WITH_ANDROID)
 	add_library(blender SHARED ${SRC})
-message("lib")
 else()
 	add_executable(blender ${EXETYPE} ${SRC})
-message("exe")
 endif()
 
 if(WITH_BUILDINFO)




More information about the Bf-blender-cvs mailing list