diff options
author | chai <chaifix@163.com> | 2018-09-20 08:32:18 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-09-20 08:32:18 +0800 |
commit | 6e81b7ddf8c0b378e983c1d2a1fb6f4b43d70d9a (patch) | |
tree | 5883254d23f5d2a53eb726e76545f282d8e9f688 | |
parent | b6f5c98a536186eb26c81d9fecdbbbc9860be93a (diff) |
*update
-rw-r--r-- | build/05Font/05Font.vcxproj | 3 | ||||
-rw-r--r-- | build/libjin/libjin.vcxproj | 8 | ||||
-rw-r--r-- | build/libjin/libjin.vcxproj.filters | 18 | ||||
-rw-r--r-- | libjin/3rdparty/ogl/OpenGL.h | 104 | ||||
-rw-r--r-- | libjin/Graphics/Font.cpp | 24 | ||||
-rw-r--r-- | libjin/Graphics/FontData.cpp | 4 | ||||
-rw-r--r-- | libjin/Graphics/OpenGL.h | 341 | ||||
-rw-r--r-- | libjin/Graphics/Shader.cpp | 9 | ||||
-rw-r--r-- | libjin/Graphics/Shaders/base.shader.h (renamed from libjin/Graphics/base.shader.h) | 0 | ||||
-rw-r--r-- | libjin/Graphics/Shaders/default.shader.h | 7 | ||||
-rw-r--r-- | libjin/Graphics/Shaders/font.shader.h (renamed from libjin/Graphics/font.shader.h) | 2 | ||||
-rw-r--r-- | test/05Font/main.cpp | 4 |
12 files changed, 474 insertions, 50 deletions
diff --git a/build/05Font/05Font.vcxproj b/build/05Font/05Font.vcxproj index 5827205..2522097 100644 --- a/build/05Font/05Font.vcxproj +++ b/build/05Font/05Font.vcxproj @@ -22,7 +22,7 @@ <VCProjectVersion>15.0</VCProjectVersion> <ProjectGuid>{D1953718-E728-4A86-9CCF-8BEC1F5C5F97}</ProjectGuid> <RootNamespace>My05Font</RootNamespace> - <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + <WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> @@ -98,6 +98,7 @@ <IntrinsicFunctions>true</IntrinsicFunctions> <SDLCheck>true</SDLCheck> <AdditionalIncludeDirectories>$(SolutionDir)..\libjin\;$(SolutionDir)\lib\SDL2-2.0.5\include\</AdditionalIncludeDirectories> + <InlineFunctionExpansion>Default</InlineFunctionExpansion> </ClCompile> <Link> <EnableCOMDATFolding>true</EnableCOMDATFolding> diff --git a/build/libjin/libjin.vcxproj b/build/libjin/libjin.vcxproj index 6cd4b76..cba0565 100644 --- a/build/libjin/libjin.vcxproj +++ b/build/libjin/libjin.vcxproj @@ -82,18 +82,19 @@ <ClInclude Include="..\..\libjin\Filesystem\Buffer.h" /> <ClInclude Include="..\..\libjin\Filesystem\Filesystem.h" /> <ClInclude Include="..\..\libjin\Game\Game.h" /> - <ClInclude Include="..\..\libjin\Graphics\base.shader.h" /> <ClInclude Include="..\..\libjin\Graphics\Bitmap.h" /> <ClInclude Include="..\..\libjin\Graphics\Canvas.h" /> <ClInclude Include="..\..\libjin\Graphics\Color.h" /> <ClInclude Include="..\..\libjin\Graphics\Drawable.h" /> <ClInclude Include="..\..\libjin\Graphics\Font.h" /> - <ClInclude Include="..\..\libjin\Graphics\font.shader.h" /> <ClInclude Include="..\..\libjin\Graphics\FontData.h" /> <ClInclude Include="..\..\libjin\Graphics\Graphics.h" /> <ClInclude Include="..\..\libjin\Graphics\Mesh.h" /> <ClInclude Include="..\..\libjin\Graphics\OpenGL.h" /> <ClInclude Include="..\..\libjin\Graphics\Shader.h" /> + <ClInclude Include="..\..\libjin\Graphics\Shaders\base.shader.h" /> + <ClInclude Include="..\..\libjin\Graphics\Shaders\default.shader.h" /> + <ClInclude Include="..\..\libjin\Graphics\Shaders\font.shader.h" /> <ClInclude Include="..\..\libjin\Graphics\Shapes.h" /> <ClInclude Include="..\..\libjin\Graphics\Texture.h" /> <ClInclude Include="..\..\libjin\Graphics\Window.h" /> @@ -127,7 +128,7 @@ <ProjectGuid>{407E9199-D39C-4460-B218-0C29AB42483B}</ProjectGuid> <Keyword>Win32Proj</Keyword> <RootNamespace>libjin</RootNamespace> - <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + <WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> @@ -230,6 +231,7 @@ <SDLCheck>true</SDLCheck> <AdditionalIncludeDirectories>$(SolutionDir)\lib\SDL2-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <CompileAs>CompileAsCpp</CompileAs> + <InlineFunctionExpansion>Default</InlineFunctionExpansion> </ClCompile> <Link> <SubSystem>Console</SubSystem> diff --git a/build/libjin/libjin.vcxproj.filters b/build/libjin/libjin.vcxproj.filters index c84c01f..390c495 100644 --- a/build/libjin/libjin.vcxproj.filters +++ b/build/libjin/libjin.vcxproj.filters @@ -58,6 +58,9 @@ <Filter Include="3rdparty\ogl2d"> <UniqueIdentifier>{01c41441-9b31-4a63-b3dd-18b4bfdf61ac}</UniqueIdentifier> </Filter> + <Filter Include="Graphics\Shaders"> + <UniqueIdentifier>{35881367-9a40-4391-9cc2-26d2ee869b8a}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClCompile Include="..\..\libjin\3rdparty\GLee\GLee.c"> @@ -303,9 +306,6 @@ <ClInclude Include="..\..\libjin\Net\Socket.h"> <Filter>Net</Filter> </ClInclude> - <ClInclude Include="..\..\libjin\Graphics\base.shader.h"> - <Filter>Graphics</Filter> - </ClInclude> <ClInclude Include="..\..\libjin\Graphics\Bitmap.h"> <Filter>Graphics</Filter> </ClInclude> @@ -340,9 +340,6 @@ <ClInclude Include="..\..\libjin\Graphics\FontData.h"> <Filter>Graphics</Filter> </ClInclude> - <ClInclude Include="..\..\libjin\Graphics\font.shader.h"> - <Filter>Graphics</Filter> - </ClInclude> <ClInclude Include="..\..\libjin\Graphics\OpenGL.h"> <Filter>Graphics</Filter> </ClInclude> @@ -352,6 +349,15 @@ <ClInclude Include="..\..\libjin\3rdparty\ogl\OpenGL.h"> <Filter>3rdparty\ogl2d</Filter> </ClInclude> + <ClInclude Include="..\..\libjin\Graphics\Shaders\font.shader.h"> + <Filter>Graphics\Shaders</Filter> + </ClInclude> + <ClInclude Include="..\..\libjin\Graphics\Shaders\base.shader.h"> + <Filter>Graphics\Shaders</Filter> + </ClInclude> + <ClInclude Include="..\..\libjin\Graphics\Shaders\default.shader.h"> + <Filter>Graphics\Shaders</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <None Include="..\..\libjin\README.md" /> diff --git a/libjin/3rdparty/ogl/OpenGL.h b/libjin/3rdparty/ogl/OpenGL.h index c4bc78a..dcd2168 100644 --- a/libjin/3rdparty/ogl/OpenGL.h +++ b/libjin/3rdparty/ogl/OpenGL.h @@ -7,32 +7,53 @@ class OpenGL { public: - OpenGL() {}; - ~OpenGL() {}; - - struct Texture - { - GLuint texture; - GLint level; - GLint internalformat; - }; - - struct Color8i { unsigned char r, g, b, a; }; - struct Color32f { float r, g, b, a; }; + OpenGL(); + ~OpenGL(); + void pushColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a); + void popColor(); + void flushColor(); void flushError(); GLuint genTexture(); - void bindTexture(GLuint texture); + void bindTexture(GLuint texture = 0); + inline GLuint curTexture() + { + return _texture; + } void setTexParameter(GLenum pname, GLint param); + void drawColor8i(unsigned char r, unsigned char g, unsigned char b, unsigned char a); + void drawColor32f(float r, float g, float b, float a); + void texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels = NULL); + void texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void activeTexUnit(unsigned int unit = 0); + inline void vertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) + { + glVertexPointer(size, type, stride, pointer); + } + + inline void texCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) + { + glTexCoordPointer(size, type, stride, pointer); + } + + inline void drawArrays(GLenum mode, GLint first, GLsizei count) + { + glDrawArrays(mode, first, count); + } + + inline void drawBuffer(GLenum mode) + { - Texture genTexturex(); - void bindTexture(const Texture& texture); + } - void drawColor(const Color8i color); - void drawColor(const Color32f color); + inline void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) + { + + } private: - std::vector<Color8i> _color; + std::vector<unsigned int> _color; + GLuint _texture; }; @@ -43,6 +64,38 @@ extern OpenGL gl; OpenGL gl; +OpenGL::OpenGL() +{ + _color.push_back((0xff << 24) | (0xff << 16) | (0xff << 8) | 0xff); +} + +OpenGL::~OpenGL() +{ + +} + +void OpenGL::pushColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a) +{ + unsigned int c = (r << 24) | (g << 16) | (b << 8) | a; + _color.push_back(c); + glColor4i(r, g, b, a); +} + +void OpenGL::popColor() +{ + if (_color.size() == 1) + return; + _color.pop_back(); + unsigned int c = _color.back(); + glColor4i((c >> 24) & 0xff, (c >> 16) & 0xff, (c >> 8) & 0xff, c & 0xff); +} + +void OpenGL::flushColor() +{ + while (_color.size() != 1) + _color.pop_back(); +} + void OpenGL::flushError() { while (glGetError() != GL_NO_ERROR); @@ -65,6 +118,21 @@ void OpenGL::setTexParameter(GLenum pname, GLint param) glTexParameteri(GL_TEXTURE_2D, pname, param); } +void OpenGL::texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) +{ + glTexImage2D(GL_TEXTURE_2D, 0, internalformat, width, height, 0, format, type, pixels); +} + +void OpenGL::texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) +{ + glTexSubImage2D(GL_TEXTURE_2D, 0, xoffset, yoffset, width, height, format, type, pixels); +} + +void OpenGL::activeTexUnit(unsigned int unit) +{ + // glActiveTexture selects which texture unit subsequent texture state calls will affect. + glActiveTexture(GL_TEXTURE0 + unit); +} #endif // OGL2D_IMPLEMENT diff --git a/libjin/Graphics/Font.cpp b/libjin/Graphics/Font.cpp index 462fad8..b4fb76c 100644 --- a/libjin/Graphics/Font.cpp +++ b/libjin/Graphics/Font.cpp @@ -13,7 +13,7 @@ namespace jin namespace graphics { - #include "font.shader.h" + #include "Shaders/font.shader.h" using namespace std; using namespace jin::math; @@ -106,15 +106,15 @@ namespace graphics gl.setTexParameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR); gl.setTexParameter(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); gl.setTexParameter(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, textureWidth, textureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + gl.texImage(GL_RGBA8, textureWidth, textureHeight, GL_RGBA, GL_UNSIGNED_BYTE); if (glGetError() != GL_NO_ERROR) { glDeleteTextures(1, &t); - glBindTexture(GL_TEXTURE_2D, 0); + gl.bindTexture(0); return 0; } atlases.push_back(t); - glBindTexture(GL_TEXTURE_2D, 0); + gl.bindTexture(0); return t; } @@ -195,14 +195,14 @@ namespace graphics for (int i = 0; i < glyphinfolist.size(); ++i) { const GlyphArrayDrawInfo& info = glyphinfolist[i]; - glBindTexture(GL_TEXTURE_2D, info.texture); - glVertexPointer(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); - glTexCoordPointer(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); + gl.bindTexture(info.texture); + gl.vertexPointer(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); + gl.texCoordPointer(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); //#define font_debug #if !defined(font_debug) - glDrawArrays(GL_QUADS, 0, info.count); + gl.drawArrays(GL_QUADS, 0, info.count); #endif - glBindTexture(GL_TEXTURE_2D, 0); + gl.bindTexture(0); } #if defined(font_debug) glBindTexture(GL_TEXTURE_2D, 1); @@ -300,9 +300,9 @@ namespace graphics cursor.y = 0; } } - glBindTexture(GL_TEXTURE_2D, atlas); - glTexSubImage2D(GL_TEXTURE_2D, 0, cursor.x + xoff, cursor.y + yoff + baseline, w, h, GL_RGBA, GL_UNSIGNED_BYTE, bitmap); - glBindTexture(GL_TEXTURE_2D, 0); + gl.bindTexture(atlas); + gl.texSubImage(cursor.x + xoff, cursor.y + yoff + baseline, w, h, GL_RGBA, GL_UNSIGNED_BYTE, bitmap); + gl.bindTexture(); delete[] bitmap; } glyph->atlas = atlas; diff --git a/libjin/Graphics/FontData.cpp b/libjin/Graphics/FontData.cpp index 6a01081..168ac79 100644 --- a/libjin/Graphics/FontData.cpp +++ b/libjin/Graphics/FontData.cpp @@ -60,8 +60,8 @@ namespace graphics float scale = scales.back(); int ascent; stbtt_GetFontVMetrics(&info, &ascent, descent, 0); - *baseline = (int)(ascent*scale); - *descent = *baseline - (int)(*descent*scale); + *baseline = (int)(ascent*scale) + 1; // slight adjustment + *descent = *baseline - (int)(*descent*scale) + 1; } void FontData::getHMetrics(unsigned int codepoint, int* advanceWidth, int* leftSideBearing) diff --git a/libjin/Graphics/OpenGL.h b/libjin/Graphics/OpenGL.h index f03cea5..0a1c3e3 100644 --- a/libjin/Graphics/OpenGL.h +++ b/libjin/Graphics/OpenGL.h @@ -1,2 +1,343 @@ #include "../3rdparty/GLee/GLee.h" #include "../3rdparty/ogl/OpenGL.h" + +/* GL.h + +WINGDIAPI void APIENTRY glAccum(GLenum op, GLfloat value); +WINGDIAPI void APIENTRY glAlphaFunc(GLenum func, GLclampf ref); +WINGDIAPI GLboolean APIENTRY glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); +WINGDIAPI void APIENTRY glArrayElement(GLint i); +WINGDIAPI void APIENTRY glBegin(GLenum mode); +WINGDIAPI void APIENTRY glBindTexture(GLenum target, GLuint texture); +WINGDIAPI void APIENTRY glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +WINGDIAPI void APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor); +WINGDIAPI void APIENTRY glCallList(GLuint list); +WINGDIAPI void APIENTRY glCallLists(GLsizei n, GLenum type, const GLvoid *lists); +WINGDIAPI void APIENTRY glClear(GLbitfield mask); +WINGDIAPI void APIENTRY glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +WINGDIAPI void APIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +WINGDIAPI void APIENTRY glClearDepth(GLclampd depth); +WINGDIAPI void APIENTRY glClearIndex(GLfloat c); +WINGDIAPI void APIENTRY glClearStencil(GLint s); +WINGDIAPI void APIENTRY glClipPlane(GLenum plane, const GLdouble *equation); +WINGDIAPI void APIENTRY glColor3b(GLbyte red, GLbyte green, GLbyte blue); +WINGDIAPI void APIENTRY glColor3bv(const GLbyte *v); +WINGDIAPI void APIENTRY glColor3d(GLdouble red, GLdouble green, GLdouble blue); +WINGDIAPI void APIENTRY glColor3dv(const GLdouble *v); +WINGDIAPI void APIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue); +WINGDIAPI void APIENTRY glColor3fv(const GLfloat *v); +WINGDIAPI void APIENTRY glColor3i(GLint red, GLint green, GLint blue); +WINGDIAPI void APIENTRY glColor3iv(const GLint *v); +WINGDIAPI void APIENTRY glColor3s(GLshort red, GLshort green, GLshort blue); +WINGDIAPI void APIENTRY glColor3sv(const GLshort *v); +WINGDIAPI void APIENTRY glColor3ub(GLubyte red, GLubyte green, GLubyte blue); +WINGDIAPI void APIENTRY glColor3ubv(const GLubyte *v); +WINGDIAPI void APIENTRY glColor3ui(GLuint red, GLuint green, GLuint blue); +WINGDIAPI void APIENTRY glColor3uiv(const GLuint *v); +WINGDIAPI void APIENTRY glColor3us(GLushort red, GLushort green, GLushort blue); +WINGDIAPI void APIENTRY glColor3usv(const GLushort *v); +WINGDIAPI void APIENTRY glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +WINGDIAPI void APIENTRY glColor4bv(const GLbyte *v); +WINGDIAPI void APIENTRY glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +WINGDIAPI void APIENTRY glColor4dv(const GLdouble *v); +WINGDIAPI void APIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +WINGDIAPI void APIENTRY glColor4fv(const GLfloat *v); +WINGDIAPI void APIENTRY glColor4i(GLint red, GLint green, GLint blue, GLint alpha); +WINGDIAPI void APIENTRY glColor4iv(const GLint *v); +WINGDIAPI void APIENTRY glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); +WINGDIAPI void APIENTRY glColor4sv(const GLshort *v); +WINGDIAPI void APIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +WINGDIAPI void APIENTRY glColor4ubv(const GLubyte *v); +WINGDIAPI void APIENTRY glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); +WINGDIAPI void APIENTRY glColor4uiv(const GLuint *v); +WINGDIAPI void APIENTRY glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); +WINGDIAPI void APIENTRY glColor4usv(const GLushort *v); +WINGDIAPI void APIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +WINGDIAPI void APIENTRY glColorMaterial(GLenum face, GLenum mode); +WINGDIAPI void APIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +WINGDIAPI void APIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +WINGDIAPI void APIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +WINGDIAPI void APIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +WINGDIAPI void APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +WINGDIAPI void APIENTRY glCullFace(GLenum mode); +WINGDIAPI void APIENTRY glDeleteLists(GLuint list, GLsizei range); +WINGDIAPI void APIENTRY glDeleteTextures(GLsizei n, const GLuint *textures); +WINGDIAPI void APIENTRY glDepthFunc(GLenum func); +WINGDIAPI void APIENTRY glDepthMask(GLboolean flag); +WINGDIAPI void APIENTRY glDepthRange(GLclampd zNear, GLclampd zFar); +WINGDIAPI void APIENTRY glDisable(GLenum cap); +WINGDIAPI void APIENTRY glDisableClientState(GLenum array); +WINGDIAPI void APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count); +WINGDIAPI void APIENTRY glDrawBuffer(GLenum mode); +WINGDIAPI void APIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +WINGDIAPI void APIENTRY glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +WINGDIAPI void APIENTRY glEdgeFlag(GLboolean flag); +WINGDIAPI void APIENTRY glEdgeFlagPointer(GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glEdgeFlagv(const GLboolean *flag); +WINGDIAPI void APIENTRY glEnable(GLenum cap); +WINGDIAPI void APIENTRY glEnableClientState(GLenum array); +WINGDIAPI void APIENTRY glEnd(void); +WINGDIAPI void APIENTRY glEndList(void); +WINGDIAPI void APIENTRY glEvalCoord1d(GLdouble u); +WINGDIAPI void APIENTRY glEvalCoord1dv(const GLdouble *u); +WINGDIAPI void APIENTRY glEvalCoord1f(GLfloat u); +WINGDIAPI void APIENTRY glEvalCoord1fv(const GLfloat *u); +WINGDIAPI void APIENTRY glEvalCoord2d(GLdouble u, GLdouble v); +WINGDIAPI void APIENTRY glEvalCoord2dv(const GLdouble *u); +WINGDIAPI void APIENTRY glEvalCoord2f(GLfloat u, GLfloat v); +WINGDIAPI void APIENTRY glEvalCoord2fv(const GLfloat *u); +WINGDIAPI void APIENTRY glEvalMesh1(GLenum mode, GLint i1, GLint i2); +WINGDIAPI void APIENTRY glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +WINGDIAPI void APIENTRY glEvalPoint1(GLint i); +WINGDIAPI void APIENTRY glEvalPoint2(GLint i, GLint j); +WINGDIAPI void APIENTRY glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer); +WINGDIAPI void APIENTRY glFinish(void); +WINGDIAPI void APIENTRY glFlush(void); +WINGDIAPI void APIENTRY glFogf(GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glFogfv(GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glFogi(GLenum pname, GLint param); +WINGDIAPI void APIENTRY glFogiv(GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glFrontFace(GLenum mode); +WINGDIAPI void APIENTRY glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +WINGDIAPI GLuint APIENTRY glGenLists(GLsizei range); +WINGDIAPI void APIENTRY glGenTextures(GLsizei n, GLuint *textures); +WINGDIAPI void APIENTRY glGetBooleanv(GLenum pname, GLboolean *params); +WINGDIAPI void APIENTRY glGetClipPlane(GLenum plane, GLdouble *equation); +WINGDIAPI void APIENTRY glGetDoublev(GLenum pname, GLdouble *params); +WINGDIAPI GLenum APIENTRY glGetError(void); +WINGDIAPI void APIENTRY glGetFloatv(GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetIntegerv(GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetLightiv(GLenum light, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetMapdv(GLenum target, GLenum query, GLdouble *v); +WINGDIAPI void APIENTRY glGetMapfv(GLenum target, GLenum query, GLfloat *v); +WINGDIAPI void APIENTRY glGetMapiv(GLenum target, GLenum query, GLint *v); +WINGDIAPI void APIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetMaterialiv(GLenum face, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetPixelMapfv(GLenum map, GLfloat *values); +WINGDIAPI void APIENTRY glGetPixelMapuiv(GLenum map, GLuint *values); +WINGDIAPI void APIENTRY glGetPixelMapusv(GLenum map, GLushort *values); +WINGDIAPI void APIENTRY glGetPointerv(GLenum pname, GLvoid* *params); +WINGDIAPI void APIENTRY glGetPolygonStipple(GLubyte *mask); +WINGDIAPI const GLubyte * APIENTRY glGetString(GLenum name); +WINGDIAPI void APIENTRY glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetTexEnviv(GLenum target, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params); +WINGDIAPI void APIENTRY glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetTexGeniv(GLenum coord, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +WINGDIAPI void APIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params); +WINGDIAPI void APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint *params); +WINGDIAPI void APIENTRY glHint(GLenum target, GLenum mode); +WINGDIAPI void APIENTRY glIndexMask(GLuint mask); +WINGDIAPI void APIENTRY glIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glIndexd(GLdouble c); +WINGDIAPI void APIENTRY glIndexdv(const GLdouble *c); +WINGDIAPI void APIENTRY glIndexf(GLfloat c); +WINGDIAPI void APIENTRY glIndexfv(const GLfloat *c); +WINGDIAPI void APIENTRY glIndexi(GLint c); +WINGDIAPI void APIENTRY glIndexiv(const GLint *c); +WINGDIAPI void APIENTRY glIndexs(GLshort c); +WINGDIAPI void APIENTRY glIndexsv(const GLshort *c); +WINGDIAPI void APIENTRY glIndexub(GLubyte c); +WINGDIAPI void APIENTRY glIndexubv(const GLubyte *c); +WINGDIAPI void APIENTRY glInitNames(void); +WINGDIAPI void APIENTRY glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer); +WINGDIAPI GLboolean APIENTRY glIsEnabled(GLenum cap); +WINGDIAPI GLboolean APIENTRY glIsList(GLuint list); +WINGDIAPI GLboolean APIENTRY glIsTexture(GLuint texture); +WINGDIAPI void APIENTRY glLightModelf(GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glLightModelfv(GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glLightModeli(GLenum pname, GLint param); +WINGDIAPI void APIENTRY glLightModeliv(GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glLightf(GLenum light, GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glLighti(GLenum light, GLenum pname, GLint param); +WINGDIAPI void APIENTRY glLightiv(GLenum light, GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glLineStipple(GLint factor, GLushort pattern); +WINGDIAPI void APIENTRY glLineWidth(GLfloat width); +WINGDIAPI void APIENTRY glListBase(GLuint base); +WINGDIAPI void APIENTRY glLoadIdentity(void); +WINGDIAPI void APIENTRY glLoadMatrixd(const GLdouble *m); +WINGDIAPI void APIENTRY glLoadMatrixf(const GLfloat *m); +WINGDIAPI void APIENTRY glLoadName(GLuint name); +WINGDIAPI void APIENTRY glLogicOp(GLenum opcode); +WINGDIAPI void APIENTRY glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +WINGDIAPI void APIENTRY glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +WINGDIAPI void APIENTRY glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +WINGDIAPI void APIENTRY glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +WINGDIAPI void APIENTRY glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); +WINGDIAPI void APIENTRY glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); +WINGDIAPI void APIENTRY glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +WINGDIAPI void APIENTRY glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +WINGDIAPI void APIENTRY glMaterialf(GLenum face, GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glMaterialfv(GLenum face, GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glMateriali(GLenum face, GLenum pname, GLint param); +WINGDIAPI void APIENTRY glMaterialiv(GLenum face, GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glMatrixMode(GLenum mode); +WINGDIAPI void APIENTRY glMultMatrixd(const GLdouble *m); +WINGDIAPI void APIENTRY glMultMatrixf(const GLfloat *m); +WINGDIAPI void APIENTRY glNewList(GLuint list, GLenum mode); +WINGDIAPI void APIENTRY glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz); +WINGDIAPI void APIENTRY glNormal3bv(const GLbyte *v); +WINGDIAPI void APIENTRY glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz); +WINGDIAPI void APIENTRY glNormal3dv(const GLdouble *v); +WINGDIAPI void APIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); +WINGDIAPI void APIENTRY glNormal3fv(const GLfloat *v); +WINGDIAPI void APIENTRY glNormal3i(GLint nx, GLint ny, GLint nz); +WINGDIAPI void APIENTRY glNormal3iv(const GLint *v); +WINGDIAPI void APIENTRY glNormal3s(GLshort nx, GLshort ny, GLshort nz); +WINGDIAPI void APIENTRY glNormal3sv(const GLshort *v); +WINGDIAPI void APIENTRY glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +WINGDIAPI void APIENTRY glPassThrough(GLfloat token); +WINGDIAPI void APIENTRY glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values); +WINGDIAPI void APIENTRY glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values); +WINGDIAPI void APIENTRY glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values); +WINGDIAPI void APIENTRY glPixelStoref(GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glPixelStorei(GLenum pname, GLint param); +WINGDIAPI void APIENTRY glPixelTransferf(GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glPixelTransferi(GLenum pname, GLint param); +WINGDIAPI void APIENTRY glPixelZoom(GLfloat xfactor, GLfloat yfactor); +WINGDIAPI void APIENTRY glPointSize(GLfloat size); +WINGDIAPI void APIENTRY glPolygonMode(GLenum face, GLenum mode); +WINGDIAPI void APIENTRY glPolygonOffset(GLfloat factor, GLfloat units); +WINGDIAPI void APIENTRY glPolygonStipple(const GLubyte *mask); +WINGDIAPI void APIENTRY glPopAttrib(void); +WINGDIAPI void APIENTRY glPopClientAttrib(void); +WINGDIAPI void APIENTRY glPopMatrix(void); +WINGDIAPI void APIENTRY glPopName(void); +WINGDIAPI void APIENTRY glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities); +WINGDIAPI void APIENTRY glPushAttrib(GLbitfield mask); +WINGDIAPI void APIENTRY glPushClientAttrib(GLbitfield mask); +WINGDIAPI void APIENTRY glPushMatrix(void); +WINGDIAPI void APIENTRY glPushName(GLuint name); +WINGDIAPI void APIENTRY glRasterPos2d(GLdouble x, GLdouble y); +WINGDIAPI void APIENTRY glRasterPos2dv(const GLdouble *v); +WINGDIAPI void APIENTRY glRasterPos2f(GLfloat x, GLfloat y); +WINGDIAPI void APIENTRY glRasterPos2fv(const GLfloat *v); +WINGDIAPI void APIENTRY glRasterPos2i(GLint x, GLint y); +WINGDIAPI void APIENTRY glRasterPos2iv(const GLint *v); +WINGDIAPI void APIENTRY glRasterPos2s(GLshort x, GLshort y); +WINGDIAPI void APIENTRY glRasterPos2sv(const GLshort *v); +WINGDIAPI void APIENTRY glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); +WINGDIAPI void APIENTRY glRasterPos3dv(const GLdouble *v); +WINGDIAPI void APIENTRY glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); +WINGDIAPI void APIENTRY glRasterPos3fv(const GLfloat *v); +WINGDIAPI void APIENTRY glRasterPos3i(GLint x, GLint y, GLint z); +WINGDIAPI void APIENTRY glRasterPos3iv(const GLint *v); +WINGDIAPI void APIENTRY glRasterPos3s(GLshort x, GLshort y, GLshort z); +WINGDIAPI void APIENTRY glRasterPos3sv(const GLshort *v); +WINGDIAPI void APIENTRY glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +WINGDIAPI void APIENTRY glRasterPos4dv(const GLdouble *v); +WINGDIAPI void APIENTRY glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +WINGDIAPI void APIENTRY glRasterPos4fv(const GLfloat *v); +WINGDIAPI void APIENTRY glRasterPos4i(GLint x, GLint y, GLint z, GLint w); +WINGDIAPI void APIENTRY glRasterPos4iv(const GLint *v); +WINGDIAPI void APIENTRY glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); +WINGDIAPI void APIENTRY glRasterPos4sv(const GLshort *v); +WINGDIAPI void APIENTRY glReadBuffer(GLenum mode); +WINGDIAPI void APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +WINGDIAPI void APIENTRY glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +WINGDIAPI void APIENTRY glRectdv(const GLdouble *v1, const GLdouble *v2); +WINGDIAPI void APIENTRY glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +WINGDIAPI void APIENTRY glRectfv(const GLfloat *v1, const GLfloat *v2); +WINGDIAPI void APIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2); +WINGDIAPI void APIENTRY glRectiv(const GLint *v1, const GLint *v2); +WINGDIAPI void APIENTRY glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +WINGDIAPI void APIENTRY glRectsv(const GLshort *v1, const GLshort *v2); +WINGDIAPI GLint APIENTRY glRenderMode(GLenum mode); +WINGDIAPI void APIENTRY glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +WINGDIAPI void APIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +WINGDIAPI void APIENTRY glScaled(GLdouble x, GLdouble y, GLdouble z); +WINGDIAPI void APIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z); +WINGDIAPI void APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height); +WINGDIAPI void APIENTRY glSelectBuffer(GLsizei size, GLuint *buffer); +WINGDIAPI void APIENTRY glShadeModel(GLenum mode); +WINGDIAPI void APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask); +WINGDIAPI void APIENTRY glStencilMask(GLuint mask); +WINGDIAPI void APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); +WINGDIAPI void APIENTRY glTexCoord1d(GLdouble s); +WINGDIAPI void APIENTRY glTexCoord1dv(const GLdouble *v); +WINGDIAPI void APIENTRY glTexCoord1f(GLfloat s); +WINGDIAPI void APIENTRY glTexCoord1fv(const GLfloat *v); +WINGDIAPI void APIENTRY glTexCoord1i(GLint s); +WINGDIAPI void APIENTRY glTexCoord1iv(const GLint *v); +WINGDIAPI void APIENTRY glTexCoord1s(GLshort s); +WINGDIAPI void APIENTRY glTexCoord1sv(const GLshort *v); +WINGDIAPI void APIENTRY glTexCoord2d(GLdouble s, GLdouble t); +WINGDIAPI void APIENTRY glTexCoord2dv(const GLdouble *v); +WINGDIAPI void APIENTRY glTexCoord2f(GLfloat s, GLfloat t); +WINGDIAPI void APIENTRY glTexCoord2fv(const GLfloat *v); +WINGDIAPI void APIENTRY glTexCoord2i(GLint s, GLint t); +WINGDIAPI void APIENTRY glTexCoord2iv(const GLint *v); +WINGDIAPI void APIENTRY glTexCoord2s(GLshort s, GLshort t); +WINGDIAPI void APIENTRY glTexCoord2sv(const GLshort *v); +WINGDIAPI void APIENTRY glTexCoord3d(GLdouble s, GLdouble t, GLdouble r); +WINGDIAPI void APIENTRY glTexCoord3dv(const GLdouble *v); +WINGDIAPI void APIENTRY glTexCoord3f(GLfloat s, GLfloat t, GLfloat r); +WINGDIAPI void APIENTRY glTexCoord3fv(const GLfloat *v); +WINGDIAPI void APIENTRY glTexCoord3i(GLint s, GLint t, GLint r); +WINGDIAPI void APIENTRY glTexCoord3iv(const GLint *v); +WINGDIAPI void APIENTRY glTexCoord3s(GLshort s, GLshort t, GLshort r); +WINGDIAPI void APIENTRY glTexCoord3sv(const GLshort *v); +WINGDIAPI void APIENTRY glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); +WINGDIAPI void APIENTRY glTexCoord4dv(const GLdouble *v); +WINGDIAPI void APIENTRY glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); +WINGDIAPI void APIENTRY glTexCoord4fv(const GLfloat *v); +WINGDIAPI void APIENTRY glTexCoord4i(GLint s, GLint t, GLint r, GLint q); +WINGDIAPI void APIENTRY glTexCoord4iv(const GLint *v); +WINGDIAPI void APIENTRY glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); +WINGDIAPI void APIENTRY glTexCoord4sv(const GLshort *v); +WINGDIAPI void APIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param); +WINGDIAPI void APIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glTexGend(GLenum coord, GLenum pname, GLdouble param); +WINGDIAPI void APIENTRY glTexGendv(GLenum coord, GLenum pname, const GLdouble *params); +WINGDIAPI void APIENTRY glTexGenf(GLenum coord, GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glTexGeni(GLenum coord, GLenum pname, GLint param); +WINGDIAPI void APIENTRY glTexGeniv(GLenum coord, GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +WINGDIAPI void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +WINGDIAPI void APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param); +WINGDIAPI void APIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params); +WINGDIAPI void APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param); +WINGDIAPI void APIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint *params); +WINGDIAPI void APIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +WINGDIAPI void APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +WINGDIAPI void APIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z); +WINGDIAPI void APIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z); +WINGDIAPI void APIENTRY glVertex2d(GLdouble x, GLdouble y); +WINGDIAPI void APIENTRY glVertex2dv(const GLdouble *v); +WINGDIAPI void APIENTRY glVertex2f(GLfloat x, GLfloat y); +WINGDIAPI void APIENTRY glVertex2fv(const GLfloat *v); +WINGDIAPI void APIENTRY glVertex2i(GLint x, GLint y); +WINGDIAPI void APIENTRY glVertex2iv(const GLint *v); +WINGDIAPI void APIENTRY glVertex2s(GLshort x, GLshort y); +WINGDIAPI void APIENTRY glVertex2sv(const GLshort *v); +WINGDIAPI void APIENTRY glVertex3d(GLdouble x, GLdouble y, GLdouble z); +WINGDIAPI void APIENTRY glVertex3dv(const GLdouble *v); +WINGDIAPI void APIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z); +WINGDIAPI void APIENTRY glVertex3fv(const GLfloat *v); +WINGDIAPI void APIENTRY glVertex3i(GLint x, GLint y, GLint z); +WINGDIAPI void APIENTRY glVertex3iv(const GLint *v); +WINGDIAPI void APIENTRY glVertex3s(GLshort x, GLshort y, GLshort z); +WINGDIAPI void APIENTRY glVertex3sv(const GLshort *v); +WINGDIAPI void APIENTRY glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +WINGDIAPI void APIENTRY glVertex4dv(const GLdouble *v); +WINGDIAPI void APIENTRY glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +WINGDIAPI void APIENTRY glVertex4fv(const GLfloat *v); +WINGDIAPI void APIENTRY glVertex4i(GLint x, GLint y, GLint z, GLint w); +WINGDIAPI void APIENTRY glVertex4iv(const GLint *v); +WINGDIAPI void APIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); +WINGDIAPI void APIENTRY glVertex4sv(const GLshort *v); +WINGDIAPI void APIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +WINGDIAPI void APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height); + +*/
\ No newline at end of file diff --git a/libjin/Graphics/Shader.cpp b/libjin/Graphics/Shader.cpp index 0f9dab6..252401f 100644 --- a/libjin/Graphics/Shader.cpp +++ b/libjin/Graphics/Shader.cpp @@ -17,7 +17,7 @@ namespace graphics * SHADER_FORMAT_SIZE * formatShader */ - #include "base.shader.h" + #include "Shaders/base.shader.h" /** * https://stackoverflow.com/questions/27941496/use-sampler-without-passing-through-value @@ -157,11 +157,10 @@ namespace graphics // TODO: 쳣 return; } + gl.activeTexUnit(unit); glUniform1i(location, unit); - glActiveTexture(GL_TEXTURE0 + unit); - glBindTexture(GL_TEXTURE_2D, tex->getTexture()); - - glActiveTexture(GL_TEXTURE0); + gl.bindTexture(tex->getTexture()); + gl.activeTexUnit(0); } void JSLProgram::sendCanvas(const char* variable, const Canvas* canvas) diff --git a/libjin/Graphics/base.shader.h b/libjin/Graphics/Shaders/base.shader.h index 080e27e..080e27e 100644 --- a/libjin/Graphics/base.shader.h +++ b/libjin/Graphics/Shaders/base.shader.h diff --git a/libjin/Graphics/Shaders/default.shader.h b/libjin/Graphics/Shaders/default.shader.h new file mode 100644 index 0000000..1fd4542 --- /dev/null +++ b/libjin/Graphics/Shaders/default.shader.h @@ -0,0 +1,7 @@ +// Ĭshader +static const char* default_shader = R"( +Color effect(Color col, Texture tex, vec2 uv, vec2 xy) +{ + return Texel(tex, uv); +} +)";
\ No newline at end of file diff --git a/libjin/Graphics/font.shader.h b/libjin/Graphics/Shaders/font.shader.h index 27a9354..10284f0 100644 --- a/libjin/Graphics/font.shader.h +++ b/libjin/Graphics/Shaders/font.shader.h @@ -4,6 +4,6 @@ Color effect(Color col, Texture tex, vec2 uv, vec2 xy) { // r Color c = Texel(tex, uv); - return Vec4(col.rgb, c.r); + return Vec4(col.rgb, c.a); } )font_shader";
\ No newline at end of file diff --git a/test/05Font/main.cpp b/test/05Font/main.cpp index da65c2e..51dc628 100644 --- a/test/05Font/main.cpp +++ b/test/05Font/main.cpp @@ -25,7 +25,7 @@ Color effect(Color col, Texture tex, vec2 uv, vec2 screen) Filesystem* fs = Filesystem::get(); fs->mount("../Debug"); Buffer buffer; - fs->read("font.ttf", &buffer); + fs->read("font2.ttf", &buffer); data = FontData::createFontData((const unsigned char*)buffer.data, buffer.size); font = Font::createFont(data, 14); //canvas = Canvas::createCanvas(100, 100); @@ -75,7 +75,7 @@ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 》开始在日本东京电视台播出。2004年,漫画进而改编成电影。2006年,漩涡鸣人入选 美国《新闻周刊》日文版于10月18日发行的特集中选出的“全世界最受尊敬的100位日本 人”。[2] -)", 10, 10 + 15 * 2, 15, 0); +)", 10, 10 + 15 * 2, 17, 0); //font->print(u8"你好世界!", 10, 10 + 15*3); //font->render(page); glColor4f(1, 1, 1, 1); |