]> git.lizzy.rs Git - shadowclad.git/blob - debugutil.c
Generate header dependencies automatically
[shadowclad.git] / debugutil.c
1 #include <GL/gl.h>
2 #include <string.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5
6 #include "assimp_types.h"
7
8 char* getGlInfoString() {
9         const char* glVersion = (const char*) glGetString(GL_VERSION);
10         const char* glslVersion = (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION);
11         const char* glRenderer = (const char*) glGetString(GL_RENDERER);
12         
13         size_t glInfoLength = strlen("OpenGL  - GLSL  - ")
14                               + strlen(glVersion)
15                               + strlen(glslVersion)
16                               + strlen(glRenderer);
17         
18         char* glInfoString = malloc(glInfoLength + sizeof(char));
19         sprintf(glInfoString,
20                     "OpenGL %s - GLSL %s - %s",
21                         glVersion,
22                         glslVersion,
23                         glRenderer);
24         
25         return glInfoString;
26 }
27
28 void dumpScene(FILE* stream, const AiScene* scene) {
29         if (scene == NULL) {
30                 fprintf(stream, "NULL");
31                 return;
32         }
33         fprintf(stream, "{ mFlags = %u, mRootNode = %p, mNumMeshes = %u, mMeshes = %p, mNumMaterials = %u, mMaterials = %p, mNumAnimations = %u, mAnimations = %p, mNumTextures = %u, mTextures = %p, mNumLights = %u, mLights = %p }",
34                         (*scene).mFlags,
35                         (void*) (*scene).mRootNode,
36                         (*scene).mNumMeshes,
37                         (void*) (*scene).mMeshes,
38                         (*scene).mNumMaterials,
39                         (void*) (*scene).mMaterials,
40                         (*scene).mNumAnimations,
41                         (void*) (*scene).mAnimations,
42                         (*scene).mNumTextures,
43                         (void*) (*scene).mTextures,
44                         (*scene).mNumLights,
45                         (void*) (*scene).mLights);
46 }
47
48 void dumpNode(FILE* stream, const AiNode* node) {
49         if (node == NULL) {
50                 fprintf(stream, "NULL");
51                 return;
52         }
53         fprintf(stream, "{ mName = %s, mNumMeshes = %u, mMeshes = %p }",
54                         (*node).mName.data,
55                         (*node).mNumMeshes,
56                         (void*) (*node).mMeshes);
57 }