Skip to content

Commit

Permalink
replace all the openGL by openCV and fix some error
Browse files Browse the repository at this point in the history
  • Loading branch information
yanqswhu committed Nov 30, 2017
1 parent 00b906f commit 897febf
Show file tree
Hide file tree
Showing 34 changed files with 349 additions and 8,626 deletions.
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"files.associations": {
"xiosbase": "cpp",
"xlocale": "cpp"
}
}
21 changes: 7 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,14 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
#outpath
SET(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")

#Find GLUT
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIRS})
link_directories(${GLUT_LIBRARY_DIRS})
if(NOT GLUT_FOUND)
message(ERROR " GLUT not found!")
endif(NOT GLUT_FOUND)
#Find OpenCV
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBRARY_DIRS})
if(NOT OpenCV_FOUND)
message(ERROR " OpenCV not found!")
endif(NOT OpenCV_FOUND)

#Find OpenGL
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIRS})
link_directories(${OpenGL_LIBRARY_DIRS})
if(NOT OPENGL_FOUND)
message(ERROR " OPENGL not found!")
endif(NOT OPENGL_FOUND)

#CUDA
find_package(CUDA)
Expand Down
Binary file removed bin/glut32.dll
Binary file not shown.
Binary file removed bin/glut64.dll
Binary file not shown.
4 changes: 2 additions & 2 deletions chapter04/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ SET_PROPERTY(TARGET add_loop_long PROPERTY FOLDER chapter04)

