note on use of gluint/glushort in fg_geometry
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1563 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
074ae923ab
commit
dbad51f95b
@ -30,6 +30,18 @@
|
|||||||
#include "fg_gl2.h"
|
#include "fg_gl2.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A note: We do not use the GLuint data type for vertex index arrays
|
||||||
|
* in this code as Open GL ES1 only supports GLushort. This affects the
|
||||||
|
* cylindrical objects only (Torus, Sphere, Cylinder and Cone) and limits
|
||||||
|
* their number of vertices to 65535 (2^16-1). Thats about 256*256
|
||||||
|
* subdivisions, which is sufficient for just about any usage case, so
|
||||||
|
* I am not going to worry about it for now.
|
||||||
|
* One could do compile time detection of the gluint type through CMake,
|
||||||
|
* but it is likely that we'll eventually move to runtime selection
|
||||||
|
* of OpenGL or GLES1/2, which would make that strategy useless...
|
||||||
|
*/
|
||||||
|
|
||||||
/* declare for drawing using the different OpenGL versions here so we can
|
/* declare for drawing using the different OpenGL versions here so we can
|
||||||
have a nice code order below */
|
have a nice code order below */
|
||||||
#ifndef GL_ES_VERSION_2_0
|
#ifndef GL_ES_VERSION_2_0
|
||||||
@ -1155,9 +1167,7 @@ static void fghGenerateSphere(GLfloat radius, GLint slices, GLint stacks, GLfloa
|
|||||||
*nVert = slices*(stacks-1)+2;
|
*nVert = slices*(stacks-1)+2;
|
||||||
if ((*nVert) > 65535)
|
if ((*nVert) > 65535)
|
||||||
/*
|
/*
|
||||||
* limit of glushort, thats 256*256 subdivisions, should be enough in practice.
|
* limit of glushort, thats 256*256 subdivisions, should be enough in practice. See note above
|
||||||
* But still:
|
|
||||||
* TODO: must have a better solution than this low limit, at least for architectures where gluint is available
|
|
||||||
*/
|
*/
|
||||||
fgWarning("fghGenerateSphere: too many slices or stacks requested, indices will wrap");
|
fgWarning("fghGenerateSphere: too many slices or stacks requested, indices will wrap");
|
||||||
|
|
||||||
@ -1252,9 +1262,7 @@ void fghGenerateCone(
|
|||||||
|
|
||||||
if ((*nVert) > 65535)
|
if ((*nVert) > 65535)
|
||||||
/*
|
/*
|
||||||
* limit of glushort, thats 256*256 subdivisions, should be enough in practice.
|
* limit of glushort, thats 256*256 subdivisions, should be enough in practice. See note above
|
||||||
* But still:
|
|
||||||
* TODO: must have a better solution than this low limit, at least for architectures where gluint is available
|
|
||||||
*/
|
*/
|
||||||
fgWarning("fghGenerateCone: too many slices or stacks requested, indices will wrap");
|
fgWarning("fghGenerateCone: too many slices or stacks requested, indices will wrap");
|
||||||
|
|
||||||
@ -1339,9 +1347,7 @@ void fghGenerateCylinder(
|
|||||||
|
|
||||||
if ((*nVert) > 65535)
|
if ((*nVert) > 65535)
|
||||||
/*
|
/*
|
||||||
* limit of glushort, thats 256*256 subdivisions, should be enough in practice.
|
* limit of glushort, thats 256*256 subdivisions, should be enough in practice. See note above
|
||||||
* But still:
|
|
||||||
* TODO: must have a better solution than this low limit, at least for architectures where gluint is available
|
|
||||||
*/
|
*/
|
||||||
fgWarning("fghGenerateCylinder: too many slices or stacks requested, indices will wrap");
|
fgWarning("fghGenerateCylinder: too many slices or stacks requested, indices will wrap");
|
||||||
|
|
||||||
@ -1443,9 +1449,7 @@ void fghGenerateTorus(
|
|||||||
|
|
||||||
if ((*nVert) > 65535)
|
if ((*nVert) > 65535)
|
||||||
/*
|
/*
|
||||||
* limit of glushort, thats 256*256 subdivisions, should be enough in practice.
|
* limit of glushort, thats 256*256 subdivisions, should be enough in practice. See note above
|
||||||
* But still:
|
|
||||||
* TODO: must have a better solution than this low limit, at least for architectures where gluint is available
|
|
||||||
*/
|
*/
|
||||||
fgWarning("fghGenerateTorus: too many slices or stacks requested, indices will wrap");
|
fgWarning("fghGenerateTorus: too many slices or stacks requested, indices will wrap");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user