implement setter for texture coord 2 (u,v) vertex attribute so it can be used by FreeGLUT
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1570 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
1af0007c38
commit
67cd64fd7a
@ -239,6 +239,7 @@ FGAPI void FGAPIENTRY glutInitWarningFunc( void (* callback)( const char *fmt
|
||||
/* OpenGL >= 2.0 support */
|
||||
FGAPI void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib);
|
||||
FGAPI void FGAPIENTRY glutSetVertexAttribNormal(GLint attrib);
|
||||
FGAPI void FGAPIENTRY glutSetVertexAttribTexCoord2(GLint attrib);
|
||||
|
||||
/* Mobile platforms lifecycle */
|
||||
FGAPI void FGAPIENTRY glutInitContextFunc(void (* callback)());
|
||||
|
@ -205,6 +205,9 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
|
||||
CHECK_NAME(glutInitContextFunc)
|
||||
CHECK_NAME(glutPauseFunc)
|
||||
CHECK_NAME(glutResumeFunc)
|
||||
CHECK_NAME(glutSetVertexAttribCoord3)
|
||||
CHECK_NAME(glutSetVertexAttribNormal)
|
||||
CHECK_NAME(glutSetVertexAttribTexCoord2)
|
||||
#undef CHECK_NAME
|
||||
|
||||
return NULL;
|
||||
|
@ -186,7 +186,7 @@ void fghDrawGeometrySolid(GLfloat *vertices, GLfloat *normals, GLfloat *textcs,
|
||||
{
|
||||
GLint attribute_v_coord = fgStructure.CurrentWindow->Window.attribute_v_coord;
|
||||
GLint attribute_v_normal = fgStructure.CurrentWindow->Window.attribute_v_normal;
|
||||
GLint attribute_v_texture = -1; // TODO!!!
|
||||
GLint attribute_v_texture = fgStructure.CurrentWindow->Window.attribute_v_texture;
|
||||
|
||||
if (fgStructure.CurrentWindow->State.VisualizeNormals)
|
||||
/* generate normals for each vertex to be drawn as well */
|
||||
|
@ -37,6 +37,11 @@ void FGAPIENTRY glutSetVertexAttribNormal(GLint attrib) {
|
||||
fgStructure.CurrentWindow->Window.attribute_v_normal = attrib;
|
||||
}
|
||||
|
||||
void FGAPIENTRY glutSetVertexAttribTexCoord2(GLint attrib) {
|
||||
if (fgStructure.CurrentWindow != NULL)
|
||||
fgStructure.CurrentWindow->Window.attribute_v_texture = attrib;
|
||||
}
|
||||
|
||||
void fgInitGL2() {
|
||||
#ifndef GL_ES_VERSION_2_0
|
||||
fgState.HasOpenGL20 = 0;
|
||||
|
@ -371,8 +371,14 @@ struct tagSFG_Context
|
||||
SFG_PlatformContext pContext; /* The window's FBConfig (X11) or device context (Windows) */
|
||||
|
||||
int DoubleBuffered; /* Treat the window as double-buffered */
|
||||
|
||||
/* When drawing geometry to vertex attribute buffers, user specifies
|
||||
* the attribute indices for vertices, normals and/or texture coords
|
||||
* to freeglut. Those are stored here
|
||||
*/
|
||||
GLint attribute_v_coord;
|
||||
GLint attribute_v_normal;
|
||||
GLint attribute_v_texture;
|
||||
};
|
||||
|
||||
|
||||
|
@ -148,6 +148,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
|
||||
#endif
|
||||
window->Window.attribute_v_coord = -1;
|
||||
window->Window.attribute_v_normal = -1;
|
||||
window->Window.attribute_v_texture = -1;
|
||||
|
||||
fgInitGL2();
|
||||
|
||||
|
@ -160,3 +160,6 @@ EXPORTS
|
||||
glutInitContextFunc
|
||||
glutPauseFunc
|
||||
glutResumeFunc
|
||||
glutSetVertexAttribCoord3
|
||||
glutSetVertexAttribNormal
|
||||
glutSetVertexAttribTexCoord2
|
||||
|
Reference in New Issue
Block a user