資源簡介
基于opengl實現魚眼矯正,用到了球面等距模型,w,s,left,right等鍵可以控制視角,要引入lens K,D參數,留言繼續討論
代碼片段和文件信息
/*
????OpenGL?loader?generated?by?glad?0.1.18a0?on?Wed?Feb?28?04:14:42?2018.
????Language/Generator:?C/C++
????Specification:?gl
????APIs:?gl=3.3
????Profile:?core
????Extensions:
????????
????Loader:?True
????Local?files:?False
????Omit?khrplatform:?False
????Commandline:
????????--profile=“core“?--api=“gl=3.3“?--generator=“c“?--spec=“gl“?--extensions=““
????Online:
????????http://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D3.3
*/
#include?
#include?
#include?
#include?
static?void*?get_proc(const?char?*namez);
#ifdef?_WIN32
#include?
static?HMODULE?libGL;
typedef?void*?(APIENTRYP?PFNWGLGETPROCADDRESSPROC_PRIVATE)(const?char*);
static?PFNWGLGETPROCADDRESSPROC_PRIVATE?gladGetProcAddressPtr;
static
int?open_gl(void)?{
????libGL?=?LoadLibraryW(L“opengl32.dll“);
????if(libGL?!=?NULL)?{
????????gladGetProcAddressPtr?=?(PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
????????????????libGL?“wglGetProcAddress“);
????????return?gladGetProcAddressPtr?!=?NULL;
????}
????return?0;
}
static
void?close_gl(void)?{
????if(libGL?!=?NULL)?{
????????FreeLibrary((HMODULE)?libGL);
????libGL?=?NULL;
????}
}
#else
#include?
static?void*?libGL;
#ifndef?__APPLE__
typedef?void*?(APIENTRYP?PFNGLXGETPROCADDRESSPROC_PRIVATE)(const?char*);
static?PFNGLXGETPROCADDRESSPROC_PRIVATE?gladGetProcAddressPtr;
#endif
static
int?open_gl(void)?{
#ifdef?__APPLE__
????static?const?char?*NAMES[]?=?{
????????“../frameworks/OpenGL.framework/OpenGL“
????????“/Library/frameworks/OpenGL.framework/OpenGL“
????????“/System/Library/frameworks/OpenGL.framework/OpenGL“
????????“/System/Library/frameworks/OpenGL.framework/Versions/Current/OpenGL“
????};
#else
????static?const?char?*NAMES[]?=?{“libGL.so.1“?“libGL.so“};
#endif
????unsigned?int?index?=?0;
????for(index?=?0;?index?(sizeof(NAMES)?/?sizeof(NAMES[0]));?index++)?{
????????libGL?=?dlopen(NAMES[index]?RTLD_NOW?|?RTLD_GLOBAL);
????????if(libGL?!=?NULL)?{
#ifdef?__APPLE__
????????????return?1;
#else
????????????gladGetProcAddressPtr?=?(PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL
????????????????“glXGetProcAddressARB“);
????????????return?gladGetProcAddressPtr?!=?NULL;
#endif
????????}
????}
????return?0;
}
static
void?close_gl(void)?{
????if(libGL?!=?NULL)?{
????????dlclose(libGL);
????????libGL?=?NULL;
????}
}
#endif
static
void*?get_proc(const?char?*namez)?{
????void*?result?=?NULL;
????if(libGL?==?NULL)?return?NULL;
#ifndef?__APPLE__
????if(gladGetProcAddressPtr?!=?NULL)?{
????????result?=?gladGetProcAddressPtr(namez);
????}
#endif
????if(result?==?NULL)?{
#ifdef?_WIN32
????????result?=?(void*)GetProcAddress((HMODULE)?libGL?namez);
#else
????????result?=?dlsym(libGL?namez);
#endif
????}
????return?result;
}
int?gladLoadGL(void)?{
????int?status?=?0;
????if(open_gl())?{
????????status?=?gladLoadGLLoader(&get_proc);
????????close_gl();
????}
????return?status;
}
struct?gladGLversionStruct?GLVersion;
#if?defined(GL_E
- 上一篇:語音識別算法
- 下一篇:sacd解碼源代碼字數補丁
評論
共有 條評論