migrate osd_regression from GLUT to GLFW (this regression still needs work)

fixes #98
This commit is contained in:
manuelk 2013-01-31 18:19:56 -08:00
parent 7a39b0ad7c
commit 055ab17357
3 changed files with 42 additions and 95 deletions

View File

@ -59,7 +59,7 @@ add_subdirectory(hbr_regression)
add_subdirectory(far_regression)
if( OPENGL_FOUND AND GLEW_FOUND AND GLUT_FOUND)
if(OPENGL_FOUND AND GLEW_FOUND AND GLFW_FOUND)
add_subdirectory(osd_regression)
else()
set(MISSING "")
@ -72,7 +72,7 @@ else()
list(APPEND MISSING glew)
endif()
if (NOT GLUT_FOUND)
if (NOT GLFW_FOUND)
list(APPEND MISSING glut)
endif()
@ -80,7 +80,7 @@ else()
"The following libraries could not be found : ${MISSING}. "
"The osd regression test will not be available. "
"If you have these libraries installed, please specify their "
"path to cmake (through the GLEW_LOCATION and GLUT_LOCATION "
"path to cmake (through the GLEW_LOCATION and GLFW_LOCATION "
"command line arguments or environment variables)."
)
endif()

View File

@ -58,104 +58,24 @@
include_directories(
${PROJECT_SOURCE_DIR}/opensubdiv
${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR}
${GLFW_INCLUDE_DIR}
)
set(SOURCE_FILES
main.cpp
)
set(PLATFORM_LIBRARIES
${OSD_LINK_TARGET}
${OPENGL_LIBRARY}
${GLEW_LIBRARY}
${GLFW_LIBRARIES}
)
add_executable(osd_regression
${SOURCE_FILES}
)
#-------------------------------------------------------------------------------
if( PTEX_FOUND )
list(APPEND SOURCE_FILES
pTexture.cpp
)
list(APPEND PUBLIC_HEADER_FILES
pTexture.h
)
include_directories( ${PTEX_INCLUDE_DIR} )
list(APPEND PLATFORM_LIBRARIES
${PTEX_LIBRARY}
)
endif()
#-------------------------------------------------------------------------------
if( OPENMP_FOUND )
if (CMAKE_COMPILER_IS_GNUCXX)
list(APPEND PLATFORM_LIBRARIES
gomp
)
endif()
endif()
#-------------------------------------------------------------------------------
# GL code & dependencies
# note : (GLSL compute kernels require GL 4.2, which excludes APPLE)
if( OPENGL_FOUND AND GLEW_FOUND AND (NOT APPLE) )
list(APPEND SOURCE_FILES
glslDispatcher.cpp
)
list(APPEND PUBLIC_HEADER_FILES
glslDispatcher.h
)
list(APPEND KERNEL_FILES
glslKernel.glsl
)
list(APPEND PLATFORM_LIBRARIES
${OPENGL_LIBRARY}
${GLEW_LIBRARY}
)
else( OPENGL_FOUND AND APPLE )
list(APPEND PLATFORM_LIBRARIES
${OPENGL_LIBRARY}
)
endif()
#-------------------------------------------------------------------------------
# OpenCL code & dependencies
if ( OPENCL_FOUND )
list(APPEND SOURCE_FILES
clDispatcher.cpp
)
list(APPEND PUBLIC_HEADER_FILES
clDispatcher.h
)
list(APPEND KERNEL_FILES
clKernel.cl
)
list(APPEND PLATFORM_LIBRARIES
${OPENCL_LIBRARIES}
)
include_directories(${OPENCL_INCLUDE_DIRS})
endif()
#-------------------------------------------------------------------------------
# CUDA code & dependencies
if( CUDA_FOUND )
list(APPEND SOURCE_FILES
cudaDispatcher.cpp
)
list(APPEND PUBLIC_HEADER_FILES
cudaDispatcher.h
)
list(APPEND KERNEL_FILES
cudaKernel.cu
)
if (UNIX)
list( APPEND CUDA_NVCC_FLAGS -Xcompiler -fPIC )
endif()
endif()
target_link_libraries(osd_regression
${OSD_LINK_TARGET}
${OPENGL_LIBRARY}
${GLEW_LIBRARY}
${GLUT_LIBRARIES}
${PLATFORM_LIBRARIES}
)

View File

@ -60,7 +60,13 @@
#else
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glut.h>
#endif
#if defined(GLFW_VERSION_3)
#include <GL/glfw3.h>
GLFWwindow* g_window=0;
#else
#include <GL/glfw.h>
#endif
#include <stdio.h>
@ -346,10 +352,29 @@ int checkMesh( char const * msg, char const * shape, int levels, Scheme scheme=k
//------------------------------------------------------------------------------
int main(int argc, char ** argv) {
// Make sure we have an OpenGL context.
glutInit(&argc, argv);
glutCreateWindow("osd_regression");
// Make sure we have an OpenGL context : create dummy GLFW window
if (not glfwInit()) {
printf("Failed to initialize GLFW\n");
return 1;
}
static const char windowTitle[] = "OpenSubdiv glViewer";
int width=10, height=10;
#if GLFW_VERSION_MAJOR>=3
if (not (g_window=glfwCreateWindow(width, height, windowTitle, NULL, NULL))) {
#else
if (glfwOpenWindow(width, height, 8, 8, 8, 8, 24, 8,GLFW_WINDOW) == GL_FALSE) {
#endif
printf("Failed to open window.\n");
glfwTerminate();
return 1;
}
#if not defined(__APPLE__)
glewInit();
#endif
int levels=5, total=0;
@ -545,6 +570,8 @@ int main(int argc, char ** argv) {
total += checkMesh( "test_bilinear_cube", bilinear_cube, levels, kBilinear );
#endif
glfwTerminate();
if (total==0)
printf("All tests passed.\n");
else