CUDA_ADD_EXECUTABLE(julia_cpu julia_cpu.cu)
SET_PROPERTY(TARGET julia_cpu PROPERTY FOLDER chapter04)
TARGET_LINK_LIBRARIES(julia_cpu ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(julia_cpu ${OpenCV_LIBS})

CUDA_ADD_EXECUTABLE(julia_gpu julia_gpu.cu)
SET_PROPERTY(TARGET julia_gpu PROPERTY FOLDER chapter04)
TARGET_LINK_LIBRARIES(julia_gpu ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(julia_gpu ${OpenCV_LIBS})
6 changes: 3 additions & 3 deletions chapter04/julia_cpu.cu
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@


#include "../common/book.h"
#include "../common/cpu_bitmap.h"
#include "../common/image.h"

#define DIM 1000

Expand Down Expand Up @@ -65,11 +65,11 @@ void kernel( unsigned char *ptr ){
}

int main( void ) {
CPUBitmap bitmap( DIM, DIM );
IMAGE bitmap( DIM, DIM );
unsigned char *ptr = bitmap.get_ptr();

kernel( ptr );

bitmap.display_and_exit();
bitmap.show_image();
}

6 changes: 3 additions & 3 deletions chapter04/julia_gpu.cu
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@


#include "../common/book.h"
#include "../common/cpu_bitmap.h"
#include "../common/image.h"

#define DIM 1000

Expand Down Expand Up @@ -73,7 +73,7 @@ struct DataBlock {

int main( void ) {
DataBlock data;
CPUBitmap bitmap( DIM, DIM, &data );
IMAGE bitmap( DIM, DIM );
unsigned char *dev_bitmap;

HANDLE_ERROR( cudaMalloc( (void**)&dev_bitmap, bitmap.image_size() ) );
Expand All @@ -88,6 +88,6 @@ int main( void ) {

HANDLE_ERROR( cudaFree( dev_bitmap ) );

bitmap.display_and_exit();
bitmap.show_image();
}

4 changes: 2 additions & 2 deletions chapter05/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ SET_PROPERTY(TARGET dot_5 PROPERTY FOLDER chapter05)

CUDA_ADD_EXECUTABLE(ripple_5 ripple.cu)
SET_PROPERTY(TARGET ripple_5 PROPERTY FOLDER chapter05)
TARGET_LINK_LIBRARIES(ripple_5 ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(ripple_5 ${OpenCV_LIBS})

CUDA_ADD_EXECUTABLE(shared_bitmap shared_bitmap.cu)
SET_PROPERTY(TARGET shared_bitmap PROPERTY FOLDER chapter05)
TARGET_LINK_LIBRARIES(shared_bitmap ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(shared_bitmap ${OpenCV_LIBS})
43 changes: 28 additions & 15 deletions chapter05/ripple.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include "cuda.h"
#include "../common/book.h"
#include "../common/cpu_anim.h"
#include "../common/image.h"

#define DIM 1024
#define PI 3.1415926535897932f
Expand All @@ -42,19 +42,9 @@ __global__ void kernel( unsigned char *ptr, int ticks ) {

struct DataBlock {
unsigned char *dev_bitmap;
CPUAnimBitmap *bitmap;
IMAGE *bitmap;
};

void generate_frame( DataBlock *d, int ticks ) {
dim3 blocks(DIM/16,DIM/16);
dim3 threads(16,16);
kernel<<<blocks,threads>>>( d->dev_bitmap, ticks );

HANDLE_ERROR( cudaMemcpy( d->bitmap->get_ptr(),
d->dev_bitmap,
d->bitmap->image_size(),
cudaMemcpyDeviceToHost ) );
}

// clean up memory allocated on the GPU
void cleanup( DataBlock *d ) {
Expand All @@ -63,12 +53,35 @@ void cleanup( DataBlock *d ) {

int main( void ) {
DataBlock data;
CPUAnimBitmap bitmap( DIM, DIM, &data );
IMAGE bitmap( DIM, DIM );
data.bitmap = &bitmap;

HANDLE_ERROR( cudaMalloc( (void**)&data.dev_bitmap,
bitmap.image_size() ) );

bitmap.anim_and_exit( (void (*)(void*,int))generate_frame,
(void (*)(void*))cleanup );
dim3 blocks(DIM/16,DIM/16);
dim3 threads(16,16);

int ticks = 0;
bitmap.show_image(30);
while(1)
{
kernel<<<blocks,threads>>>( data.dev_bitmap, ticks );

HANDLE_ERROR( cudaMemcpy( data.bitmap->get_ptr(),
data.dev_bitmap,
data.bitmap->image_size(),
cudaMemcpyDeviceToHost ) );

ticks++;
char key = bitmap.show_image(30);
if(key==27)
{
break;
}
}

cleanup(&data);

return 0;
}
6 changes: 3 additions & 3 deletions chapter05/shared_bitmap.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include "cuda.h"
#include "../common/book.h"
#include "../common/cpu_bitmap.h"
#include "../common/image.h"

#define DIM 1024
#define PI 3.1415926535897932f
Expand Down Expand Up @@ -53,7 +53,7 @@ struct DataBlock {

int main( void ) {
DataBlock data;
CPUBitmap bitmap( DIM, DIM, &data );
IMAGE bitmap( DIM, DIM );
unsigned char *dev_bitmap;

HANDLE_ERROR( cudaMalloc( (void**)&dev_bitmap,
Expand All @@ -70,7 +70,7 @@ int main( void ) {

HANDLE_ERROR( cudaFree( dev_bitmap ) );

bitmap.display_and_exit();
bitmap.show_image();
}


4 changes: 2 additions & 2 deletions chapter06/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.1)

CUDA_ADD_EXECUTABLE(ray_noconst ray_noconst.cu)
SET_PROPERTY(TARGET ray_noconst PROPERTY FOLDER chapter06)
TARGET_LINK_LIBRARIES(ray_noconst ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(ray_noconst ${OpenCV_LIBS})

CUDA_ADD_EXECUTABLE(ray ray.cu)
SET_PROPERTY(TARGET ray PROPERTY FOLDER chapter06)
TARGET_LINK_LIBRARIES(ray ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(ray ${OpenCV_LIBS})
6 changes: 3 additions & 3 deletions chapter06/ray.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include "cuda.h"
#include "../common/book.h"
#include "../common/cpu_bitmap.h"
#include "../common/image.h"

#define DIM 1024

Expand Down Expand Up @@ -83,7 +83,7 @@ int main( void ) {
HANDLE_ERROR( cudaEventCreate( &stop ) );
HANDLE_ERROR( cudaEventRecord( start, 0 ) );

CPUBitmap bitmap( DIM, DIM, &data );
IMAGE bitmap( DIM, DIM );
unsigned char *dev_bitmap;

// allocate memory on the GPU for the output bitmap
Expand Down Expand Up @@ -130,6 +130,6 @@ int main( void ) {
HANDLE_ERROR( cudaFree( dev_bitmap ) );

// display
bitmap.display_and_exit();
bitmap.show_image();
}

6 changes: 3 additions & 3 deletions chapter06/ray_noconst.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

#include "cuda.h"
#include "../common/book.h"
#include "../common/cpu_bitmap.h"
#include "../common/image.h"

#define DIM 1024

Expand Down Expand Up @@ -84,7 +84,7 @@ int main( void ) {
HANDLE_ERROR( cudaEventCreate( &stop ) );
HANDLE_ERROR( cudaEventRecord( start, 0 ) );

CPUBitmap bitmap( DIM, DIM, &data );
IMAGE bitmap( DIM, DIM);
unsigned char *dev_bitmap;
Sphere *s;

Expand Down Expand Up @@ -138,6 +138,6 @@ int main( void ) {
HANDLE_ERROR( cudaFree( s ) );

// display
bitmap.display_and_exit();
bitmap.show_image();
}

4 changes: 2 additions & 2 deletions chapter07/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.1)

CUDA_ADD_EXECUTABLE(heat_2d heat_2d.cu)
SET_PROPERTY(TARGET heat_2d PROPERTY FOLDER chapter07)
TARGET_LINK_LIBRARIES(heat_2d ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(heat_2d ${OpenCV_LIBS})

CUDA_ADD_EXECUTABLE(heat_7 heat.cu)
SET_PROPERTY(TARGET heat_7 PROPERTY FOLDER chapter07)
TARGET_LINK_LIBRARIES(heat_7 ${GLUT_LIBRARY})
TARGET_LINK_LIBRARIES(heat_7 ${OpenCV_LIBS})
Loading

0 comments on commit 897febf

Please sign in to comment.