Parse struct descriptions (#2214)

* Update struct parser to parse from lines buffer

* Parse struct description

* Fix erroneous comment
This commit is contained in:
Benedek Szilvasy 2021-12-16 15:34:55 +00:00 committed by GitHub
parent 60b1f29783
commit 51c929ef21
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 158 additions and 186 deletions

View file

@ -2,7 +2,7 @@
"structs": [ "structs": [
{ {
"name": "Vector2", "name": "Vector2",
"description": "", "description": "Vector2, 2 components",
"fields": [ "fields": [
{ {
"name": "x", "name": "x",
@ -18,7 +18,7 @@
}, },
{ {
"name": "Vector3", "name": "Vector3",
"description": "", "description": "Vector3, 3 components",
"fields": [ "fields": [
{ {
"name": "x", "name": "x",
@ -39,7 +39,7 @@
}, },
{ {
"name": "Vector4", "name": "Vector4",
"description": "", "description": "Vector4, 4 components",
"fields": [ "fields": [
{ {
"name": "x", "name": "x",
@ -65,7 +65,7 @@
}, },
{ {
"name": "Matrix", "name": "Matrix",
"description": "", "description": "Matrix, 4x4 components, column major, OpenGL style, right handed",
"fields": [ "fields": [
{ {
"name": "m0, m4, m8, m12", "name": "m0, m4, m8, m12",
@ -91,7 +91,7 @@
}, },
{ {
"name": "Color", "name": "Color",
"description": "", "description": "Color, 4 components, R8G8B8A8 (32bit)",
"fields": [ "fields": [
{ {
"name": "r", "name": "r",
@ -117,7 +117,7 @@
}, },
{ {
"name": "Rectangle", "name": "Rectangle",
"description": "", "description": "Rectangle, 4 components",
"fields": [ "fields": [
{ {
"name": "x", "name": "x",
@ -143,7 +143,7 @@
}, },
{ {
"name": "Image", "name": "Image",
"description": "", "description": "Image, pixel data stored in CPU memory (RAM)",
"fields": [ "fields": [
{ {
"name": "data", "name": "data",
@ -174,7 +174,7 @@
}, },
{ {
"name": "Texture", "name": "Texture",
"description": "", "description": "Texture, tex data stored in GPU memory (VRAM)",
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
@ -205,7 +205,7 @@
}, },
{ {
"name": "RenderTexture", "name": "RenderTexture",
"description": "", "description": "RenderTexture, fbo for texture rendering",
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
@ -226,7 +226,7 @@
}, },
{ {
"name": "NPatchInfo", "name": "NPatchInfo",
"description": "", "description": "NPatchInfo, n-patch layout info",
"fields": [ "fields": [
{ {
"name": "source", "name": "source",
@ -262,7 +262,7 @@
}, },
{ {
"name": "GlyphInfo", "name": "GlyphInfo",
"description": "", "description": "GlyphInfo, font characters glyphs info",
"fields": [ "fields": [
{ {
"name": "value", "name": "value",
@ -293,7 +293,7 @@
}, },
{ {
"name": "Font", "name": "Font",
"description": "", "description": "Font, font texture and GlyphInfo array data",
"fields": [ "fields": [
{ {
"name": "baseSize", "name": "baseSize",
@ -329,7 +329,7 @@
}, },
{ {
"name": "Camera3D", "name": "Camera3D",
"description": "", "description": "Camera, defines position/orientation in 3d space",
"fields": [ "fields": [
{ {
"name": "position", "name": "position",
@ -360,7 +360,7 @@
}, },
{ {
"name": "Camera2D", "name": "Camera2D",
"description": "", "description": "Camera2D, defines position/orientation in 2d space",
"fields": [ "fields": [
{ {
"name": "offset", "name": "offset",
@ -386,7 +386,7 @@
}, },
{ {
"name": "Mesh", "name": "Mesh",
"description": "", "description": "Mesh, vertex data and vao/vbo",
"fields": [ "fields": [
{ {
"name": "vertexCount", "name": "vertexCount",
@ -467,7 +467,7 @@
}, },
{ {
"name": "Shader", "name": "Shader",
"description": "", "description": "Shader",
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
@ -483,7 +483,7 @@
}, },
{ {
"name": "MaterialMap", "name": "MaterialMap",
"description": "", "description": "MaterialMap",
"fields": [ "fields": [
{ {
"name": "texture", "name": "texture",
@ -504,7 +504,7 @@
}, },
{ {
"name": "Material", "name": "Material",
"description": "", "description": "Material, includes shader and maps",
"fields": [ "fields": [
{ {
"name": "shader", "name": "shader",
@ -525,7 +525,7 @@
}, },
{ {
"name": "Transform", "name": "Transform",
"description": "", "description": "Transform, vectex transformation data",
"fields": [ "fields": [
{ {
"name": "translation", "name": "translation",
@ -546,7 +546,7 @@
}, },
{ {
"name": "BoneInfo", "name": "BoneInfo",
"description": "", "description": "Bone, skeletal animation bone",
"fields": [ "fields": [
{ {
"name": "name[32]", "name": "name[32]",
@ -562,7 +562,7 @@
}, },
{ {
"name": "Model", "name": "Model",
"description": "", "description": "Model, meshes, materials and animation data",
"fields": [ "fields": [
{ {
"name": "transform", "name": "transform",
@ -613,7 +613,7 @@
}, },
{ {
"name": "ModelAnimation", "name": "ModelAnimation",
"description": "", "description": "ModelAnimation",
"fields": [ "fields": [
{ {
"name": "boneCount", "name": "boneCount",
@ -639,7 +639,7 @@
}, },
{ {
"name": "Ray", "name": "Ray",
"description": "", "description": "Ray, ray for raycasting",
"fields": [ "fields": [
{ {
"name": "position", "name": "position",
@ -655,7 +655,7 @@
}, },
{ {
"name": "RayCollision", "name": "RayCollision",
"description": "", "description": "RayCollision, ray hit information",
"fields": [ "fields": [
{ {
"name": "hit", "name": "hit",
@ -681,7 +681,7 @@
}, },
{ {
"name": "BoundingBox", "name": "BoundingBox",
"description": "", "description": "BoundingBox",
"fields": [ "fields": [
{ {
"name": "min", "name": "min",
@ -697,7 +697,7 @@
}, },
{ {
"name": "Wave", "name": "Wave",
"description": "", "description": "Wave, audio wave data",
"fields": [ "fields": [
{ {
"name": "frameCount", "name": "frameCount",
@ -728,7 +728,7 @@
}, },
{ {
"name": "AudioStream", "name": "AudioStream",
"description": "", "description": "AudioStream, custom audio stream",
"fields": [ "fields": [
{ {
"name": "buffer", "name": "buffer",
@ -754,7 +754,7 @@
}, },
{ {
"name": "Sound", "name": "Sound",
"description": "", "description": "Sound",
"fields": [ "fields": [
{ {
"name": "stream", "name": "stream",
@ -770,7 +770,7 @@
}, },
{ {
"name": "Music", "name": "Music",
"description": "", "description": "Music, audio stream, anything longer than ~10 seconds should be streamed",
"fields": [ "fields": [
{ {
"name": "stream", "name": "stream",
@ -801,7 +801,7 @@
}, },
{ {
"name": "VrDeviceInfo", "name": "VrDeviceInfo",
"description": "", "description": "VrDeviceInfo, Head-Mounted-Display device parameters",
"fields": [ "fields": [
{ {
"name": "hResolution", "name": "hResolution",
@ -857,7 +857,7 @@
}, },
{ {
"name": "VrStereoConfig", "name": "VrStereoConfig",
"description": "", "description": "VrStereoConfig, VR stereo rendering configuration for simulator",
"fields": [ "fields": [
{ {
"name": "projection[2]", "name": "projection[2]",

View file

@ -2,7 +2,7 @@ return {
structs = { structs = {
{ {
name = "Vector2", name = "Vector2",
description = "", description = "Vector2, 2 components",
fields = { fields = {
{ {
name = "x", name = "x",
@ -18,7 +18,7 @@ return {
}, },
{ {
name = "Vector3", name = "Vector3",
description = "", description = "Vector3, 3 components",
fields = { fields = {
{ {
name = "x", name = "x",
@ -39,7 +39,7 @@ return {
}, },
{ {
name = "Vector4", name = "Vector4",
description = "", description = "Vector4, 4 components",
fields = { fields = {
{ {
name = "x", name = "x",
@ -65,7 +65,7 @@ return {
}, },
{ {
name = "Matrix", name = "Matrix",
description = "", description = "Matrix, 4x4 components, column major, OpenGL style, right handed",
fields = { fields = {
{ {
name = "m0, m4, m8, m12", name = "m0, m4, m8, m12",
@ -91,7 +91,7 @@ return {
}, },
{ {
name = "Color", name = "Color",
description = "", description = "Color, 4 components, R8G8B8A8 (32bit)",
fields = { fields = {
{ {
name = "r", name = "r",
@ -117,7 +117,7 @@ return {
}, },
{ {
name = "Rectangle", name = "Rectangle",
description = "", description = "Rectangle, 4 components",
fields = { fields = {
{ {
name = "x", name = "x",
@ -143,7 +143,7 @@ return {
}, },
{ {
name = "Image", name = "Image",
description = "", description = "Image, pixel data stored in CPU memory (RAM)",
fields = { fields = {
{ {
name = "data", name = "data",
@ -174,7 +174,7 @@ return {
}, },
{ {
name = "Texture", name = "Texture",
description = "", description = "Texture, tex data stored in GPU memory (VRAM)",
fields = { fields = {
{ {
name = "id", name = "id",
@ -205,7 +205,7 @@ return {
}, },
{ {
name = "RenderTexture", name = "RenderTexture",
description = "", description = "RenderTexture, fbo for texture rendering",
fields = { fields = {
{ {
name = "id", name = "id",
@ -226,7 +226,7 @@ return {
}, },
{ {
name = "NPatchInfo", name = "NPatchInfo",
description = "", description = "NPatchInfo, n-patch layout info",
fields = { fields = {
{ {
name = "source", name = "source",
@ -262,7 +262,7 @@ return {
}, },
{ {
name = "GlyphInfo", name = "GlyphInfo",
description = "", description = "GlyphInfo, font characters glyphs info",
fields = { fields = {
{ {
name = "value", name = "value",
@ -293,7 +293,7 @@ return {
}, },
{ {
name = "Font", name = "Font",
description = "", description = "Font, font texture and GlyphInfo array data",
fields = { fields = {
{ {
name = "baseSize", name = "baseSize",
@ -329,7 +329,7 @@ return {
}, },
{ {
name = "Camera3D", name = "Camera3D",
description = "", description = "Camera, defines position/orientation in 3d space",
fields = { fields = {
{ {
name = "position", name = "position",
@ -360,7 +360,7 @@ return {
}, },
{ {
name = "Camera2D", name = "Camera2D",
description = "", description = "Camera2D, defines position/orientation in 2d space",
fields = { fields = {
{ {
name = "offset", name = "offset",
@ -386,7 +386,7 @@ return {
}, },
{ {
name = "Mesh", name = "Mesh",
description = "", description = "Mesh, vertex data and vao/vbo",
fields = { fields = {
{ {
name = "vertexCount", name = "vertexCount",
@ -467,7 +467,7 @@ return {
}, },
{ {
name = "Shader", name = "Shader",
description = "", description = "Shader",
fields = { fields = {
{ {
name = "id", name = "id",
@ -483,7 +483,7 @@ return {
}, },
{ {
name = "MaterialMap", name = "MaterialMap",
description = "", description = "MaterialMap",
fields = { fields = {
{ {
name = "texture", name = "texture",
@ -504,7 +504,7 @@ return {
}, },
{ {
name = "Material", name = "Material",
description = "", description = "Material, includes shader and maps",
fields = { fields = {
{ {
name = "shader", name = "shader",
@ -525,7 +525,7 @@ return {
}, },
{ {
name = "Transform", name = "Transform",
description = "", description = "Transform, vectex transformation data",
fields = { fields = {
{ {
name = "translation", name = "translation",
@ -546,7 +546,7 @@ return {
}, },
{ {
name = "BoneInfo", name = "BoneInfo",
description = "", description = "Bone, skeletal animation bone",
fields = { fields = {
{ {
name = "name[32]", name = "name[32]",
@ -562,7 +562,7 @@ return {
}, },
{ {
name = "Model", name = "Model",
description = "", description = "Model, meshes, materials and animation data",
fields = { fields = {
{ {
name = "transform", name = "transform",
@ -613,7 +613,7 @@ return {
}, },
{ {
name = "ModelAnimation", name = "ModelAnimation",
description = "", description = "ModelAnimation",
fields = { fields = {
{ {
name = "boneCount", name = "boneCount",
@ -639,7 +639,7 @@ return {
}, },
{ {
name = "Ray", name = "Ray",
description = "", description = "Ray, ray for raycasting",
fields = { fields = {
{ {
name = "position", name = "position",
@ -655,7 +655,7 @@ return {
}, },
{ {
name = "RayCollision", name = "RayCollision",
description = "", description = "RayCollision, ray hit information",
fields = { fields = {
{ {
name = "hit", name = "hit",
@ -681,7 +681,7 @@ return {
}, },
{ {
name = "BoundingBox", name = "BoundingBox",
description = "", description = "BoundingBox",
fields = { fields = {
{ {
name = "min", name = "min",
@ -697,7 +697,7 @@ return {
}, },
{ {
name = "Wave", name = "Wave",
description = "", description = "Wave, audio wave data",
fields = { fields = {
{ {
name = "frameCount", name = "frameCount",
@ -728,7 +728,7 @@ return {
}, },
{ {
name = "AudioStream", name = "AudioStream",
description = "", description = "AudioStream, custom audio stream",
fields = { fields = {
{ {
name = "buffer", name = "buffer",
@ -754,7 +754,7 @@ return {
}, },
{ {
name = "Sound", name = "Sound",
description = "", description = "Sound",
fields = { fields = {
{ {
name = "stream", name = "stream",
@ -770,7 +770,7 @@ return {
}, },
{ {
name = "Music", name = "Music",
description = "", description = "Music, audio stream, anything longer than ~10 seconds should be streamed",
fields = { fields = {
{ {
name = "stream", name = "stream",
@ -801,7 +801,7 @@ return {
}, },
{ {
name = "VrDeviceInfo", name = "VrDeviceInfo",
description = "", description = "VrDeviceInfo, Head-Mounted-Display device parameters",
fields = { fields = {
{ {
name = "hResolution", name = "hResolution",
@ -857,7 +857,7 @@ return {
}, },
{ {
name = "VrStereoConfig", name = "VrStereoConfig",
description = "", description = "VrStereoConfig, VR stereo rendering configuration for simulator",
fields = { fields = {
{ {
name = "projection[2]", name = "projection[2]",

View file

@ -3,46 +3,46 @@ Structures found: 31
Struct 01: Vector2 (2 fields) Struct 01: Vector2 (2 fields)
Name: Vector2 Name: Vector2
Description: Description: Vector2, 2 components
Field[1]: float x // Vector x component Field[1]: float x // Vector x component
Field[2]: float y // Vector y component Field[2]: float y // Vector y component
Struct 02: Vector3 (3 fields) Struct 02: Vector3 (3 fields)
Name: Vector3 Name: Vector3
Description: Description: Vector3, 3 components
Field[1]: float x // Vector x component Field[1]: float x // Vector x component
Field[2]: float y // Vector y component Field[2]: float y // Vector y component
Field[3]: float z // Vector z component Field[3]: float z // Vector z component
Struct 03: Vector4 (4 fields) Struct 03: Vector4 (4 fields)
Name: Vector4 Name: Vector4
Description: Description: Vector4, 4 components
Field[1]: float x // Vector x component Field[1]: float x // Vector x component
Field[2]: float y // Vector y component Field[2]: float y // Vector y component
Field[3]: float z // Vector z component Field[3]: float z // Vector z component
Field[4]: float w // Vector w component Field[4]: float w // Vector w component
Struct 04: Matrix (4 fields) Struct 04: Matrix (4 fields)
Name: Matrix Name: Matrix
Description: Description: Matrix, 4x4 components, column major, OpenGL style, right handed
Field[1]: float m0, m4, m8, m12 // Matrix first row (4 components) Field[1]: float m0, m4, m8, m12 // Matrix first row (4 components)
Field[2]: float m1, m5, m9, m13 // Matrix second row (4 components) Field[2]: float m1, m5, m9, m13 // Matrix second row (4 components)
Field[3]: float m2, m6, m10, m14 // Matrix third row (4 components) Field[3]: float m2, m6, m10, m14 // Matrix third row (4 components)
Field[4]: float m3, m7, m11, m15 // Matrix fourth row (4 components) Field[4]: float m3, m7, m11, m15 // Matrix fourth row (4 components)
Struct 05: Color (4 fields) Struct 05: Color (4 fields)
Name: Color Name: Color
Description: Description: Color, 4 components, R8G8B8A8 (32bit)
Field[1]: unsigned char r // Color red value Field[1]: unsigned char r // Color red value
Field[2]: unsigned char g // Color green value Field[2]: unsigned char g // Color green value
Field[3]: unsigned char b // Color blue value Field[3]: unsigned char b // Color blue value
Field[4]: unsigned char a // Color alpha value Field[4]: unsigned char a // Color alpha value
Struct 06: Rectangle (4 fields) Struct 06: Rectangle (4 fields)
Name: Rectangle Name: Rectangle
Description: Description: Rectangle, 4 components
Field[1]: float x // Rectangle top-left corner position x Field[1]: float x // Rectangle top-left corner position x
Field[2]: float y // Rectangle top-left corner position y Field[2]: float y // Rectangle top-left corner position y
Field[3]: float width // Rectangle width Field[3]: float width // Rectangle width
Field[4]: float height // Rectangle height Field[4]: float height // Rectangle height
Struct 07: Image (5 fields) Struct 07: Image (5 fields)
Name: Image Name: Image
Description: Description: Image, pixel data stored in CPU memory (RAM)
Field[1]: void * data // Image raw data Field[1]: void * data // Image raw data
Field[2]: int width // Image base width Field[2]: int width // Image base width
Field[3]: int height // Image base height Field[3]: int height // Image base height
@ -50,7 +50,7 @@ Struct 07: Image (5 fields)
Field[5]: int format // Data format (PixelFormat type) Field[5]: int format // Data format (PixelFormat type)
Struct 08: Texture (5 fields) Struct 08: Texture (5 fields)
Name: Texture Name: Texture
Description: Description: Texture, tex data stored in GPU memory (VRAM)
Field[1]: unsigned int id // OpenGL texture id Field[1]: unsigned int id // OpenGL texture id
Field[2]: int width // Texture base width Field[2]: int width // Texture base width
Field[3]: int height // Texture base height Field[3]: int height // Texture base height
@ -58,13 +58,13 @@ Struct 08: Texture (5 fields)
Field[5]: int format // Data format (PixelFormat type) Field[5]: int format // Data format (PixelFormat type)
Struct 09: RenderTexture (3 fields) Struct 09: RenderTexture (3 fields)
Name: RenderTexture Name: RenderTexture
Description: Description: RenderTexture, fbo for texture rendering
Field[1]: unsigned int id // OpenGL framebuffer object id Field[1]: unsigned int id // OpenGL framebuffer object id
Field[2]: Texture texture // Color buffer attachment texture Field[2]: Texture texture // Color buffer attachment texture
Field[3]: Texture depth // Depth buffer attachment texture Field[3]: Texture depth // Depth buffer attachment texture
Struct 10: NPatchInfo (6 fields) Struct 10: NPatchInfo (6 fields)
Name: NPatchInfo Name: NPatchInfo
Description: Description: NPatchInfo, n-patch layout info
Field[1]: Rectangle source // Texture source rectangle Field[1]: Rectangle source // Texture source rectangle
Field[2]: int left // Left border offset Field[2]: int left // Left border offset
Field[3]: int top // Top border offset Field[3]: int top // Top border offset
@ -73,7 +73,7 @@ Struct 10: NPatchInfo (6 fields)
Field[6]: int layout // Layout of the n-patch: 3x3, 1x3 or 3x1 Field[6]: int layout // Layout of the n-patch: 3x3, 1x3 or 3x1
Struct 11: GlyphInfo (5 fields) Struct 11: GlyphInfo (5 fields)
Name: GlyphInfo Name: GlyphInfo
Description: Description: GlyphInfo, font characters glyphs info
Field[1]: int value // Character value (Unicode) Field[1]: int value // Character value (Unicode)
Field[2]: int offsetX // Character offset X when drawing Field[2]: int offsetX // Character offset X when drawing
Field[3]: int offsetY // Character offset Y when drawing Field[3]: int offsetY // Character offset Y when drawing
@ -81,7 +81,7 @@ Struct 11: GlyphInfo (5 fields)
Field[5]: Image image // Character image data Field[5]: Image image // Character image data
Struct 12: Font (6 fields) Struct 12: Font (6 fields)
Name: Font Name: Font
Description: Description: Font, font texture and GlyphInfo array data
Field[1]: int baseSize // Base size (default chars height) Field[1]: int baseSize // Base size (default chars height)
Field[2]: int glyphCount // Number of glyph characters Field[2]: int glyphCount // Number of glyph characters
Field[3]: int glyphPadding // Padding around the glyph characters Field[3]: int glyphPadding // Padding around the glyph characters
@ -90,7 +90,7 @@ Struct 12: Font (6 fields)
Field[6]: GlyphInfo * glyphs // Glyphs info data Field[6]: GlyphInfo * glyphs // Glyphs info data
Struct 13: Camera3D (5 fields) Struct 13: Camera3D (5 fields)
Name: Camera3D Name: Camera3D
Description: Description: Camera, defines position/orientation in 3d space
Field[1]: Vector3 position // Camera position Field[1]: Vector3 position // Camera position
Field[2]: Vector3 target // Camera target it looks-at Field[2]: Vector3 target // Camera target it looks-at
Field[3]: Vector3 up // Camera up vector (rotation over its axis) Field[3]: Vector3 up // Camera up vector (rotation over its axis)
@ -98,14 +98,14 @@ Struct 13: Camera3D (5 fields)
Field[5]: int projection // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC Field[5]: int projection // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
Struct 14: Camera2D (4 fields) Struct 14: Camera2D (4 fields)
Name: Camera2D Name: Camera2D
Description: Description: Camera2D, defines position/orientation in 2d space
Field[1]: Vector2 offset // Camera offset (displacement from target) Field[1]: Vector2 offset // Camera offset (displacement from target)
Field[2]: Vector2 target // Camera target (rotation and zoom origin) Field[2]: Vector2 target // Camera target (rotation and zoom origin)
Field[3]: float rotation // Camera rotation in degrees Field[3]: float rotation // Camera rotation in degrees
Field[4]: float zoom // Camera zoom (scaling), should be 1.0f by default Field[4]: float zoom // Camera zoom (scaling), should be 1.0f by default
Struct 15: Mesh (15 fields) Struct 15: Mesh (15 fields)
Name: Mesh Name: Mesh
Description: Description: Mesh, vertex data and vao/vbo
Field[1]: int vertexCount // Number of vertices stored in arrays Field[1]: int vertexCount // Number of vertices stored in arrays
Field[2]: int triangleCount // Number of triangles stored (indexed or not) Field[2]: int triangleCount // Number of triangles stored (indexed or not)
Field[3]: float * vertices // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) Field[3]: float * vertices // Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
@ -123,35 +123,35 @@ Struct 15: Mesh (15 fields)
Field[15]: unsigned int * vboId // OpenGL Vertex Buffer Objects id (default vertex data) Field[15]: unsigned int * vboId // OpenGL Vertex Buffer Objects id (default vertex data)
Struct 16: Shader (2 fields) Struct 16: Shader (2 fields)
Name: Shader Name: Shader
Description: Description: Shader
Field[1]: unsigned int id // Shader program id Field[1]: unsigned int id // Shader program id
Field[2]: int * locs // Shader locations array (RL_MAX_SHADER_LOCATIONS) Field[2]: int * locs // Shader locations array (RL_MAX_SHADER_LOCATIONS)
Struct 17: MaterialMap (3 fields) Struct 17: MaterialMap (3 fields)
Name: MaterialMap Name: MaterialMap
Description: Description: MaterialMap
Field[1]: Texture2D texture // Material map texture Field[1]: Texture2D texture // Material map texture
Field[2]: Color color // Material map color Field[2]: Color color // Material map color
Field[3]: float value // Material map value Field[3]: float value // Material map value
Struct 18: Material (3 fields) Struct 18: Material (3 fields)
Name: Material Name: Material
Description: Description: Material, includes shader and maps
Field[1]: Shader shader // Material shader Field[1]: Shader shader // Material shader
Field[2]: MaterialMap * maps // Material maps array (MAX_MATERIAL_MAPS) Field[2]: MaterialMap * maps // Material maps array (MAX_MATERIAL_MAPS)
Field[3]: float params[4] // Material generic parameters (if required) Field[3]: float params[4] // Material generic parameters (if required)
Struct 19: Transform (3 fields) Struct 19: Transform (3 fields)
Name: Transform Name: Transform
Description: Description: Transform, vectex transformation data
Field[1]: Vector3 translation // Translation Field[1]: Vector3 translation // Translation
Field[2]: Quaternion rotation // Rotation Field[2]: Quaternion rotation // Rotation
Field[3]: Vector3 scale // Scale Field[3]: Vector3 scale // Scale
Struct 20: BoneInfo (2 fields) Struct 20: BoneInfo (2 fields)
Name: BoneInfo Name: BoneInfo
Description: Description: Bone, skeletal animation bone
Field[1]: char name[32] // Bone name Field[1]: char name[32] // Bone name
Field[2]: int parent // Bone parent Field[2]: int parent // Bone parent
Struct 21: Model (9 fields) Struct 21: Model (9 fields)
Name: Model Name: Model
Description: Description: Model, meshes, materials and animation data
Field[1]: Matrix transform // Local transform matrix Field[1]: Matrix transform // Local transform matrix
Field[2]: int meshCount // Number of meshes Field[2]: int meshCount // Number of meshes
Field[3]: int materialCount // Number of materials Field[3]: int materialCount // Number of materials
@ -163,31 +163,31 @@ Struct 21: Model (9 fields)
Field[9]: Transform * bindPose // Bones base transformation (pose) Field[9]: Transform * bindPose // Bones base transformation (pose)
Struct 22: ModelAnimation (4 fields) Struct 22: ModelAnimation (4 fields)
Name: ModelAnimation Name: ModelAnimation
Description: Description: ModelAnimation
Field[1]: int boneCount // Number of bones Field[1]: int boneCount // Number of bones
Field[2]: int frameCount // Number of animation frames Field[2]: int frameCount // Number of animation frames
Field[3]: BoneInfo * bones // Bones information (skeleton) Field[3]: BoneInfo * bones // Bones information (skeleton)
Field[4]: Transform ** framePoses // Poses array by frame Field[4]: Transform ** framePoses // Poses array by frame
Struct 23: Ray (2 fields) Struct 23: Ray (2 fields)
Name: Ray Name: Ray
Description: Description: Ray, ray for raycasting
Field[1]: Vector3 position // Ray position (origin) Field[1]: Vector3 position // Ray position (origin)
Field[2]: Vector3 direction // Ray direction Field[2]: Vector3 direction // Ray direction
Struct 24: RayCollision (4 fields) Struct 24: RayCollision (4 fields)
Name: RayCollision Name: RayCollision
Description: Description: RayCollision, ray hit information
Field[1]: bool hit // Did the ray hit something? Field[1]: bool hit // Did the ray hit something?
Field[2]: float distance // Distance to nearest hit Field[2]: float distance // Distance to nearest hit
Field[3]: Vector3 point // Point of nearest hit Field[3]: Vector3 point // Point of nearest hit
Field[4]: Vector3 normal // Surface normal of hit Field[4]: Vector3 normal // Surface normal of hit
Struct 25: BoundingBox (2 fields) Struct 25: BoundingBox (2 fields)
Name: BoundingBox Name: BoundingBox
Description: Description: BoundingBox
Field[1]: Vector3 min // Minimum vertex box-corner Field[1]: Vector3 min // Minimum vertex box-corner
Field[2]: Vector3 max // Maximum vertex box-corner Field[2]: Vector3 max // Maximum vertex box-corner
Struct 26: Wave (5 fields) Struct 26: Wave (5 fields)
Name: Wave Name: Wave
Description: Description: Wave, audio wave data
Field[1]: unsigned int frameCount // Total number of frames (considering channels) Field[1]: unsigned int frameCount // Total number of frames (considering channels)
Field[2]: unsigned int sampleRate // Frequency (samples per second) Field[2]: unsigned int sampleRate // Frequency (samples per second)
Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported) Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
@ -195,19 +195,19 @@ Struct 26: Wave (5 fields)
Field[5]: void * data // Buffer data pointer Field[5]: void * data // Buffer data pointer
Struct 27: AudioStream (4 fields) Struct 27: AudioStream (4 fields)
Name: AudioStream Name: AudioStream
Description: Description: AudioStream, custom audio stream
Field[1]: rAudioBuffer * buffer // Pointer to internal data used by the audio system Field[1]: rAudioBuffer * buffer // Pointer to internal data used by the audio system
Field[2]: unsigned int sampleRate // Frequency (samples per second) Field[2]: unsigned int sampleRate // Frequency (samples per second)
Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported) Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
Field[4]: unsigned int channels // Number of channels (1-mono, 2-stereo, ...) Field[4]: unsigned int channels // Number of channels (1-mono, 2-stereo, ...)
Struct 28: Sound (2 fields) Struct 28: Sound (2 fields)
Name: Sound Name: Sound
Description: Description: Sound
Field[1]: AudioStream stream // Audio stream Field[1]: AudioStream stream // Audio stream
Field[2]: unsigned int frameCount // Total number of frames (considering channels) Field[2]: unsigned int frameCount // Total number of frames (considering channels)
Struct 29: Music (5 fields) Struct 29: Music (5 fields)
Name: Music Name: Music
Description: Description: Music, audio stream, anything longer than ~10 seconds should be streamed
Field[1]: AudioStream stream // Audio stream Field[1]: AudioStream stream // Audio stream
Field[2]: unsigned int frameCount // Total number of frames (considering channels) Field[2]: unsigned int frameCount // Total number of frames (considering channels)
Field[3]: bool looping // Music looping enable Field[3]: bool looping // Music looping enable
@ -215,7 +215,7 @@ Struct 29: Music (5 fields)
Field[5]: void * ctxData // Audio context data, depends on type Field[5]: void * ctxData // Audio context data, depends on type
Struct 30: VrDeviceInfo (10 fields) Struct 30: VrDeviceInfo (10 fields)
Name: VrDeviceInfo Name: VrDeviceInfo
Description: Description: VrDeviceInfo, Head-Mounted-Display device parameters
Field[1]: int hResolution // Horizontal resolution in pixels Field[1]: int hResolution // Horizontal resolution in pixels
Field[2]: int vResolution // Vertical resolution in pixels Field[2]: int vResolution // Vertical resolution in pixels
Field[3]: float hScreenSize // Horizontal size in meters Field[3]: float hScreenSize // Horizontal size in meters
@ -228,7 +228,7 @@ Struct 30: VrDeviceInfo (10 fields)
Field[10]: float chromaAbCorrection[4] // Chromatic aberration correction parameters Field[10]: float chromaAbCorrection[4] // Chromatic aberration correction parameters
Struct 31: VrStereoConfig (8 fields) Struct 31: VrStereoConfig (8 fields)
Name: VrStereoConfig Name: VrStereoConfig
Description: Description: VrStereoConfig, VR stereo rendering configuration for simulator
Field[1]: Matrix projection[2] // VR projection matrices (per eye) Field[1]: Matrix projection[2] // VR projection matrices (per eye)
Field[2]: Matrix viewOffset[2] // VR view offset matrices (per eye) Field[2]: Matrix viewOffset[2] // VR view offset matrices (per eye)
Field[3]: float leftLensCenter[2] // VR left lens center Field[3]: float leftLensCenter[2] // VR left lens center

View file

@ -1,59 +1,59 @@
<?xml version="1.0" encoding="Windows-1252" ?> <?xml version="1.0" encoding="Windows-1252" ?>
<raylibAPI> <raylibAPI>
<Structs count="31"> <Structs count="31">
<Struct name="Vector2" fieldCount="2" desc=""> <Struct name="Vector2" fieldCount="2" desc="Vector2, 2 components">
<Field type="float" name="x" desc="Vector x component" /> <Field type="float" name="x" desc="Vector x component" />
<Field type="float" name="y" desc="Vector y component" /> <Field type="float" name="y" desc="Vector y component" />
</Struct> </Struct>
<Struct name="Vector3" fieldCount="3" desc=""> <Struct name="Vector3" fieldCount="3" desc="Vector3, 3 components">
<Field type="float" name="x" desc="Vector x component" /> <Field type="float" name="x" desc="Vector x component" />
<Field type="float" name="y" desc="Vector y component" /> <Field type="float" name="y" desc="Vector y component" />
<Field type="float" name="z" desc="Vector z component" /> <Field type="float" name="z" desc="Vector z component" />
</Struct> </Struct>
<Struct name="Vector4" fieldCount="4" desc=""> <Struct name="Vector4" fieldCount="4" desc="Vector4, 4 components">
<Field type="float" name="x" desc="Vector x component" /> <Field type="float" name="x" desc="Vector x component" />
<Field type="float" name="y" desc="Vector y component" /> <Field type="float" name="y" desc="Vector y component" />
<Field type="float" name="z" desc="Vector z component" /> <Field type="float" name="z" desc="Vector z component" />
<Field type="float" name="w" desc="Vector w component" /> <Field type="float" name="w" desc="Vector w component" />
</Struct> </Struct>
<Struct name="Matrix" fieldCount="4" desc=""> <Struct name="Matrix" fieldCount="4" desc="Matrix, 4x4 components, column major, OpenGL style, right handed">
<Field type="float" name="m0, m4, m8, m12" desc="Matrix first row (4 components)" /> <Field type="float" name="m0, m4, m8, m12" desc="Matrix first row (4 components)" />
<Field type="float" name="m1, m5, m9, m13" desc="Matrix second row (4 components)" /> <Field type="float" name="m1, m5, m9, m13" desc="Matrix second row (4 components)" />
<Field type="float" name="m2, m6, m10, m14" desc="Matrix third row (4 components)" /> <Field type="float" name="m2, m6, m10, m14" desc="Matrix third row (4 components)" />
<Field type="float" name="m3, m7, m11, m15" desc="Matrix fourth row (4 components)" /> <Field type="float" name="m3, m7, m11, m15" desc="Matrix fourth row (4 components)" />
</Struct> </Struct>
<Struct name="Color" fieldCount="4" desc=""> <Struct name="Color" fieldCount="4" desc="Color, 4 components, R8G8B8A8 (32bit)">
<Field type="unsigned char" name="r" desc="Color red value" /> <Field type="unsigned char" name="r" desc="Color red value" />
<Field type="unsigned char" name="g" desc="Color green value" /> <Field type="unsigned char" name="g" desc="Color green value" />
<Field type="unsigned char" name="b" desc="Color blue value" /> <Field type="unsigned char" name="b" desc="Color blue value" />
<Field type="unsigned char" name="a" desc="Color alpha value" /> <Field type="unsigned char" name="a" desc="Color alpha value" />
</Struct> </Struct>
<Struct name="Rectangle" fieldCount="4" desc=""> <Struct name="Rectangle" fieldCount="4" desc="Rectangle, 4 components">
<Field type="float" name="x" desc="Rectangle top-left corner position x" /> <Field type="float" name="x" desc="Rectangle top-left corner position x" />
<Field type="float" name="y" desc="Rectangle top-left corner position y" /> <Field type="float" name="y" desc="Rectangle top-left corner position y" />
<Field type="float" name="width" desc="Rectangle width" /> <Field type="float" name="width" desc="Rectangle width" />
<Field type="float" name="height" desc="Rectangle height" /> <Field type="float" name="height" desc="Rectangle height" />
</Struct> </Struct>
<Struct name="Image" fieldCount="5" desc=""> <Struct name="Image" fieldCount="5" desc="Image, pixel data stored in CPU memory (RAM)">
<Field type="void *" name="data" desc="Image raw data" /> <Field type="void *" name="data" desc="Image raw data" />
<Field type="int" name="width" desc="Image base width" /> <Field type="int" name="width" desc="Image base width" />
<Field type="int" name="height" desc="Image base height" /> <Field type="int" name="height" desc="Image base height" />
<Field type="int" name="mipmaps" desc="Mipmap levels, 1 by default" /> <Field type="int" name="mipmaps" desc="Mipmap levels, 1 by default" />
<Field type="int" name="format" desc="Data format (PixelFormat type)" /> <Field type="int" name="format" desc="Data format (PixelFormat type)" />
</Struct> </Struct>
<Struct name="Texture" fieldCount="5" desc=""> <Struct name="Texture" fieldCount="5" desc="Texture, tex data stored in GPU memory (VRAM)">
<Field type="unsigned int" name="id" desc="OpenGL texture id" /> <Field type="unsigned int" name="id" desc="OpenGL texture id" />
<Field type="int" name="width" desc="Texture base width" /> <Field type="int" name="width" desc="Texture base width" />
<Field type="int" name="height" desc="Texture base height" /> <Field type="int" name="height" desc="Texture base height" />
<Field type="int" name="mipmaps" desc="Mipmap levels, 1 by default" /> <Field type="int" name="mipmaps" desc="Mipmap levels, 1 by default" />
<Field type="int" name="format" desc="Data format (PixelFormat type)" /> <Field type="int" name="format" desc="Data format (PixelFormat type)" />
</Struct> </Struct>
<Struct name="RenderTexture" fieldCount="3" desc=""> <Struct name="RenderTexture" fieldCount="3" desc="RenderTexture, fbo for texture rendering">
<Field type="unsigned int" name="id" desc="OpenGL framebuffer object id" /> <Field type="unsigned int" name="id" desc="OpenGL framebuffer object id" />
<Field type="Texture" name="texture" desc="Color buffer attachment texture" /> <Field type="Texture" name="texture" desc="Color buffer attachment texture" />
<Field type="Texture" name="depth" desc="Depth buffer attachment texture" /> <Field type="Texture" name="depth" desc="Depth buffer attachment texture" />
</Struct> </Struct>
<Struct name="NPatchInfo" fieldCount="6" desc=""> <Struct name="NPatchInfo" fieldCount="6" desc="NPatchInfo, n-patch layout info">
<Field type="Rectangle" name="source" desc="Texture source rectangle" /> <Field type="Rectangle" name="source" desc="Texture source rectangle" />
<Field type="int" name="left" desc="Left border offset" /> <Field type="int" name="left" desc="Left border offset" />
<Field type="int" name="top" desc="Top border offset" /> <Field type="int" name="top" desc="Top border offset" />
@ -61,14 +61,14 @@
<Field type="int" name="bottom" desc="Bottom border offset" /> <Field type="int" name="bottom" desc="Bottom border offset" />
<Field type="int" name="layout" desc="Layout of the n-patch: 3x3, 1x3 or 3x1" /> <Field type="int" name="layout" desc="Layout of the n-patch: 3x3, 1x3 or 3x1" />
</Struct> </Struct>
<Struct name="GlyphInfo" fieldCount="5" desc=""> <Struct name="GlyphInfo" fieldCount="5" desc="GlyphInfo, font characters glyphs info">
<Field type="int" name="value" desc="Character value (Unicode)" /> <Field type="int" name="value" desc="Character value (Unicode)" />
<Field type="int" name="offsetX" desc="Character offset X when drawing" /> <Field type="int" name="offsetX" desc="Character offset X when drawing" />
<Field type="int" name="offsetY" desc="Character offset Y when drawing" /> <Field type="int" name="offsetY" desc="Character offset Y when drawing" />
<Field type="int" name="advanceX" desc="Character advance position X" /> <Field type="int" name="advanceX" desc="Character advance position X" />
<Field type="Image" name="image" desc="Character image data" /> <Field type="Image" name="image" desc="Character image data" />
</Struct> </Struct>
<Struct name="Font" fieldCount="6" desc=""> <Struct name="Font" fieldCount="6" desc="Font, font texture and GlyphInfo array data">
<Field type="int" name="baseSize" desc="Base size (default chars height)" /> <Field type="int" name="baseSize" desc="Base size (default chars height)" />
<Field type="int" name="glyphCount" desc="Number of glyph characters" /> <Field type="int" name="glyphCount" desc="Number of glyph characters" />
<Field type="int" name="glyphPadding" desc="Padding around the glyph characters" /> <Field type="int" name="glyphPadding" desc="Padding around the glyph characters" />
@ -76,20 +76,20 @@
<Field type="Rectangle *" name="recs" desc="Rectangles in texture for the glyphs" /> <Field type="Rectangle *" name="recs" desc="Rectangles in texture for the glyphs" />
<Field type="GlyphInfo *" name="glyphs" desc="Glyphs info data" /> <Field type="GlyphInfo *" name="glyphs" desc="Glyphs info data" />
</Struct> </Struct>
<Struct name="Camera3D" fieldCount="5" desc=""> <Struct name="Camera3D" fieldCount="5" desc="Camera, defines position/orientation in 3d space">
<Field type="Vector3" name="position" desc="Camera position" /> <Field type="Vector3" name="position" desc="Camera position" />
<Field type="Vector3" name="target" desc="Camera target it looks-at" /> <Field type="Vector3" name="target" desc="Camera target it looks-at" />
<Field type="Vector3" name="up" desc="Camera up vector (rotation over its axis)" /> <Field type="Vector3" name="up" desc="Camera up vector (rotation over its axis)" />
<Field type="float" name="fovy" desc="Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic" /> <Field type="float" name="fovy" desc="Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic" />
<Field type="int" name="projection" desc="Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC" /> <Field type="int" name="projection" desc="Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC" />
</Struct> </Struct>
<Struct name="Camera2D" fieldCount="4" desc=""> <Struct name="Camera2D" fieldCount="4" desc="Camera2D, defines position/orientation in 2d space">
<Field type="Vector2" name="offset" desc="Camera offset (displacement from target)" /> <Field type="Vector2" name="offset" desc="Camera offset (displacement from target)" />
<Field type="Vector2" name="target" desc="Camera target (rotation and zoom origin)" /> <Field type="Vector2" name="target" desc="Camera target (rotation and zoom origin)" />
<Field type="float" name="rotation" desc="Camera rotation in degrees" /> <Field type="float" name="rotation" desc="Camera rotation in degrees" />
<Field type="float" name="zoom" desc="Camera zoom (scaling), should be 1.0f by default" /> <Field type="float" name="zoom" desc="Camera zoom (scaling), should be 1.0f by default" />
</Struct> </Struct>
<Struct name="Mesh" fieldCount="15" desc=""> <Struct name="Mesh" fieldCount="15" desc="Mesh, vertex data and vao/vbo">
<Field type="int" name="vertexCount" desc="Number of vertices stored in arrays" /> <Field type="int" name="vertexCount" desc="Number of vertices stored in arrays" />
<Field type="int" name="triangleCount" desc="Number of triangles stored (indexed or not)" /> <Field type="int" name="triangleCount" desc="Number of triangles stored (indexed or not)" />
<Field type="float *" name="vertices" desc="Vertex position (XYZ - 3 components per vertex) (shader-location = 0)" /> <Field type="float *" name="vertices" desc="Vertex position (XYZ - 3 components per vertex) (shader-location = 0)" />
@ -106,30 +106,30 @@
<Field type="unsigned int" name="vaoId" desc="OpenGL Vertex Array Object id" /> <Field type="unsigned int" name="vaoId" desc="OpenGL Vertex Array Object id" />
<Field type="unsigned int *" name="vboId" desc="OpenGL Vertex Buffer Objects id (default vertex data)" /> <Field type="unsigned int *" name="vboId" desc="OpenGL Vertex Buffer Objects id (default vertex data)" />
</Struct> </Struct>
<Struct name="Shader" fieldCount="2" desc=""> <Struct name="Shader" fieldCount="2" desc="Shader">
<Field type="unsigned int" name="id" desc="Shader program id" /> <Field type="unsigned int" name="id" desc="Shader program id" />
<Field type="int *" name="locs" desc="Shader locations array (RL_MAX_SHADER_LOCATIONS)" /> <Field type="int *" name="locs" desc="Shader locations array (RL_MAX_SHADER_LOCATIONS)" />
</Struct> </Struct>
<Struct name="MaterialMap" fieldCount="3" desc=""> <Struct name="MaterialMap" fieldCount="3" desc="MaterialMap">
<Field type="Texture2D" name="texture" desc="Material map texture" /> <Field type="Texture2D" name="texture" desc="Material map texture" />
<Field type="Color" name="color" desc="Material map color" /> <Field type="Color" name="color" desc="Material map color" />
<Field type="float" name="value" desc="Material map value" /> <Field type="float" name="value" desc="Material map value" />
</Struct> </Struct>
<Struct name="Material" fieldCount="3" desc=""> <Struct name="Material" fieldCount="3" desc="Material, includes shader and maps">
<Field type="Shader" name="shader" desc="Material shader" /> <Field type="Shader" name="shader" desc="Material shader" />
<Field type="MaterialMap *" name="maps" desc="Material maps array (MAX_MATERIAL_MAPS)" /> <Field type="MaterialMap *" name="maps" desc="Material maps array (MAX_MATERIAL_MAPS)" />
<Field type="float" name="params[4]" desc="Material generic parameters (if required)" /> <Field type="float" name="params[4]" desc="Material generic parameters (if required)" />
</Struct> </Struct>
<Struct name="Transform" fieldCount="3" desc=""> <Struct name="Transform" fieldCount="3" desc="Transform, vectex transformation data">
<Field type="Vector3" name="translation" desc="Translation" /> <Field type="Vector3" name="translation" desc="Translation" />
<Field type="Quaternion" name="rotation" desc="Rotation" /> <Field type="Quaternion" name="rotation" desc="Rotation" />
<Field type="Vector3" name="scale" desc="Scale" /> <Field type="Vector3" name="scale" desc="Scale" />
</Struct> </Struct>
<Struct name="BoneInfo" fieldCount="2" desc=""> <Struct name="BoneInfo" fieldCount="2" desc="Bone, skeletal animation bone">
<Field type="char" name="name[32]" desc="Bone name" /> <Field type="char" name="name[32]" desc="Bone name" />
<Field type="int" name="parent" desc="Bone parent" /> <Field type="int" name="parent" desc="Bone parent" />
</Struct> </Struct>
<Struct name="Model" fieldCount="9" desc=""> <Struct name="Model" fieldCount="9" desc="Model, meshes, materials and animation data">
<Field type="Matrix" name="transform" desc="Local transform matrix" /> <Field type="Matrix" name="transform" desc="Local transform matrix" />
<Field type="int" name="meshCount" desc="Number of meshes" /> <Field type="int" name="meshCount" desc="Number of meshes" />
<Field type="int" name="materialCount" desc="Number of materials" /> <Field type="int" name="materialCount" desc="Number of materials" />
@ -140,51 +140,51 @@
<Field type="BoneInfo *" name="bones" desc="Bones information (skeleton)" /> <Field type="BoneInfo *" name="bones" desc="Bones information (skeleton)" />
<Field type="Transform *" name="bindPose" desc="Bones base transformation (pose)" /> <Field type="Transform *" name="bindPose" desc="Bones base transformation (pose)" />
</Struct> </Struct>
<Struct name="ModelAnimation" fieldCount="4" desc=""> <Struct name="ModelAnimation" fieldCount="4" desc="ModelAnimation">
<Field type="int" name="boneCount" desc="Number of bones" /> <Field type="int" name="boneCount" desc="Number of bones" />
<Field type="int" name="frameCount" desc="Number of animation frames" /> <Field type="int" name="frameCount" desc="Number of animation frames" />
<Field type="BoneInfo *" name="bones" desc="Bones information (skeleton)" /> <Field type="BoneInfo *" name="bones" desc="Bones information (skeleton)" />
<Field type="Transform **" name="framePoses" desc="Poses array by frame" /> <Field type="Transform **" name="framePoses" desc="Poses array by frame" />
</Struct> </Struct>
<Struct name="Ray" fieldCount="2" desc=""> <Struct name="Ray" fieldCount="2" desc="Ray, ray for raycasting">
<Field type="Vector3" name="position" desc="Ray position (origin)" /> <Field type="Vector3" name="position" desc="Ray position (origin)" />
<Field type="Vector3" name="direction" desc="Ray direction" /> <Field type="Vector3" name="direction" desc="Ray direction" />
</Struct> </Struct>
<Struct name="RayCollision" fieldCount="4" desc=""> <Struct name="RayCollision" fieldCount="4" desc="RayCollision, ray hit information">
<Field type="bool" name="hit" desc="Did the ray hit something?" /> <Field type="bool" name="hit" desc="Did the ray hit something?" />
<Field type="float" name="distance" desc="Distance to nearest hit" /> <Field type="float" name="distance" desc="Distance to nearest hit" />
<Field type="Vector3" name="point" desc="Point of nearest hit" /> <Field type="Vector3" name="point" desc="Point of nearest hit" />
<Field type="Vector3" name="normal" desc="Surface normal of hit" /> <Field type="Vector3" name="normal" desc="Surface normal of hit" />
</Struct> </Struct>
<Struct name="BoundingBox" fieldCount="2" desc=""> <Struct name="BoundingBox" fieldCount="2" desc="BoundingBox">
<Field type="Vector3" name="min" desc="Minimum vertex box-corner" /> <Field type="Vector3" name="min" desc="Minimum vertex box-corner" />
<Field type="Vector3" name="max" desc="Maximum vertex box-corner" /> <Field type="Vector3" name="max" desc="Maximum vertex box-corner" />
</Struct> </Struct>
<Struct name="Wave" fieldCount="5" desc=""> <Struct name="Wave" fieldCount="5" desc="Wave, audio wave data">
<Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" /> <Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" />
<Field type="unsigned int" name="sampleRate" desc="Frequency (samples per second)" /> <Field type="unsigned int" name="sampleRate" desc="Frequency (samples per second)" />
<Field type="unsigned int" name="sampleSize" desc="Bit depth (bits per sample): 8, 16, 32 (24 not supported)" /> <Field type="unsigned int" name="sampleSize" desc="Bit depth (bits per sample): 8, 16, 32 (24 not supported)" />
<Field type="unsigned int" name="channels" desc="Number of channels (1-mono, 2-stereo, ...)" /> <Field type="unsigned int" name="channels" desc="Number of channels (1-mono, 2-stereo, ...)" />
<Field type="void *" name="data" desc="Buffer data pointer" /> <Field type="void *" name="data" desc="Buffer data pointer" />
</Struct> </Struct>
<Struct name="AudioStream" fieldCount="4" desc=""> <Struct name="AudioStream" fieldCount="4" desc="AudioStream, custom audio stream">
<Field type="rAudioBuffer *" name="buffer" desc="Pointer to internal data used by the audio system" /> <Field type="rAudioBuffer *" name="buffer" desc="Pointer to internal data used by the audio system" />
<Field type="unsigned int" name="sampleRate" desc="Frequency (samples per second)" /> <Field type="unsigned int" name="sampleRate" desc="Frequency (samples per second)" />
<Field type="unsigned int" name="sampleSize" desc="Bit depth (bits per sample): 8, 16, 32 (24 not supported)" /> <Field type="unsigned int" name="sampleSize" desc="Bit depth (bits per sample): 8, 16, 32 (24 not supported)" />
<Field type="unsigned int" name="channels" desc="Number of channels (1-mono, 2-stereo, ...)" /> <Field type="unsigned int" name="channels" desc="Number of channels (1-mono, 2-stereo, ...)" />
</Struct> </Struct>
<Struct name="Sound" fieldCount="2" desc=""> <Struct name="Sound" fieldCount="2" desc="Sound">
<Field type="AudioStream" name="stream" desc="Audio stream" /> <Field type="AudioStream" name="stream" desc="Audio stream" />
<Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" /> <Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" />
</Struct> </Struct>
<Struct name="Music" fieldCount="5" desc=""> <Struct name="Music" fieldCount="5" desc="Music, audio stream, anything longer than ~10 seconds should be streamed">
<Field type="AudioStream" name="stream" desc="Audio stream" /> <Field type="AudioStream" name="stream" desc="Audio stream" />
<Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" /> <Field type="unsigned int" name="frameCount" desc="Total number of frames (considering channels)" />
<Field type="bool" name="looping" desc="Music looping enable" /> <Field type="bool" name="looping" desc="Music looping enable" />
<Field type="int" name="ctxType" desc="Type of music context (audio filetype)" /> <Field type="int" name="ctxType" desc="Type of music context (audio filetype)" />
<Field type="void *" name="ctxData" desc="Audio context data, depends on type" /> <Field type="void *" name="ctxData" desc="Audio context data, depends on type" />
</Struct> </Struct>
<Struct name="VrDeviceInfo" fieldCount="10" desc=""> <Struct name="VrDeviceInfo" fieldCount="10" desc="VrDeviceInfo, Head-Mounted-Display device parameters">
<Field type="int" name="hResolution" desc="Horizontal resolution in pixels" /> <Field type="int" name="hResolution" desc="Horizontal resolution in pixels" />
<Field type="int" name="vResolution" desc="Vertical resolution in pixels" /> <Field type="int" name="vResolution" desc="Vertical resolution in pixels" />
<Field type="float" name="hScreenSize" desc="Horizontal size in meters" /> <Field type="float" name="hScreenSize" desc="Horizontal size in meters" />
@ -196,7 +196,7 @@
<Field type="float" name="lensDistortionValues[4]" desc="Lens distortion constant parameters" /> <Field type="float" name="lensDistortionValues[4]" desc="Lens distortion constant parameters" />
<Field type="float" name="chromaAbCorrection[4]" desc="Chromatic aberration correction parameters" /> <Field type="float" name="chromaAbCorrection[4]" desc="Chromatic aberration correction parameters" />
</Struct> </Struct>
<Struct name="VrStereoConfig" fieldCount="8" desc=""> <Struct name="VrStereoConfig" fieldCount="8" desc="VrStereoConfig, VR stereo rendering configuration for simulator">
<Field type="Matrix" name="projection[2]" desc="VR projection matrices (per eye)" /> <Field type="Matrix" name="projection[2]" desc="VR projection matrices (per eye)" />
<Field type="Matrix" name="viewOffset[2]" desc="VR view offset matrices (per eye)" /> <Field type="Matrix" name="viewOffset[2]" desc="VR view offset matrices (per eye)" />
<Field type="float" name="leftLensCenter[2]" desc="VR left lens center" /> <Field type="float" name="leftLensCenter[2]" desc="VR left lens center" />

View file

@ -91,7 +91,7 @@ typedef struct FunctionInfo {
// Struct info data // Struct info data
typedef struct StructInfo { typedef struct StructInfo {
char name[64]; // Struct name char name[64]; // Struct name
char desc[64]; // Struct type description char desc[128]; // Struct type description
int fieldCount; // Number of fields in the struct int fieldCount; // Number of fields in the struct
char fieldType[MAX_STRUCT_FIELDS][64]; // Field type char fieldType[MAX_STRUCT_FIELDS][64]; // Field type
char fieldName[MAX_STRUCT_FIELDS][64]; // Field name char fieldName[MAX_STRUCT_FIELDS][64]; // Field name
@ -101,7 +101,7 @@ typedef struct StructInfo {
// Enum info data // Enum info data
typedef struct EnumInfo { typedef struct EnumInfo {
char name[64]; // Enum name char name[64]; // Enum name
char desc[64]; // Enum description char desc[128]; // Enum description
int valueCount; // Number of values in enumerator int valueCount; // Number of values in enumerator
char valueName[MAX_ENUM_VALUES][64]; // Value name definition char valueName[MAX_ENUM_VALUES][64]; // Value name definition
int valueInteger[MAX_ENUM_VALUES]; // Value integer int valueInteger[MAX_ENUM_VALUES]; // Value integer
@ -164,8 +164,7 @@ int main(int argc, char* argv[])
char **funcLines = (char **)malloc(MAX_FUNCS_TO_PARSE*sizeof(char *)); char **funcLines = (char **)malloc(MAX_FUNCS_TO_PARSE*sizeof(char *));
// Structs data (multiple lines), selected from "buffer" // Structs data (multiple lines), selected from "buffer"
char **structLines = (char **)malloc(MAX_STRUCTS_TO_PARSE*sizeof(char *)); int *structLines = (int *)malloc(MAX_STRUCTS_TO_PARSE*sizeof(int));
for (int i = 0; i < MAX_STRUCTS_TO_PARSE; i++) structLines[i] = (char *)calloc(MAX_STRUCT_LINE_LENGTH, sizeof(char));
// Enums lines pointers, selected from buffer "lines" // Enums lines pointers, selected from buffer "lines"
int *enumLines = (int *)malloc(MAX_ENUMS_TO_PARSE*sizeof(int)); int *enumLines = (int *)malloc(MAX_ENUMS_TO_PARSE*sizeof(int));
@ -185,52 +184,34 @@ int main(int argc, char* argv[])
} }
} }
// Read structs data (multiple lines, read directly from buffer) // Read struct lines
// TODO: Parse structs data from "lines" instead of "buffer" -> Easier to get struct definition and description for (int i = 0; i < linesCount; i++)
for (int i = 0; i < length; i++)
{ {
// Read struct data (starting with "typedef struct", ending with '} ... ;') // Find structs (starting with "typedef struct ... {", ending with '} ... ;')
// NOTE: We read it directly from buffer if (IsTextEqual(lines[i], "typedef struct", 14))
if (IsTextEqual(buffer + i, "typedef struct", 14))
{ {
int j = 0; int j = 0;
bool validStruct = false; bool validStruct = false;
// WARNING: Typedefs between types: typedef Vector4 Quaternion; // WARNING: Typedefs between types: typedef Vector4 Quaternion;
// (maybe we could export these too?)
for (int c = 0; c < 128; c++) for (int c = 0; c < MAX_LINE_LENGTH; c++)
{ {
if (buffer[i + c] == '{') char v = lines[i][c];
if (v == '{') validStruct = true;
if (v == '{' || v == ';' || v == '\0')
{ {
validStruct = true; // Not valid struct if it ends without '{':
break;
}
else if (buffer[i + c] == ';')
{
// Not valid struct:
// i.e typedef struct rAudioBuffer rAudioBuffer; -> Typedef and forward declaration // i.e typedef struct rAudioBuffer rAudioBuffer; -> Typedef and forward declaration
i += c;
break; break;
} }
} }
if (!validStruct) continue;
if (validStruct) structLines[structCount] = i;
{ while (lines[i][0] != '}') i++;
while (buffer[i + j] != '}') while (lines[i][0] != '\0') i++;
{ structCount++;
structLines[structCount][j] = buffer[i + j];
j++;
}
while (buffer[i + j] != '\n')
{
structLines[structCount][j] = buffer[i + j];
j++;
}
i += j;
structCount++;
}
} }
} }
@ -259,44 +240,36 @@ int main(int argc, char* argv[])
for (int i = 0; i < structCount; i++) for (int i = 0; i < structCount; i++)
{ {
int structLineOffset = 0; char **linesPtr = &lines[structLines[i]];
// TODO: Get struct description // Parse struct description
if (linesPtr[-1][0] == '/')
{
MemoryCopy(structs[i].desc, linesPtr[-1], TextLength(linesPtr[-1]));
}
// Get struct name: typedef struct name { // Get struct name: typedef struct name {
for (int c = 15; c < 64 + 15; c++) const int TDS_LEN = 15; // length of "typedef struct "
for (int c = TDS_LEN; c < 64 + TDS_LEN; c++)
{ {
if (structLines[i][c] == '{') if (linesPtr[0][c] == '{')
{ {
structLineOffset = c + 2; MemoryCopy(structs[i].name, &linesPtr[0][TDS_LEN], c - TDS_LEN - 1);
MemoryCopy(structs[i].name, &structLines[i][15], c - 15 - 1);
break; break;
} }
} }
// Get struct fields and count them -> fields finish with ; // Get struct fields and count them -> fields finish with ;
int j = 0; int l = 1;
while (structLines[i][structLineOffset + j] != '}') while (linesPtr[l][0] != '}')
{ {
// WARNING: Some structs have empty spaces and comments -> OK, processed // WARNING: Some structs have empty spaces and comments -> OK, processed
if ((linesPtr[l][0] != ' ') && (linesPtr[l][0] != '\0'))
int fieldStart = 0;
if ((structLines[i][structLineOffset + j] != ' ') && (structLines[i][structLineOffset + j] != '\n')) fieldStart = structLineOffset + j;
if (fieldStart != 0)
{ {
// Scan one field line // Scan one field line
int c = 0; char *fieldLine = linesPtr[l];
int fieldEndPos = 0; int fieldEndPos = 0;
char fieldLine[256] = { 0 }; while (fieldLine[fieldEndPos] != ';') fieldEndPos++;
while (structLines[i][structLineOffset + j] != '\n')
{
if (structLines[i][structLineOffset + j] == ';') fieldEndPos = c;
fieldLine[c] = structLines[i][structLineOffset + j];
c++; j++;
}
if (fieldLine[0] != '/') // Field line is not a comment if (fieldLine[0] != '/') // Field line is not a comment
{ {
@ -321,12 +294,11 @@ int main(int argc, char* argv[])
} }
} }
j++; l++;
} }
} }
for (int i = 0; i < MAX_STRUCTS_TO_PARSE; i++) free(structLines[i]);
free(structLines); free(structLines);
// Enum info data // Enum info data