fix most warnings with -pendantic
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ----------------------------------------------------------------------------
|
||||
// Simple sample to prove that Assimp is easy to use with OpenGL.
|
||||
// It takes a file name as command line parameter, loads it using standard
|
||||
// settings and displays it.
|
||||
@@ -9,29 +9,30 @@
|
||||
// The vc8 solution links against assimp-release-dll_win32 - be sure to
|
||||
// have this configuration built.
|
||||
// ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <GL/glut.h>
|
||||
|
||||
// assimp include files. These three are usually needed.
|
||||
/* assimp include files. These three are usually needed. */
|
||||
#include <assimp/cimport.h>
|
||||
#include <assimp/scene.h>
|
||||
#include <assimp/postprocess.h>
|
||||
|
||||
// the global Assimp scene object
|
||||
/* the global Assimp scene object */
|
||||
const struct aiScene* scene = NULL;
|
||||
GLuint scene_list = 0;
|
||||
struct aiVector3D scene_min, scene_max, scene_center;
|
||||
|
||||
// current rotation angle
|
||||
/* current rotation angle */
|
||||
static float angle = 0.f;
|
||||
|
||||
#define aisgl_min(x,y) (x<y?x:y)
|
||||
#define aisgl_max(x,y) (y>x?y:x)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void reshape(int width, int height)
|
||||
{
|
||||
const double aspectRatio = (float) width / height, fieldOfView = 45.0;
|
||||
@@ -43,7 +44,7 @@ void reshape(int width, int height)
|
||||
glViewport(0, 0, width, height);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void get_bounding_box_for_node (const struct aiNode* nd,
|
||||
struct aiVector3D* min,
|
||||
struct aiVector3D* max,
|
||||
@@ -78,7 +79,7 @@ void get_bounding_box_for_node (const struct aiNode* nd,
|
||||
*trafo = prev;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void get_bounding_box (struct aiVector3D* min, struct aiVector3D* max)
|
||||
{
|
||||
struct aiMatrix4x4 trafo;
|
||||
@@ -89,7 +90,7 @@ void get_bounding_box (struct aiVector3D* min, struct aiVector3D* max)
|
||||
get_bounding_box_for_node(scene->mRootNode,min,max,&trafo);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void color4_to_float4(const struct aiColor4D *c, float f[4])
|
||||
{
|
||||
f[0] = c->r;
|
||||
@@ -98,7 +99,7 @@ void color4_to_float4(const struct aiColor4D *c, float f[4])
|
||||
f[3] = c->a;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void set_float4(float f[4], float a, float b, float c, float d)
|
||||
{
|
||||
f[0] = a;
|
||||
@@ -107,7 +108,7 @@ void set_float4(float f[4], float a, float b, float c, float d)
|
||||
f[3] = d;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void apply_material(const struct aiMaterial *mtl)
|
||||
{
|
||||
float c[4];
|
||||
@@ -173,19 +174,19 @@ void apply_material(const struct aiMaterial *mtl)
|
||||
glEnable(GL_CULL_FACE);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int n = 0, t;
|
||||
struct aiMatrix4x4 m = nd->mTransformation;
|
||||
|
||||
// update transform
|
||||
/* update transform */
|
||||
aiTransposeMatrix4(&m);
|
||||
glPushMatrix();
|
||||
glMultMatrixf((float*)&m);
|
||||
|
||||
// draw all meshes assigned to this node
|
||||
/* draw all meshes assigned to this node */
|
||||
for (; n < nd->mNumMeshes; ++n) {
|
||||
const struct aiMesh* mesh = scene->mMeshes[nd->mMeshes[n]];
|
||||
|
||||
@@ -224,7 +225,7 @@ void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
||||
|
||||
}
|
||||
|
||||
// draw all children
|
||||
/* draw all children */
|
||||
for (n = 0; n < nd->mNumChildren; ++n) {
|
||||
recursive_render(sc, nd->mChildren[n]);
|
||||
}
|
||||
@@ -232,7 +233,7 @@ void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void do_motion (void)
|
||||
{
|
||||
static GLint prev_time = 0;
|
||||
@@ -244,7 +245,7 @@ void do_motion (void)
|
||||
prev_time = time;
|
||||
|
||||
frames += 1;
|
||||
if ((time - prev_fps_time) > 1000) // update every seconds
|
||||
if ((time - prev_fps_time) > 1000) /* update every seconds */
|
||||
{
|
||||
int current_fps = frames * 1000 / (time - prev_fps_time);
|
||||
printf("%d fps\n", current_fps);
|
||||
@@ -256,7 +257,7 @@ void do_motion (void)
|
||||
glutPostRedisplay ();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
void display(void)
|
||||
{
|
||||
float tmp;
|
||||
@@ -267,27 +268,27 @@ void display(void)
|
||||
glLoadIdentity();
|
||||
gluLookAt(0.f,0.f,3.f,0.f,0.f,-5.f,0.f,1.f,0.f);
|
||||
|
||||
// rotate it around the y axis
|
||||
/* rotate it around the y axis */
|
||||
glRotatef(angle,0.f,1.f,0.f);
|
||||
|
||||
// scale the whole asset to fit into our view frustum
|
||||
/* scale the whole asset to fit into our view frustum */
|
||||
tmp = scene_max.x-scene_min.x;
|
||||
tmp = aisgl_max(scene_max.y - scene_min.y,tmp);
|
||||
tmp = aisgl_max(scene_max.z - scene_min.z,tmp);
|
||||
tmp = 1.f / tmp;
|
||||
glScalef(tmp, tmp, tmp);
|
||||
|
||||
// center the model
|
||||
/* center the model */
|
||||
glTranslatef( -scene_center.x, -scene_center.y, -scene_center.z );
|
||||
|
||||
// if the display list has not been made yet, create a new one and
|
||||
// fill it with scene contents
|
||||
/* if the display list has not been made yet, create a new one and
|
||||
fill it with scene contents */
|
||||
if(scene_list == 0) {
|
||||
scene_list = glGenLists(1);
|
||||
glNewList(scene_list, GL_COMPILE);
|
||||
// now begin at the root node of the imported data and traverse
|
||||
// the scenegraph by multiplying subsequent local transforms
|
||||
// together on GL's matrix stack.
|
||||
/* now begin at the root node of the imported data and traverse
|
||||
the scenegraph by multiplying subsequent local transforms
|
||||
together on GL's matrix stack. */
|
||||
recursive_render(scene, scene->mRootNode);
|
||||
glEndList();
|
||||
}
|
||||
@@ -299,11 +300,11 @@ void display(void)
|
||||
do_motion();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
int loadasset (const char* path)
|
||||
{
|
||||
// we are taking one of the postprocessing presets to avoid
|
||||
// spelling out 20+ single postprocessing flags here.
|
||||
/* we are taking one of the postprocessing presets to avoid
|
||||
spelling out 20+ single postprocessing flags here. */
|
||||
scene = aiImportFile(path,aiProcessPreset_TargetRealtime_MaxQuality);
|
||||
|
||||
if (scene) {
|
||||
@@ -316,7 +317,7 @@ int loadasset (const char* path)
|
||||
return 1;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
struct aiLogStream stream;
|
||||
@@ -330,21 +331,21 @@ int main(int argc, char **argv)
|
||||
glutDisplayFunc(display);
|
||||
glutReshapeFunc(reshape);
|
||||
|
||||
// get a handle to the predefined STDOUT log stream and attach
|
||||
// it to the logging system. It remains active for all further
|
||||
// calls to aiImportFile(Ex) and aiApplyPostProcessing.
|
||||
/* get a handle to the predefined STDOUT log stream and attach
|
||||
it to the logging system. It remains active for all further
|
||||
calls to aiImportFile(Ex) and aiApplyPostProcessing. */
|
||||
stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL);
|
||||
aiAttachLogStream(&stream);
|
||||
|
||||
// ... same procedure, but this stream now writes the
|
||||
// log messages to assimp_log.txt
|
||||
/* ... same procedure, but this stream now writes the
|
||||
log messages to assimp_log.txt */
|
||||
stream = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"assimp_log.txt");
|
||||
aiAttachLogStream(&stream);
|
||||
|
||||
// the model name can be specified on the command line. If none
|
||||
// is specified, we try to locate one of the more expressive test
|
||||
// models from the repository (/models-nonbsd may be missing in
|
||||
// some distributions so we need a fallback from /models!).
|
||||
/* the model name can be specified on the command line. If none
|
||||
is specified, we try to locate one of the more expressive test
|
||||
models from the repository (/models-nonbsd may be missing in
|
||||
some distributions so we need a fallback from /models!). */
|
||||
if( 0 != loadasset( argc >= 2 ? argv[1] : "../../test/models-nonbsd/X/dwarf.x")) {
|
||||
if( argc != 1 || (0 != loadasset( "../../../../test/models-nonbsd/X/dwarf.x") && 0 != loadasset( "../../test/models/X/Testwuson.X"))) {
|
||||
return -1;
|
||||
@@ -354,14 +355,14 @@ int main(int argc, char **argv)
|
||||
glClearColor(0.1f,0.1f,0.1f,1.f);
|
||||
|
||||
glEnable(GL_LIGHTING);
|
||||
glEnable(GL_LIGHT0); // Uses default lighting parameters
|
||||
glEnable(GL_LIGHT0); /* Uses default lighting parameters */
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
|
||||
glEnable(GL_NORMALIZE);
|
||||
|
||||
// XXX docs say all polygons are emitted CCW, but tests show that some aren't.
|
||||
/* XXX docs say all polygons are emitted CCW, but tests show that some aren't. */
|
||||
if(getenv("MODEL_IS_BROKEN"))
|
||||
glFrontFace(GL_CW);
|
||||
|
||||
@@ -370,14 +371,15 @@ int main(int argc, char **argv)
|
||||
glutGet(GLUT_ELAPSED_TIME);
|
||||
glutMainLoop();
|
||||
|
||||
// cleanup - calling 'aiReleaseImport' is important, as the library
|
||||
// keeps internal resources until the scene is freed again. Not
|
||||
// doing so can cause severe resource leaking.
|
||||
/* cleanup - calling 'aiReleaseImport' is important, as the library
|
||||
keeps internal resources until the scene is freed again. Not
|
||||
doing so can cause severe resource leaking. */
|
||||
aiReleaseImport(scene);
|
||||
|
||||
// We added a log stream to the library, it's our job to disable it
|
||||
// again. This will definitely release the last resources allocated
|
||||
// by Assimp.
|
||||
/* We added a log stream to the library, it's our job to disable it
|
||||
again. This will definitely release the last resources allocated
|
||||
by Assimp.*/
|
||||
aiDetachAllLogStreams();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user