Skip to content

Commit

Permalink
Added bestprofile program.
Browse files Browse the repository at this point in the history
--HG--
branch : trunk
  • Loading branch information
icculus committed Jun 29, 2008
1 parent 1573d42 commit 8e3ae31
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions .hgignore
Expand Up @@ -5,6 +5,7 @@ Makefile
cmake_install.cmake
testparse
testoutput
bestprofile
finderrors
glcaps
*.exe
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Expand Up @@ -19,6 +19,8 @@ IF(SDL_FOUND)
ADD_DEFINITIONS(-DFINDERRORS_COMPILE_SHADERS=1)
ADD_EXECUTABLE(glcaps glcaps.c)
TARGET_LINK_LIBRARIES(glcaps ${SDL_LIBRARY})
ADD_EXECUTABLE(bestprofile bestprofile.c mojoshader.c mojoshader_opengl.c)
TARGET_LINK_LIBRARIES(bestprofile ${SDL_LIBRARY})
ENDIF(SDL_FOUND)

ADD_EXECUTABLE(testparse testparse.c mojoshader.c)
Expand Down
53 changes: 53 additions & 0 deletions bestprofile.c
@@ -0,0 +1,53 @@
/**
* MojoShader; generate shader programs from bytecode of compiled
* Direct3D shaders.
*
* Please see the file LICENSE.txt in the source's root directory.
*
* This file written by Ryan C. Gordon.
*/

#include <stdio.h>
#include "mojoshader.h"
#include "SDL.h"

int main(int argc, char **argv)
{
int retval = 1;

#if 0
printf("MojoShader bestprofile\n");
printf("Compiled against version %d\n", MOJOSHADER_VERSION);
printf("Linked against version %d\n", MOJOSHADER_version());
printf("\n");
#endif

if (SDL_Init(SDL_INIT_VIDEO) == -1)
fprintf(stderr, "SDL_Init(SDL_INIT_VIDEO) error: %s\n", SDL_GetError());
else
{
SDL_GL_LoadLibrary(NULL);
if (SDL_SetVideoMode(640, 480, 0, SDL_OPENGL) == NULL)
fprintf(stderr, "SDL_SetVideoMode() error: %s\n", SDL_GetError());
else
{
const char *best = MOJOSHADER_glBestProfile(SDL_GL_GetProcAddress);
MOJOSHADER_glContext *ctx;
ctx = MOJOSHADER_glCreateContext(best, SDL_GL_GetProcAddress, 0, 0, 0);
if (ctx == NULL)
printf("MOJOSHADER_glCreateContext() fail: %s\n", MOJOSHADER_glGetError());
else
{
printf("%s\n", best);
retval = 0; // success.
MOJOSHADER_glDestroyContext(ctx);
} // else
} // else
SDL_Quit();
} // else

return retval;
} // main

// end of bestprofile.c ...

0 comments on commit 8e3ae31

Please sign in to comment.