this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Made some changes specific to Emscripten support. Added a test program for Emscripten.

+179 -34
+31 -30
CMakeLists.txt
··· 2 2 3 3 project(SDL_gpu) 4 4 5 - if(UNIX) 6 - set(SDL_gpu_INSTALL_BY_DEFAULT ON) 7 - elseif(WIN32) 8 - set(SDL_gpu_INSTALL_BY_DEFAULT ON) 9 - else(UNIX) 10 - set(SDL_gpu_INSTALL_BY_DEFAULT OFF) 11 - endif(UNIX) 5 + 6 + 7 + set(SDL_gpu_INSTALL_BY_DEFAULT ON) 8 + set(SDL_gpu_DEFAULT_BUILD_SHARED ON) 9 + set(SDL_gpu_DEFAULT_BUILD_STATIC ON) 10 + set(SDL_gpu_DEFAULT_BUILD_DEMOS ON) 11 + set(SDL_gpu_DEFAULT_DISABLE_OPENGL OFF) 12 + set(SDL_gpu_DEFAULT_DISABLE_GLES ON) 12 13 13 14 if(IOS) 14 15 message(" Using iOS defaults.") ··· 16 17 set(SDL_gpu_DEFAULT_BUILD_DEMOS OFF) 17 18 set(SDL_gpu_DEFAULT_DISABLE_OPENGL ON) 18 19 set(SDL_gpu_DEFAULT_DISABLE_GLES OFF) 20 + # iOS 8 may need the framework option 21 + set(SDL_gpu_DEFAULT_BUILD_SHARED OFF) 22 + set(SDL_gpu_DEFAULT_BUILD_STATIC ON) 23 + elseif(APPLE) 24 + set(SDL_gpu_DEFAULT_BUILD_SHARED ON) 25 + option(SDL_gpu_BUILD_FRAMEWORK "Build SDL_gpu as Apple framework" ON) 26 + set(SDL_gpu_DEFAULT_BUILD_STATIC ON) 19 27 elseif(ANDROID) 20 28 set(SDL_gpu_INSTALL_BY_DEFAULT OFF) 21 29 set(SDL_gpu_DEFAULT_BUILD_DEMOS OFF) 22 30 set(SDL_gpu_DEFAULT_DISABLE_OPENGL ON) 23 31 set(SDL_gpu_DEFAULT_DISABLE_GLES OFF) 32 + set(SDL_gpu_DEFAULT_BUILD_SHARED ON) 33 + set(SDL_gpu_DEFAULT_BUILD_STATIC OFF) 34 + elseif(WIN32) 35 + set(SDL_gpu_INSTALL_BY_DEFAULT OFF) 24 36 elseif(("${CMAKE_SYSTEM}" MATCHES "Linux") AND ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")) 25 37 26 38 # Assuming Raspberry Pi 2 for now. ··· 32 44 set(SDL_gpu_DEFAULT_BUILD_DEMOS OFF) 33 45 set(SDL_gpu_DEFAULT_DISABLE_OPENGL ON) 34 46 set(SDL_gpu_DEFAULT_DISABLE_GLES OFF) 35 - else() 36 - set(SDL_gpu_DEFAULT_BUILD_DEMOS ON) 37 - set(SDL_gpu_DEFAULT_DISABLE_OPENGL OFF) 38 - set(SDL_gpu_DEFAULT_DISABLE_GLES ON) 47 + elseif(EMSCRIPTEN) 48 + set(SDL_gpu_INSTALL_BY_DEFAULT OFF) 49 + set(SDL_gpu_DEFAULT_BUILD_DEMOS OFF) 50 + set(SDL_gpu_DEFAULT_DISABLE_OPENGL ON) 51 + set(SDL_gpu_DEFAULT_DISABLE_GLES OFF) 52 + set(SDL_gpu_DEFAULT_BUILD_SHARED OFF) 39 53 endif() 54 + 40 55 41 56 option(SDL_gpu_INSTALL "Install SDL_gpu libs, includes, and CMake scripts" ${SDL_gpu_INSTALL_BY_DEFAULT}) 42 57 #option(SDL_gpu_BUILD_DEBUG "Build with debugging symbols" ON) ··· 64 79 option(SDL_gpu_USE_BUFFER_MAPPING "Upload VBOs by mapping to client memory" OFF) 65 80 66 81 67 - if(APPLE) 68 - if(IOS) 69 - # iOS 8 may need the framework option 70 - option(SDL_gpu_BUILD_SHARED "Build SDL_gpu shared libraries" OFF) 71 - option(SDL_gpu_BUILD_STATIC "Build SDL_gpu static libraries" ON) 72 - else() 73 - option(SDL_gpu_BUILD_SHARED "Build SDL_gpu shared libraries" ON) 74 - option(SDL_gpu_BUILD_FRAMEWORK "Build SDL_gpu as Apple framework" ON) 75 - option(SDL_gpu_BUILD_STATIC "Build SDL_gpu static libraries" ON) 76 - endif() 77 - elseif(ANDROID) 78 - option(SDL_gpu_BUILD_SHARED "Build SDL_gpu shared libraries" ON) 79 - option(SDL_gpu_BUILD_STATIC "Build SDL_gpu static libraries" OFF) 80 - else() 81 - option(SDL_gpu_BUILD_SHARED "Build SDL_gpu shared libraries" ON) 82 - option(SDL_gpu_BUILD_STATIC "Build SDL_gpu static libraries" ON) 83 - endif() 82 + 83 + option(SDL_gpu_BUILD_SHARED "Build SDL_gpu shared libraries" ${SDL_gpu_DEFAULT_BUILD_SHARED}) 84 + option(SDL_gpu_BUILD_STATIC "Build SDL_gpu static libraries" ${SDL_gpu_DEFAULT_BUILD_STATIC}) 84 85 85 86 set(SDL_gpu_VERSION 0.11.0) 86 87 ··· 238 239 message(" Using bundled version of stb-image-write") 239 240 endif(NOT STBI_WRITE_FOUND) 240 241 241 - if(NOT WIN32) 242 + if(NOT WIN32 AND NOT EMSCRIPTEN) 242 243 find_library(M_LIB m) 243 244 link_libraries(${M_LIB}) 244 - endif (NOT WIN32) 245 + endif (NOT WIN32 AND NOT EMSCRIPTEN) 245 246 246 247 # Make local includes look in the right places 247 248 include_directories(include)
+3 -3
src/SDL_gpu_renderer.c
··· 326 326 GPU_RendererID default_order[GPU_RENDERER_ORDER_MAX]; 327 327 328 328 #ifndef SDL_GPU_DISABLE_GLES 329 - #ifndef SDL_GPU_DISABLE_GLES3 329 + #ifndef SDL_GPU_DISABLE_GLES_3 330 330 default_order[count++] = GPU_MakeRendererID("OpenGLES 3", GPU_RENDERER_GLES_3, 3, 0); 331 331 #endif 332 - #ifndef SDL_GPU_DISABLE_GLES2 332 + #ifndef SDL_GPU_DISABLE_GLES_2 333 333 default_order[count++] = GPU_MakeRendererID("OpenGLES 2", GPU_RENDERER_GLES_2, 2, 0); 334 334 #endif 335 - #ifndef SDL_GPU_DISABLE_GLES1 335 + #ifndef SDL_GPU_DISABLE_GLES_1 336 336 default_order[count++] = GPU_MakeRendererID("OpenGLES 1", GPU_RENDERER_GLES_1, 1, 1); 337 337 #endif 338 338 #endif
+1
src/externals/glew/glew.c
··· 40 40 41 41 #include <stddef.h> /* For size_t */ 42 42 #include <stdlib.h> 43 + #include <string.h> 43 44 44 45 /* 45 46 * Define glewGetContext and related helper macros.
+2 -1
src/renderer_GL_common.inl
··· 834 834 glEnable(GL_DEPTH_TEST); 835 835 else 836 836 glDisable(GL_DEPTH_TEST); 837 - glEnable(GL_ALPHA_TEST); 837 + 838 + //glEnable(GL_ALPHA_TEST); 838 839 } 839 840 840 841 static void changeDepthWrite(GPU_Renderer* renderer, GPU_bool enable)
+13
tests/CMakeLists.txt
··· 8 8 set(TEST_LIBS ${TEST_LIBS} mingw32) 9 9 endif(MINGW) 10 10 11 + if(EMSCRIPTEN) 12 + set(CMAKE_EXECUTABLE_SUFFIX ".html") 13 + set(EMCC_COMPILER_FLAGS "-O2 -s USE_WEBGL2=1 --preload-file ../../tests/data@/data --emrun") 14 + set(EMCC_LINKER_FLAGS ${EMCC_COMPILER_FLAGS}) 15 + add_definitions(${EMCC_COMPILER_FLAGS}) 16 + 17 + add_executable(sprite-emscripten-test sprite-emscripten/main.c) 18 + set_target_properties(sprite-emscripten-test PROPERTIES LINK_FLAGS "${EMCC_LINKER_FLAGS}") 19 + target_link_libraries (sprite-emscripten-test ${TEST_LIBS}) 20 + 21 + return() 22 + endif(EMSCRIPTEN) 23 + 11 24 SET(CMAKE_BUILD_TYPE Debug) 12 25 13 26 add_executable(create-test create/main.c)
+129
tests/sprite-emscripten/main.c
··· 1 + #include "SDL.h" 2 + #include "SDL_gpu.h" 3 + #include "common.h" 4 + #include <emscripten.h> 5 + 6 + GPU_Target* screen; 7 + Uint32 startTime; 8 + long frameCount; 9 + Uint8 done; 10 + SDL_Event event; 11 + 12 + 13 + float dt = 0.010f; 14 + 15 + #define MAX_SPRITES 50 16 + int numSprites = 1; 17 + 18 + float x[MAX_SPRITES]; 19 + float y[MAX_SPRITES]; 20 + float velx[MAX_SPRITES]; 21 + float vely[MAX_SPRITES]; 22 + int i; 23 + 24 + GPU_Image* image; 25 + 26 + void render(void) 27 + { 28 + while(SDL_PollEvent(&event)) 29 + { 30 + if(event.type == SDL_QUIT) 31 + done = 1; 32 + else if(event.type == SDL_KEYDOWN) 33 + { 34 + if(event.key.keysym.sym == SDLK_ESCAPE) 35 + done = 1; 36 + else if(event.key.keysym.sym == SDLK_EQUALS || event.key.keysym.sym == SDLK_PLUS) 37 + { 38 + if(numSprites < MAX_SPRITES) 39 + numSprites++; 40 + } 41 + else if(event.key.keysym.sym == SDLK_MINUS) 42 + { 43 + if(numSprites > 0) 44 + numSprites--; 45 + } 46 + } 47 + } 48 + 49 + for(i = 0; i < numSprites; i++) 50 + { 51 + x[i] += velx[i]*dt; 52 + y[i] += vely[i]*dt; 53 + if(x[i] < 0) 54 + { 55 + x[i] = 0; 56 + velx[i] = -velx[i]; 57 + } 58 + else if(x[i]> screen->w) 59 + { 60 + x[i] = screen->w; 61 + velx[i] = -velx[i]; 62 + } 63 + 64 + if(y[i] < 0) 65 + { 66 + y[i] = 0; 67 + vely[i] = -vely[i]; 68 + } 69 + else if(y[i]> screen->h) 70 + { 71 + y[i] = screen->h; 72 + vely[i] = -vely[i]; 73 + } 74 + } 75 + 76 + GPU_Clear(screen); 77 + 78 + for(i = 0; i < numSprites; i++) 79 + { 80 + GPU_Blit(image, NULL, screen, x[i], y[i]); 81 + } 82 + 83 + GPU_Flip(screen); 84 + 85 + frameCount++; 86 + if(frameCount%500 == 0) 87 + printf("Average FPS: %.2f\n", 1000.0f*frameCount/(SDL_GetTicks() - startTime)); 88 + } 89 + 90 + int main(int argc, char* argv[]) 91 + { 92 + screen = initialize_demo(argc, argv, 800, 600); 93 + if(screen == NULL) 94 + return 1; 95 + 96 + { 97 + image = GPU_LoadImage("data/test.bmp"); 98 + if(image == NULL) 99 + return 2; 100 + 101 + GPU_SetSnapMode(image, GPU_SNAP_NONE); 102 + 103 + for(i = 0; i < MAX_SPRITES; i++) 104 + { 105 + x[i] = rand()%screen->w; 106 + y[i] = rand()%screen->h; 107 + velx[i] = 10 + rand()%screen->w/10; 108 + vely[i] = 10 + rand()%screen->h/10; 109 + } 110 + 111 + 112 + startTime = SDL_GetTicks(); 113 + frameCount = 0; 114 + 115 + done = 0; 116 + 117 + emscripten_set_main_loop(render, -1, 1); 118 + 119 + printf("Average FPS: %.2f\n", 1000.0f*frameCount/(SDL_GetTicks() - startTime)); 120 + 121 + GPU_FreeImage(image); 122 + } 123 + 124 + GPU_Quit(); 125 + 126 + return 0; 127 + } 128 + 129 +