⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extgl.cpp

📁 PDE simulator on GPU.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/* ----------------------------------------------------------------------------Copyright (c) 2001-2002, Lev PovalahevAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:    * Redistributions of source code must retain the above copyright notice,       this list of conditions and the following disclaimer.    * Redistributions in binary form must reproduce the above copyright notice,       this list of conditions and the following disclaimer in the documentation       and/or other materials provided with the distribution.    * The name of the author may not be used to endorse or promote products       derived from this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.------------------------------------------------------------------------------*//*     Lev Povalahev    levp@gmx.net    http://www.levp.de/3d/*/                      /* VERSION 1.04 (see header for details) */#include "stdafx.h"
#include "Shadow.h"
      #include "extgl.h"#include <stdio.h>#include <string.h>#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)#include <GL/glx.h>#endif /* _WIN32 *//* turn off the warning for the borland compiler*/#ifdef __BORLANDC__#pragma warn -8064#pragma warn -8065#endif /* __BORLANDC__	*//* function variables *//*-------------------------------------*//* WGL stuff *//*-------------------------------------*/#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)/* WGL_EXT_etxension_string */#ifdef WGL_EXT_extensions_stringwglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT = NULL;#endif /* WGL_EXT_extension_string *//* WGL_ARB_buffer_region */#ifdef WGL_ARB_buffer_regionwglCreateBufferRegionARBPROC wglCreateBufferRegionARB = NULL;wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB = NULL;wglSaveBufferRegionARBPROC wglSaveBufferRegionARB = NULL;wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB = NULL;#endif /* WGL_ARB_buffer_region *//* WGL_ARB_extension_string */#ifdef WGL_ARB_extensions_stringwglGetExtensionsStringARBPROC wglGetExtensionsStringARB = NULL;#endif /* WGL_ARB_extension_string *//* WGL_ARB_pbuffer */#ifdef WGL_ARB_pbufferwglCreatePbufferARBPROC wglCreatePbufferARB = NULL;wglGetPbufferDCARBPROC wglGetPbufferDCARB = NULL;wglReleasePbufferDCARBPROC wglReleasePbufferDCARB = NULL;wglDestroyPbufferARBPROC wglDestroyPbufferARB = NULL;wglQueryPbufferARBPROC wglQueryPbufferARB = NULL;#endif /* WGL_ARB_pbuffer *//* WGL_ARB_pixel_format */#ifdef WGL_ARB_pixel_formatwglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB = NULL;wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB = NULL;wglChoosePixelFormatARBPROC wglChoosePixelFormatARB = NULL;#endif /* WGL_ARB_pixel_format *//* WGL_ARB_render_texture */#ifdef WGL_ARB_render_texturewglBindTexImageARBPROC wglBindTexImageARB = NULL;wglReleaseTexImageARBPROC wglReleaseTexImageARB = NULL;wglSetPbufferAttribARBPROC wglSetPbufferAttribARB = NULL;#endif /* WGL_ARB_render_texture *//* WGL_EXT_swap_control */#ifdef WGL_EXT_swap_controlwglSwapIntervalEXTPROC wglSwapIntervalEXT = NULL;wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT = NULL;#endif /* WGL_EXT_swap_control *//* WGL_ARB_make_current_read */#ifdef WGL_ARB_make_current_readwglMakeContextCurrentARBPROC wglMakeContextCurrentARB = NULL;wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB = NULL;#endif /* WGL_ARB_make_current_read*/ /* VAR */#endif /* WIN32 *//*-------------------------------------*//*---WGL STUFF END---------------------*//*-------------------------------------*/#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)#ifdef GL_VERSION_1_2glDrawRangeElementsPROC glDrawRangeElements = NULL;glTexImage3DPROC glTexImage3D = NULL;glTexSubImage3DPROC glTexSubImage3D = NULL;glCopyTexSubImage3DPROC glCopyTexSubImage3D = NULL;#endif /* GL_VERSION_1_2 */#ifdef GL_ARB_imagingglBlendColorPROC glBlendColor = NULL;glBlendEquationPROC glBlendEquation = NULL;glColorTablePROC glColorTable = NULL;glColorTableParameterfvPROC glColorTableParameterfv = NULL;glColorTableParameterivPROC glColorTableParameteriv = NULL;glCopyColorTablePROC glCopyColorTable = NULL;glGetColorTablePROC glGetColorTable = NULL;glGetColorTableParameterfvPROC glGetColorTableParameterfv = NULL;glGetColorTableParameterivPROC glGetColorTableParameteriv = NULL;glColorSubTablePROC glColorSubTable = NULL;glCopyColorSubTablePROC glCopyColorSubTable = NULL;glConvolutionFilter1DPROC glConvolutionFilter1D = NULL;glConvolutionFilter2DPROC glConvolutionFilter2D = NULL;glConvolutionParameterfPROC glConvolutionParameterf = NULL;glConvolutionParameterfvPROC glConvolutionParameterfv = NULL;glConvolutionParameteriPROC glConvolutionParameteri = NULL;glConvolutionParameterivPROC glConvolutionParameteriv = NULL;glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D = NULL;glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D = NULL;glGetConvolutionFilterPROC glGetConvolutionFilter = NULL;glGetConvolutionParameterfvPROC glGetConvolutionParameterfv = NULL;glGetConvolutionParameterivPROC glGetConvolutionParameteriv = NULL;glGetSeparableFilterPROC glGetSeparableFilter = NULL;glSeparableFilter2DPROC glSeparableFilter2D = NULL;glGetHistogramPROC glGetHistogram = NULL;glGetHistogramParameterfvPROC glGetHistogramParameterfv = NULL;glGetHistogramParameterivPROC glGetHistogramParameteriv = NULL;glGetMinmaxPROC glGetMinmax = NULL;glGetMinmaxParameterfvPROC glGetMinmaxParameterfv = NULL;glGetMinmaxParameterivPROC glGetMinmaxParameteriv = NULL;glHistogramPROC glHistogram = NULL;glMinmaxPROC glMinmax = NULL;glResetHistogramPROC glResetHistogram = NULL;glResetMinmaxPROC glResetMinmax = NULL;#endif /* GL_ARB_imaging *//* 1.3 */#ifdef GL_VERSION_1_3glActiveTexturePROC glActiveTexture = NULL;glClientActiveTexturePROC glClientActiveTexture = NULL;glMultiTexCoord1dPROC glMultiTexCoord1d = NULL;glMultiTexCoord1dvPROC glMultiTexCoord1dv = NULL;glMultiTexCoord1fPROC glMultiTexCoord1f = NULL;glMultiTexCoord1fvPROC glMultiTexCoord1fv = NULL;glMultiTexCoord1iPROC glMultiTexCoord1i = NULL;glMultiTexCoord1ivPROC glMultiTexCoord1iv = NULL;glMultiTexCoord1sPROC glMultiTexCoord1s = NULL;glMultiTexCoord1svPROC glMultiTexCoord1sv = NULL;glMultiTexCoord2dPROC glMultiTexCoord2d = NULL;glMultiTexCoord2dvPROC glMultiTexCoord2dv = NULL;glMultiTexCoord2fPROC glMultiTexCoord2f = NULL;glMultiTexCoord2fvPROC glMultiTexCoord2fv = NULL;glMultiTexCoord2iPROC glMultiTexCoord2i = NULL;glMultiTexCoord2ivPROC glMultiTexCoord2iv = NULL;glMultiTexCoord2sPROC glMultiTexCoord2s = NULL;glMultiTexCoord2svPROC glMultiTexCoord2sv = NULL;glMultiTexCoord3dPROC glMultiTexCoord3d = NULL;glMultiTexCoord3dvPROC glMultiTexCoord3dv = NULL;glMultiTexCoord3fPROC glMultiTexCoord3f = NULL;glMultiTexCoord3fvPROC glMultiTexCoord3fv = NULL;glMultiTexCoord3iPROC glMultiTexCoord3i = NULL;glMultiTexCoord3ivPROC glMultiTexCoord3iv = NULL;glMultiTexCoord3sPROC glMultiTexCoord3s = NULL;glMultiTexCoord3svPROC glMultiTexCoord3sv = NULL;glMultiTexCoord4dPROC glMultiTexCoord4d = NULL;glMultiTexCoord4dvPROC glMultiTexCoord4dv = NULL;glMultiTexCoord4fPROC glMultiTexCoord4f = NULL;glMultiTexCoord4fvPROC glMultiTexCoord4fv = NULL;glMultiTexCoord4iPROC glMultiTexCoord4i = NULL;glMultiTexCoord4ivPROC glMultiTexCoord4iv = NULL;glMultiTexCoord4sPROC glMultiTexCoord4s = NULL;glMultiTexCoord4svPROC glMultiTexCoord4sv = NULL;glLoadTransposeMatrixfPROC glLoadTransposeMatrixf = NULL;glLoadTransposeMatrixdPROC glLoadTransposeMatrixd = NULL;glMultTransposeMatrixfPROC glMultTransposeMatrixf = NULL;glMultTransposeMatrixdPROC glMultTransposeMatrixd = NULL;glCompressedTexImage3DPROC glCompressedTexImage3D = NULL;glCompressedTexImage2DPROC glCompressedTexImage2D = NULL;glCompressedTexImage1DPROC glCompressedTexImage1D = NULL;glCompressedTexSubImage3DPROC glCompressedTexSubImage3D = NULL;glCompressedTexSubImage2DPROC glCompressedTexSubImage2D = NULL;glCompressedTexSubImage1DPROC glCompressedTexSubImage1D = NULL;glGetCompressedTexImagePROC glGetCompressedTexImage = NULL;glSampleCoveragePROC glSampleCoverage = NULL;#endif /* GL_VERSION_1_3 *//* ARB_multitexture */#ifdef GL_ARB_multitextureglActiveTextureARBPROC glActiveTextureARB = NULL;glClientActiveTextureARBPROC glClientActiveTextureARB = NULL;glMultiTexCoord1dARBPROC glMultiTexCoord1dARB = NULL;glMultiTexCoord1dvARBPROC glMultiTexCoord1dvARB = NULL;glMultiTexCoord1fARBPROC glMultiTexCoord1fARB = NULL;glMultiTexCoord1fvARBPROC glMultiTexCoord1fvARB = NULL;glMultiTexCoord1iARBPROC glMultiTexCoord1iARB = NULL;glMultiTexCoord1ivARBPROC glMultiTexCoord1ivARB = NULL;glMultiTexCoord1sARBPROC glMultiTexCoord1sARB = NULL;glMultiTexCoord1svARBPROC glMultiTexCoord1svARB = NULL;glMultiTexCoord2dARBPROC glMultiTexCoord2dARB = NULL;glMultiTexCoord2dvARBPROC glMultiTexCoord2dvARB = NULL;glMultiTexCoord2fARBPROC glMultiTexCoord2fARB = NULL;glMultiTexCoord2fvARBPROC glMultiTexCoord2fvARB = NULL;glMultiTexCoord2iARBPROC glMultiTexCoord2iARB = NULL;glMultiTexCoord2ivARBPROC glMultiTexCoord2ivARB = NULL;glMultiTexCoord2sARBPROC glMultiTexCoord2sARB = NULL;glMultiTexCoord2svARBPROC glMultiTexCoord2svARB = NULL;glMultiTexCoord3dARBPROC glMultiTexCoord3dARB = NULL;glMultiTexCoord3dvARBPROC glMultiTexCoord3dvARB = NULL;glMultiTexCoord3fARBPROC glMultiTexCoord3fARB = NULL;glMultiTexCoord3fvARBPROC glMultiTexCoord3fvARB = NULL;glMultiTexCoord3iARBPROC glMultiTexCoord3iARB = NULL;glMultiTexCoord3ivARBPROC glMultiTexCoord3ivARB = NULL;glMultiTexCoord3sARBPROC glMultiTexCoord3sARB = NULL;glMultiTexCoord3svARBPROC glMultiTexCoord3svARB = NULL;glMultiTexCoord4dARBPROC glMultiTexCoord4dARB = NULL;glMultiTexCoord4dvARBPROC glMultiTexCoord4dvARB = NULL;glMultiTexCoord4fARBPROC glMultiTexCoord4fARB = NULL;glMultiTexCoord4fvARBPROC glMultiTexCoord4fvARB = NULL;glMultiTexCoord4iARBPROC glMultiTexCoord4iARB = NULL;glMultiTexCoord4ivARBPROC glMultiTexCoord4ivARB = NULL;glMultiTexCoord4sARBPROC glMultiTexCoord4sARB = NULL;glMultiTexCoord4svARBPROC glMultiTexCoord4svARB = NULL;#endif /* GL_ARB_multitexture */#endif /* WIN32 *//* ARB_transpose_matrix */#ifdef GL_ARB_transpose_matrixglLoadTransposeMatrixfARBPROC glLoadTransposeMatrixfARB = NULL;glLoadTransposeMatrixdARBPROC glLoadTransposeMatrixdARB = NULL;glMultTransposeMatrixfARBPROC glMultTransposeMatrixfARB = NULL;glMultTransposeMatrixdARBPROC glMultTransposeMatrixdARB = NULL;#endif /* GL_ARB_transpose_matrix *//* ARB_texture_compression */#ifdef GL_ARB_texture_compression glCompressedTexImage3DARBPROC glCompressedTexImage3DARB = NULL;glCompressedTexImage2DARBPROC glCompressedTexImage2DARB = NULL;glCompressedTexImage1DARBPROC glCompressedTexImage1DARB = NULL; glCompressedTexSubImage3DARBPROC glCompressedTexSubImage3DARB = NULL;glCompressedTexSubImage2DARBPROC glCompressedTexSubImage2DARB = NULL;glCompressedTexSubImage1DARBPROC glCompressedTexSubImage1DARB = NULL;glGetCompressedTexImageARBPROC glGetCompressedTexImageARB = NULL;#endif /* GL_ARB_texture_compression *//* EXT_secondary_color */#ifdef GL_EXT_secondary_colorglSecondaryColor3bEXTPROC glSecondaryColor3bEXT = NULL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -