Mercurial
annotate third_party/raylib/include/rlgl.h @ 71:75de5903355c
Giagantic changes that update Dowa library to be more align with stb style array and hashmap. Updated Seobeo to be caching on server side instead of file level caching. Deleted bunch of things I don't really use.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Sun, 28 Dec 2025 20:34:22 -0800 |
| parents | f33d9ff8b6e8 |
| children |
| rev | line source |
|---|---|
|
11
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1 /********************************************************************************************** |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3 * rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5 * DESCRIPTION: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
6 * An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
7 * that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
8 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
9 * ADDITIONAL NOTES: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
10 * When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
11 * initialized on rlglInit() to accumulate vertex data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
12 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
13 * When an internal state change is required all the stored vertex data is renderer in batch, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
14 * additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
15 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
16 * Some resources are also loaded for convenience, here the complete list: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
17 * - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
18 * - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
19 * - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
20 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
21 * Internal buffer (and resources) must be manually unloaded calling rlglClose() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
22 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
23 * CONFIGURATION: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
24 * #define GRAPHICS_API_OPENGL_11 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
25 * #define GRAPHICS_API_OPENGL_21 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
26 * #define GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
27 * #define GRAPHICS_API_OPENGL_43 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
28 * #define GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
29 * #define GRAPHICS_API_OPENGL_ES3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
30 * Use selected OpenGL graphics backend, should be supported by platform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
31 * Those preprocessor defines are only used on rlgl module, if OpenGL version is |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
32 * required by any other module, use rlGetVersion() to check it |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
33 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
34 * #define RLGL_IMPLEMENTATION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
35 * Generates the implementation of the library into the included file |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
36 * If not defined, the library is in header only mode and can be included in other headers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
37 * or source files without problems. But only ONE file should hold the implementation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
38 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
39 * #define RLGL_RENDER_TEXTURES_HINT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
40 * Enable framebuffer objects (fbo) support (enabled by default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
41 * Some GPUs could not support them despite the OpenGL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
42 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
43 * #define RLGL_SHOW_GL_DETAILS_INFO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
44 * Show OpenGL extensions and capabilities detailed logs on init |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
45 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
46 * #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
47 * Enable debug context (only available on OpenGL 4.3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
48 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
49 * rlgl capabilities could be customized just defining some internal |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
50 * values before library inclusion (default values listed): |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
51 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
52 * #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
53 * #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
54 * #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
55 * #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
56 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
57 * #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
58 * #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
59 * #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
60 * #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
61 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
62 * When loading a shader, the following vertex attributes and uniform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
63 * location names are tried to be set automatically: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
64 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
65 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
66 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
67 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
68 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
69 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
70 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
71 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
72 * #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
73 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
74 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
75 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
76 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
77 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
78 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
79 * #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
80 * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
81 * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
82 * #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
83 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
84 * DEPENDENCIES: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
85 * - OpenGL libraries (depending on platform and OpenGL version selected) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
86 * - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
87 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
88 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
89 * LICENSE: zlib/libpng |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
90 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
91 * Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
92 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
93 * This software is provided "as-is", without any express or implied warranty. In no event |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
94 * will the authors be held liable for any damages arising from the use of this software. |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
95 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
96 * Permission is granted to anyone to use this software for any purpose, including commercial |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
97 * applications, and to alter it and redistribute it freely, subject to the following restrictions: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
98 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
99 * 1. The origin of this software must not be misrepresented; you must not claim that you |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
100 * wrote the original software. If you use this software in a product, an acknowledgment |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
101 * in the product documentation would be appreciated but is not required. |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
102 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
103 * 2. Altered source versions must be plainly marked as such, and must not be misrepresented |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
104 * as being the original software. |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
105 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
106 * 3. This notice may not be removed or altered from any source distribution. |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
107 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
108 **********************************************************************************************/ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
109 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
110 #ifndef RLGL_H |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
111 #define RLGL_H |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
112 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
113 #define RLGL_VERSION "5.0" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
114 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
115 // Function specifiers in case library is build/used as a shared library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
116 // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
117 // NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
118 #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
119 #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
120 #elif defined(BUILD_LIBTYPE_SHARED) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
121 #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
122 #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
123 #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
124 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
125 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
126 // Function specifiers definition |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
127 #ifndef RLAPI |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
128 #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
129 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
130 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
131 // Support TRACELOG macros |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
132 #ifndef TRACELOG |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
133 #define TRACELOG(level, ...) (void)0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
134 #define TRACELOGD(...) (void)0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
135 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
136 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
137 // Allow custom memory allocators |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
138 #ifndef RL_MALLOC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
139 #define RL_MALLOC(sz) malloc(sz) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
140 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
141 #ifndef RL_CALLOC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
142 #define RL_CALLOC(n,sz) calloc(n,sz) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
143 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
144 #ifndef RL_REALLOC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
145 #define RL_REALLOC(n,sz) realloc(n,sz) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
146 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
147 #ifndef RL_FREE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
148 #define RL_FREE(p) free(p) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
149 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
150 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
151 // Security check in case no GRAPHICS_API_OPENGL_* defined |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
152 #if !defined(GRAPHICS_API_OPENGL_11) && \ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
153 !defined(GRAPHICS_API_OPENGL_21) && \ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
154 !defined(GRAPHICS_API_OPENGL_33) && \ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
155 !defined(GRAPHICS_API_OPENGL_43) && \ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
156 !defined(GRAPHICS_API_OPENGL_ES2) && \ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
157 !defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
158 #define GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
159 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
160 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
161 // Security check in case multiple GRAPHICS_API_OPENGL_* defined |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
162 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
163 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
164 #undef GRAPHICS_API_OPENGL_21 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
165 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
166 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
167 #undef GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
168 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
169 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
170 #undef GRAPHICS_API_OPENGL_43 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
171 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
172 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
173 #undef GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
174 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
175 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
176 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
177 // OpenGL 2.1 uses most of OpenGL 3.3 Core functionality |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
178 // WARNING: Specific parts are checked with #if defines |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
179 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
180 #define GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
181 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
182 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
183 // OpenGL 4.3 uses OpenGL 3.3 Core functionality |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
184 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
185 #define GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
186 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
187 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
188 // OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
189 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
190 #define GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
191 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
192 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
193 // Support framebuffer objects by default |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
194 // NOTE: Some driver implementation do not support it, despite they should |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
195 #define RLGL_RENDER_TEXTURES_HINT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
196 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
197 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
198 // Defines and Macros |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
199 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
200 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
201 // Default internal render batch elements limits |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
202 #ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
203 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
204 // This is the maximum amount of elements (quads) per batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
205 // NOTE: Be careful with text, every letter maps to a quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
206 #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
207 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
208 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
209 // We reduce memory sizes for embedded systems (RPI and HTML5) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
210 // NOTE: On HTML5 (emscripten) this is allocated on heap, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
211 // by default it's only 16MB!...just take care... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
212 #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
213 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
214 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
215 #ifndef RL_DEFAULT_BATCH_BUFFERS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
216 #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
217 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
218 #ifndef RL_DEFAULT_BATCH_DRAWCALLS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
219 #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
220 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
221 #ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
222 #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
223 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
224 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
225 // Internal Matrix stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
226 #ifndef RL_MAX_MATRIX_STACK_SIZE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
227 #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
228 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
229 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
230 // Shader limits |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
231 #ifndef RL_MAX_SHADER_LOCATIONS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
232 #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
233 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
234 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
235 // Projection matrix culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
236 #ifndef RL_CULL_DISTANCE_NEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
237 #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
238 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
239 #ifndef RL_CULL_DISTANCE_FAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
240 #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
241 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
242 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
243 // Texture parameters (equivalent to OpenGL defines) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
244 #define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
245 #define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
246 #define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
247 #define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
248 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
249 #define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
250 #define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
251 #define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
252 #define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
253 #define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
254 #define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
255 #define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
256 #define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
257 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
258 #define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
259 #define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
260 #define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
261 #define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
262 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
263 // Matrix modes (equivalent to OpenGL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
264 #define RL_MODELVIEW 0x1700 // GL_MODELVIEW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
265 #define RL_PROJECTION 0x1701 // GL_PROJECTION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
266 #define RL_TEXTURE 0x1702 // GL_TEXTURE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
267 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
268 // Primitive assembly draw modes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
269 #define RL_LINES 0x0001 // GL_LINES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
270 #define RL_TRIANGLES 0x0004 // GL_TRIANGLES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
271 #define RL_QUADS 0x0007 // GL_QUADS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
272 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
273 // GL equivalent data types |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
274 #define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
275 #define RL_FLOAT 0x1406 // GL_FLOAT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
276 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
277 // GL buffer usage hint |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
278 #define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
279 #define RL_STREAM_READ 0x88E1 // GL_STREAM_READ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
280 #define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
281 #define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
282 #define RL_STATIC_READ 0x88E5 // GL_STATIC_READ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
283 #define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
284 #define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
285 #define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
286 #define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
287 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
288 // GL Shader type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
289 #define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
290 #define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
291 #define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
292 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
293 // GL blending factors |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
294 #define RL_ZERO 0 // GL_ZERO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
295 #define RL_ONE 1 // GL_ONE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
296 #define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
297 #define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
298 #define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
299 #define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
300 #define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
301 #define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
302 #define RL_DST_COLOR 0x0306 // GL_DST_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
303 #define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
304 #define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
305 #define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
306 #define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
307 #define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
308 #define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
309 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
310 // GL blending functions/equations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
311 #define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
312 #define RL_MIN 0x8007 // GL_MIN |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
313 #define RL_MAX 0x8008 // GL_MAX |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
314 #define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
315 #define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
316 #define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
317 #define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
318 #define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
319 #define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
320 #define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
321 #define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
322 #define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
323 #define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
324 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
325 #define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
326 #define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
327 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
328 // Default shader vertex attribute locations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
329 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
330 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
331 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
332 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
333 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
334 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
335 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
336 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
337 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
338 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
339 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
340 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
341 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
342 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
343 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
344 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
345 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
346 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
347 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
348 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
349 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
350 #ifdef RL_SUPPORT_MESH_GPU_SKINNING |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
351 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
352 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
353 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
354 #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
355 #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
356 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
357 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
358 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
359 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
360 // Types and Structures Definition |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
361 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
362 #if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
363 #include <stdbool.h> |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
364 #elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
365 // Boolean type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
366 typedef enum bool { false = 0, true = !false } bool; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
367 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
368 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
369 #if !defined(RL_MATRIX_TYPE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
370 // Matrix, 4x4 components, column major, OpenGL style, right handed |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
371 typedef struct Matrix { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
372 float m0, m4, m8, m12; // Matrix first row (4 components) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
373 float m1, m5, m9, m13; // Matrix second row (4 components) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
374 float m2, m6, m10, m14; // Matrix third row (4 components) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
375 float m3, m7, m11, m15; // Matrix fourth row (4 components) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
376 } Matrix; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
377 #define RL_MATRIX_TYPE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
378 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
379 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
380 // Dynamic vertex buffers (position + texcoords + colors + indices arrays) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
381 typedef struct rlVertexBuffer { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
382 int elementCount; // Number of elements in the buffer (QUADS) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
383 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
384 float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
385 float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
386 float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
387 unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
388 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
389 unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
390 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
391 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
392 unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
393 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
394 unsigned int vaoId; // OpenGL Vertex Array Object id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
395 unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
396 } rlVertexBuffer; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
397 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
398 // Draw call type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
399 // NOTE: Only texture changes register a new draw, other state-change-related elements are not |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
400 // used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
401 // of those state-change happens (this is done in core module) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
402 typedef struct rlDrawCall { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
403 int mode; // Drawing mode: LINES, TRIANGLES, QUADS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
404 int vertexCount; // Number of vertex of the draw |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
405 int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
406 //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
407 //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
408 unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
409 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
410 //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
411 //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
412 } rlDrawCall; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
413 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
414 // rlRenderBatch type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
415 typedef struct rlRenderBatch { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
416 int bufferCount; // Number of vertex buffers (multi-buffering support) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
417 int currentBuffer; // Current buffer tracking in case of multi-buffering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
418 rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
419 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
420 rlDrawCall *draws; // Draw calls array, depends on textureId |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
421 int drawCounter; // Draw calls counter |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
422 float currentDepth; // Current depth value for next draw |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
423 } rlRenderBatch; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
424 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
425 // OpenGL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
426 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
427 RL_OPENGL_11 = 1, // OpenGL 1.1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
428 RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
429 RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
430 RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
431 RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
432 RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
433 } rlGlVersion; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
434 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
435 // Trace log level |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
436 // NOTE: Organized by priority level |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
437 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
438 RL_LOG_ALL = 0, // Display all logs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
439 RL_LOG_TRACE, // Trace logging, intended for internal use only |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
440 RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
441 RL_LOG_INFO, // Info logging, used for program execution info |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
442 RL_LOG_WARNING, // Warning logging, used on recoverable failures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
443 RL_LOG_ERROR, // Error logging, used on unrecoverable failures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
444 RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
445 RL_LOG_NONE // Disable logging |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
446 } rlTraceLogLevel; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
447 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
448 // Texture pixel formats |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
449 // NOTE: Support depends on OpenGL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
450 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
451 RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
452 RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
453 RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
454 RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
455 RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
456 RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
457 RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
458 RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
459 RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
460 RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
461 RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
462 RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
463 RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
464 RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
465 RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
466 RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
467 RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
468 RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
469 RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
470 RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
471 RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
472 RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
473 RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
474 RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
475 } rlPixelFormat; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
476 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
477 // Texture parameters: filter mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
478 // NOTE 1: Filtering considers mipmaps if available in the texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
479 // NOTE 2: Filter is accordingly set for minification and magnification |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
480 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
481 RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
482 RL_TEXTURE_FILTER_BILINEAR, // Linear filtering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
483 RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
484 RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
485 RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
486 RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
487 } rlTextureFilter; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
488 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
489 // Color blending modes (pre-defined) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
490 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
491 RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
492 RL_BLEND_ADDITIVE, // Blend textures adding colors |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
493 RL_BLEND_MULTIPLIED, // Blend textures multiplying colors |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
494 RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
495 RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
496 RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
497 RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
498 RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
499 } rlBlendMode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
500 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
501 // Shader location point type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
502 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
503 RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
504 RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
505 RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
506 RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
507 RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
508 RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
509 RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
510 RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
511 RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
512 RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
513 RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
514 RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
515 RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
516 RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
517 RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
518 RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
519 RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
520 RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
521 RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
522 RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
523 RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
524 RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
525 RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
526 RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
527 RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
528 RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
529 } rlShaderLocationIndex; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
530 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
531 #define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
532 #define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
533 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
534 // Shader uniform data type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
535 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
536 RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
537 RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
538 RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
539 RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
540 RL_SHADER_UNIFORM_INT, // Shader uniform type: int |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
541 RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
542 RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
543 RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
544 RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
545 RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
546 RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
547 RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
548 RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
549 } rlShaderUniformDataType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
550 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
551 // Shader attribute data types |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
552 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
553 RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
554 RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
555 RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
556 RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
557 } rlShaderAttributeDataType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
558 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
559 // Framebuffer attachment type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
560 // NOTE: By default up to 8 color channels defined, but it can be more |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
561 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
562 RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
563 RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
564 RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
565 RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
566 RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
567 RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
568 RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
569 RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
570 RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
571 RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
572 } rlFramebufferAttachType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
573 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
574 // Framebuffer texture attachment type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
575 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
576 RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
577 RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
578 RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
579 RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
580 RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
581 RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
582 RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
583 RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
584 } rlFramebufferAttachTextureType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
585 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
586 // Face culling mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
587 typedef enum { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
588 RL_CULL_FACE_FRONT = 0, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
589 RL_CULL_FACE_BACK |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
590 } rlCullMode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
591 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
592 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
593 // Functions Declaration - Matrix operations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
594 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
595 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
596 #if defined(__cplusplus) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
597 extern "C" { // Prevents name mangling of functions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
598 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
599 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
600 RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
601 RLAPI void rlPushMatrix(void); // Push the current matrix to stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
602 RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
603 RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
604 RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
605 RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
606 RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
607 RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
608 RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
609 RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
610 RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
611 RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
612 RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
613 RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
614 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
615 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
616 // Functions Declaration - Vertex level operations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
617 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
618 RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
619 RLAPI void rlEnd(void); // Finish vertex providing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
620 RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
621 RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
622 RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
623 RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
624 RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
625 RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
626 RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
627 RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
628 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
629 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
630 // Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
631 // NOTE: This functions are used to completely abstract raylib code from OpenGL layer, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
632 // some of them are direct wrappers over OpenGL calls, some others are custom |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
633 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
634 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
635 // Vertex buffers state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
636 RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
637 RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
638 RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
639 RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
640 RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
641 RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
642 RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
643 RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
644 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
645 RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
646 RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
647 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
648 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
649 // Textures state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
650 RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
651 RLAPI void rlEnableTexture(unsigned int id); // Enable texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
652 RLAPI void rlDisableTexture(void); // Disable texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
653 RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
654 RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
655 RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
656 RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
657 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
658 // Shader state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
659 RLAPI void rlEnableShader(unsigned int id); // Enable shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
660 RLAPI void rlDisableShader(void); // Disable shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
661 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
662 // Framebuffer state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
663 RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
664 RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
665 RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
666 RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
667 RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
668 RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
669 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
670 // General render state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
671 RLAPI void rlEnableColorBlend(void); // Enable color blending |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
672 RLAPI void rlDisableColorBlend(void); // Disable color blending |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
673 RLAPI void rlEnableDepthTest(void); // Enable depth test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
674 RLAPI void rlDisableDepthTest(void); // Disable depth test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
675 RLAPI void rlEnableDepthMask(void); // Enable depth write |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
676 RLAPI void rlDisableDepthMask(void); // Disable depth write |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
677 RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
678 RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
679 RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
680 RLAPI void rlSetCullFace(int mode); // Set face culling mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
681 RLAPI void rlEnableScissorTest(void); // Enable scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
682 RLAPI void rlDisableScissorTest(void); // Disable scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
683 RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
684 RLAPI void rlEnableWireMode(void); // Enable wire mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
685 RLAPI void rlEnablePointMode(void); // Enable point mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
686 RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
687 RLAPI void rlSetLineWidth(float width); // Set the line drawing width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
688 RLAPI float rlGetLineWidth(void); // Get the line drawing width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
689 RLAPI void rlEnableSmoothLines(void); // Enable line aliasing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
690 RLAPI void rlDisableSmoothLines(void); // Disable line aliasing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
691 RLAPI void rlEnableStereoRender(void); // Enable stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
692 RLAPI void rlDisableStereoRender(void); // Disable stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
693 RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
694 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
695 RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
696 RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
697 RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
698 RLAPI void rlSetBlendMode(int mode); // Set blending mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
699 RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
700 RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
701 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
702 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
703 // Functions Declaration - rlgl functionality |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
704 //------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
705 // rlgl initialization functions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
706 RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
707 RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
708 RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
709 RLAPI int rlGetVersion(void); // Get current OpenGL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
710 RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
711 RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
712 RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
713 RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
714 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
715 RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
716 RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
717 RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
718 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
719 // Render batch management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
720 // NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
721 // but this render batch API is exposed in case of custom batches are required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
722 RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
723 RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
724 RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
725 RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
726 RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
727 RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
728 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
729 RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
730 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
731 //------------------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
732 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
733 // Vertex buffers management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
734 RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
735 RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
736 RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
737 RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
738 RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
739 RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
740 RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
741 RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
742 RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
743 RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
744 RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
745 RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
746 RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
747 RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
748 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
749 // Textures management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
750 RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
751 RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
752 RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
753 RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
754 RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
755 RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
756 RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
757 RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
758 RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
759 RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
760 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
761 // Framebuffer management (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
762 RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
763 RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
764 RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
765 RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
766 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
767 // Shaders management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
768 RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
769 RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
770 RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
771 RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
772 RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
773 RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
774 RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
775 RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
776 RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
777 RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
778 RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
779 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
780 // Compute shader management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
781 RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
782 RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
783 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
784 // Shader buffer storage object management (ssbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
785 RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
786 RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
787 RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
788 RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
789 RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
790 RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
791 RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
792 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
793 // Buffer management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
794 RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
795 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
796 // Matrix state management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
797 RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
798 RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
799 RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
800 RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
801 RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
802 RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
803 RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
804 RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
805 RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
806 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
807 // Quick and dirty cube/quad buffers load->draw->unload |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
808 RLAPI void rlLoadDrawCube(void); // Load and draw a cube |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
809 RLAPI void rlLoadDrawQuad(void); // Load and draw a quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
810 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
811 #if defined(__cplusplus) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
812 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
813 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
814 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
815 #endif // RLGL_H |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
816 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
817 /*********************************************************************************** |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
818 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
819 * RLGL IMPLEMENTATION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
820 * |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
821 ************************************************************************************/ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
822 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
823 #if defined(RLGL_IMPLEMENTATION) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
824 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
825 // Expose OpenGL functions from glad in raylib |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
826 #if defined(BUILD_LIBTYPE_SHARED) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
827 #define GLAD_API_CALL_EXPORT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
828 #define GLAD_API_CALL_EXPORT_BUILD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
829 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
830 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
831 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
832 #if defined(__APPLE__) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
833 #include <OpenGL/gl.h> // OpenGL 1.1 library for OSX |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
834 #include <OpenGL/glext.h> // OpenGL extensions library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
835 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
836 // APIENTRY for OpenGL function pointer declarations is required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
837 #if !defined(APIENTRY) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
838 #if defined(_WIN32) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
839 #define APIENTRY __stdcall |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
840 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
841 #define APIENTRY |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
842 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
843 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
844 // WINGDIAPI definition. Some Windows OpenGL headers need it |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
845 #if !defined(WINGDIAPI) && defined(_WIN32) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
846 #define WINGDIAPI __declspec(dllimport) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
847 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
848 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
849 #include <GL/gl.h> // OpenGL 1.1 library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
850 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
851 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
852 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
853 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
854 #define GLAD_MALLOC RL_MALLOC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
855 #define GLAD_FREE RL_FREE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
856 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
857 #define GLAD_GL_IMPLEMENTATION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
858 #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
859 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
860 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
861 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
862 #include <GLES3/gl3.h> // OpenGL ES 3.0 library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
863 #define GL_GLEXT_PROTOTYPES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
864 #include <GLES2/gl2ext.h> // OpenGL ES 2.0 extensions library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
865 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
866 // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
867 // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
868 #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
869 #define GLAD_GLES2_IMPLEMENTATION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
870 #include "external/glad_gles2.h" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
871 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
872 #define GL_GLEXT_PROTOTYPES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
873 //#include <EGL/egl.h> // EGL library -> not required, platform layer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
874 #include <GLES2/gl2.h> // OpenGL ES 2.0 library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
875 #include <GLES2/gl2ext.h> // OpenGL ES 2.0 extensions library |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
876 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
877 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
878 // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
879 // provided headers (despite being defined in official Khronos GLES2 headers) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
880 #if defined(PLATFORM_DRM) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
881 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
882 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
883 typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
884 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
885 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
886 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
887 #include <stdlib.h> // Required for: malloc(), free() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
888 #include <string.h> // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
889 #include <math.h> // Required for: sqrtf(), sinf(), cosf(), floor(), log() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
890 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
891 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
892 // Defines and Macros |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
893 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
894 #ifndef PI |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
895 #define PI 3.14159265358979323846f |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
896 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
897 #ifndef DEG2RAD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
898 #define DEG2RAD (PI/180.0f) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
899 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
900 #ifndef RAD2DEG |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
901 #define RAD2DEG (180.0f/PI) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
902 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
903 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
904 #ifndef GL_SHADING_LANGUAGE_VERSION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
905 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
906 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
907 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
908 #ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
909 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
910 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
911 #ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
912 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
913 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
914 #ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
915 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
916 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
917 #ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
918 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
919 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
920 #ifndef GL_ETC1_RGB8_OES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
921 #define GL_ETC1_RGB8_OES 0x8D64 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
922 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
923 #ifndef GL_COMPRESSED_RGB8_ETC2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
924 #define GL_COMPRESSED_RGB8_ETC2 0x9274 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
925 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
926 #ifndef GL_COMPRESSED_RGBA8_ETC2_EAC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
927 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
928 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
929 #ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
930 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
931 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
932 #ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
933 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
934 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
935 #ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
936 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
937 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
938 #ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
939 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
940 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
941 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
942 #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
943 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
944 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
945 #ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
946 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
947 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
948 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
949 #ifndef GL_PROGRAM_POINT_SIZE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
950 #define GL_PROGRAM_POINT_SIZE 0x8642 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
951 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
952 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
953 #ifndef GL_LINE_WIDTH |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
954 #define GL_LINE_WIDTH 0x0B21 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
955 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
956 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
957 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
958 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
959 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
960 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
961 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
962 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
963 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
964 #define GL_LUMINANCE 0x1909 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
965 #define GL_LUMINANCE_ALPHA 0x190A |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
966 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
967 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
968 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
969 #define glClearDepth glClearDepthf |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
970 #if !defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
971 #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
972 #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
973 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
974 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
975 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
976 // Default shader vertex attribute names to set location points |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
977 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
978 #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
979 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
980 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
981 #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
982 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
983 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
984 #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
985 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
986 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
987 #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
988 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
989 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
990 #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
991 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
992 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
993 #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
994 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
995 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
996 #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
997 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
998 #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
999 #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1000 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1001 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1002 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1003 #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1004 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1005 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1006 #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1007 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1008 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1009 #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1010 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1011 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1012 #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1013 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1014 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1015 #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1016 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1017 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1018 #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1019 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1020 #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1021 #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1022 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1023 #ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1024 #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1025 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1026 #ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1027 #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1028 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1029 #ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1030 #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1031 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1032 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1033 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1034 // Types and Structures Definition |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1035 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1036 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1037 typedef struct rlglData { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1038 rlRenderBatch *currentBatch; // Current render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1039 rlRenderBatch defaultBatch; // Default internal render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1040 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1041 struct { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1042 int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1043 float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1044 float normalx, normaly, normalz; // Current active normal (added on glVertex*()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1045 unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1046 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1047 int currentMatrixMode; // Current matrix mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1048 Matrix *currentMatrix; // Current matrix pointer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1049 Matrix modelview; // Default modelview matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1050 Matrix projection; // Default projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1051 Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1052 bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1053 Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1054 int stackCounter; // Matrix stack counter |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1055 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1056 unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1057 unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1058 unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1059 unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1060 unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1061 int *defaultShaderLocs; // Default shader locations pointer to be used on rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1062 unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1063 int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1064 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1065 bool stereoRender; // Stereo rendering flag |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1066 Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1067 Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1068 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1069 // Blending variables |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1070 int currentBlendMode; // Blending mode active |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1071 int glBlendSrcFactor; // Blending source factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1072 int glBlendDstFactor; // Blending destination factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1073 int glBlendEquation; // Blending equation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1074 int glBlendSrcFactorRGB; // Blending source RGB factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1075 int glBlendDestFactorRGB; // Blending destination RGB factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1076 int glBlendSrcFactorAlpha; // Blending source alpha factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1077 int glBlendDestFactorAlpha; // Blending destination alpha factor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1078 int glBlendEquationRGB; // Blending equation for RGB |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1079 int glBlendEquationAlpha; // Blending equation for alpha |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1080 bool glCustomBlendModeModified; // Custom blending factor and equation modification status |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1081 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1082 int framebufferWidth; // Current framebuffer width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1083 int framebufferHeight; // Current framebuffer height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1084 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1085 } State; // Renderer state |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1086 struct { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1087 bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1088 bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1089 bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1090 bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1091 bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1092 bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1093 bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1094 bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1095 bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1096 bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1097 bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1098 bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1099 bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1100 bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1101 bool computeShader; // Compute shaders support (GL_ARB_compute_shader) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1102 bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1103 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1104 float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1105 int maxDepthBits; // Maximum bits for depth component |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1106 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1107 } ExtSupported; // Extensions supported flags |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1108 } rlglData; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1109 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1110 typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1111 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1112 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1113 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1114 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1115 // Global Variables Definition |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1116 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1117 static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1118 static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1119 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1120 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1121 static rlglData RLGL = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1122 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1123 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1124 #if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1125 // NOTE: VAO functionality is exposed through extensions (OES) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1126 static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1127 static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1128 static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1129 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1130 // NOTE: Instancing functionality could also be available through extension |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1131 static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1132 static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1133 static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1134 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1135 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1136 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1137 // Module specific Functions Declaration |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1138 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1139 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1140 static void rlLoadShaderDefault(void); // Load default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1141 static void rlUnloadShaderDefault(void); // Unload default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1142 #if defined(RLGL_SHOW_GL_DETAILS_INFO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1143 static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1144 #endif // RLGL_SHOW_GL_DETAILS_INFO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1145 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1146 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1147 static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1148 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1149 // Auxiliar matrix math functions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1150 typedef struct rl_float16 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1151 float v[16]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1152 } rl_float16; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1153 static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1154 #define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1155 static Matrix rlMatrixIdentity(void); // Get identity matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1156 static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1157 static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1158 static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1159 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1160 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1161 // Module Functions Definition - Matrix operations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1162 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1163 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1164 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1165 // Fallback to OpenGL 1.1 function calls |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1166 //--------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1167 void rlMatrixMode(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1168 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1169 switch (mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1170 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1171 case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1172 case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1173 case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1174 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1175 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1176 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1177 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1178 void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1179 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1180 glFrustum(left, right, bottom, top, znear, zfar); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1181 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1182 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1183 void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1184 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1185 glOrtho(left, right, bottom, top, znear, zfar); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1186 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1187 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1188 void rlPushMatrix(void) { glPushMatrix(); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1189 void rlPopMatrix(void) { glPopMatrix(); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1190 void rlLoadIdentity(void) { glLoadIdentity(); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1191 void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1192 void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1193 void rlScalef(float x, float y, float z) { glScalef(x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1194 void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1195 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1196 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1197 // Choose the current matrix to be transformed |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1198 void rlMatrixMode(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1199 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1200 if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1201 else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1202 //else if (mode == RL_TEXTURE) // Not supported |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1203 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1204 RLGL.State.currentMatrixMode = mode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1205 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1206 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1207 // Push the current matrix into RLGL.State.stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1208 void rlPushMatrix(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1209 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1210 if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1211 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1212 if (RLGL.State.currentMatrixMode == RL_MODELVIEW) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1213 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1214 RLGL.State.transformRequired = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1215 RLGL.State.currentMatrix = &RLGL.State.transform; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1216 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1217 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1218 RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1219 RLGL.State.stackCounter++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1220 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1221 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1222 // Pop lattest inserted matrix from RLGL.State.stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1223 void rlPopMatrix(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1224 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1225 if (RLGL.State.stackCounter > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1226 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1227 Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1228 *RLGL.State.currentMatrix = mat; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1229 RLGL.State.stackCounter--; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1230 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1231 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1232 if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1233 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1234 RLGL.State.currentMatrix = &RLGL.State.modelview; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1235 RLGL.State.transformRequired = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1236 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1237 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1238 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1239 // Reset current matrix to identity matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1240 void rlLoadIdentity(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1241 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1242 *RLGL.State.currentMatrix = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1243 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1244 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1245 // Multiply the current matrix by a translation matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1246 void rlTranslatef(float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1247 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1248 Matrix matTranslation = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1249 1.0f, 0.0f, 0.0f, x, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1250 0.0f, 1.0f, 0.0f, y, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1251 0.0f, 0.0f, 1.0f, z, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1252 0.0f, 0.0f, 0.0f, 1.0f |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1253 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1254 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1255 // NOTE: We transpose matrix with multiplication order |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1256 *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1257 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1258 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1259 // Multiply the current matrix by a rotation matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1260 // NOTE: The provided angle must be in degrees |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1261 void rlRotatef(float angle, float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1262 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1263 Matrix matRotation = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1264 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1265 // Axis vector (x, y, z) normalization |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1266 float lengthSquared = x*x + y*y + z*z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1267 if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1268 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1269 float inverseLength = 1.0f/sqrtf(lengthSquared); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1270 x *= inverseLength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1271 y *= inverseLength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1272 z *= inverseLength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1273 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1274 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1275 // Rotation matrix generation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1276 float sinres = sinf(DEG2RAD*angle); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1277 float cosres = cosf(DEG2RAD*angle); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1278 float t = 1.0f - cosres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1279 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1280 matRotation.m0 = x*x*t + cosres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1281 matRotation.m1 = y*x*t + z*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1282 matRotation.m2 = z*x*t - y*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1283 matRotation.m3 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1284 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1285 matRotation.m4 = x*y*t - z*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1286 matRotation.m5 = y*y*t + cosres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1287 matRotation.m6 = z*y*t + x*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1288 matRotation.m7 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1289 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1290 matRotation.m8 = x*z*t + y*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1291 matRotation.m9 = y*z*t - x*sinres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1292 matRotation.m10 = z*z*t + cosres; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1293 matRotation.m11 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1294 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1295 matRotation.m12 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1296 matRotation.m13 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1297 matRotation.m14 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1298 matRotation.m15 = 1.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1299 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1300 // NOTE: We transpose matrix with multiplication order |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1301 *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1302 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1303 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1304 // Multiply the current matrix by a scaling matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1305 void rlScalef(float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1306 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1307 Matrix matScale = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1308 x, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1309 0.0f, y, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1310 0.0f, 0.0f, z, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1311 0.0f, 0.0f, 0.0f, 1.0f |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1312 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1313 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1314 // NOTE: We transpose matrix with multiplication order |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1315 *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1316 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1317 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1318 // Multiply the current matrix by another matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1319 void rlMultMatrixf(const float *matf) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1320 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1321 // Matrix creation from array |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1322 Matrix mat = { matf[0], matf[4], matf[8], matf[12], |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1323 matf[1], matf[5], matf[9], matf[13], |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1324 matf[2], matf[6], matf[10], matf[14], |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1325 matf[3], matf[7], matf[11], matf[15] }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1326 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1327 *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1328 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1329 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1330 // Multiply the current matrix by a perspective matrix generated by parameters |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1331 void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1332 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1333 Matrix matFrustum = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1334 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1335 float rl = (float)(right - left); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1336 float tb = (float)(top - bottom); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1337 float fn = (float)(zfar - znear); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1338 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1339 matFrustum.m0 = ((float) znear*2.0f)/rl; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1340 matFrustum.m1 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1341 matFrustum.m2 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1342 matFrustum.m3 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1343 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1344 matFrustum.m4 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1345 matFrustum.m5 = ((float) znear*2.0f)/tb; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1346 matFrustum.m6 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1347 matFrustum.m7 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1348 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1349 matFrustum.m8 = ((float)right + (float)left)/rl; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1350 matFrustum.m9 = ((float)top + (float)bottom)/tb; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1351 matFrustum.m10 = -((float)zfar + (float)znear)/fn; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1352 matFrustum.m11 = -1.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1353 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1354 matFrustum.m12 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1355 matFrustum.m13 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1356 matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1357 matFrustum.m15 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1358 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1359 *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1360 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1361 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1362 // Multiply the current matrix by an orthographic matrix generated by parameters |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1363 void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1364 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1365 // NOTE: If left-right and top-botton values are equal it could create a division by zero, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1366 // response to it is platform/compiler dependant |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1367 Matrix matOrtho = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1368 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1369 float rl = (float)(right - left); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1370 float tb = (float)(top - bottom); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1371 float fn = (float)(zfar - znear); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1372 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1373 matOrtho.m0 = 2.0f/rl; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1374 matOrtho.m1 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1375 matOrtho.m2 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1376 matOrtho.m3 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1377 matOrtho.m4 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1378 matOrtho.m5 = 2.0f/tb; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1379 matOrtho.m6 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1380 matOrtho.m7 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1381 matOrtho.m8 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1382 matOrtho.m9 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1383 matOrtho.m10 = -2.0f/fn; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1384 matOrtho.m11 = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1385 matOrtho.m12 = -((float)left + (float)right)/rl; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1386 matOrtho.m13 = -((float)top + (float)bottom)/tb; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1387 matOrtho.m14 = -((float)zfar + (float)znear)/fn; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1388 matOrtho.m15 = 1.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1389 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1390 *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1391 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1392 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1393 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1394 // Set the viewport area (transformation from normalized device coordinates to window coordinates) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1395 // NOTE: We store current viewport dimensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1396 void rlViewport(int x, int y, int width, int height) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1397 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1398 glViewport(x, y, width, height); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1399 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1400 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1401 // Set clip planes distances |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1402 void rlSetClipPlanes(double nearPlane, double farPlane) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1403 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1404 rlCullDistanceNear = nearPlane; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1405 rlCullDistanceFar = farPlane; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1406 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1407 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1408 // Get cull plane distance near |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1409 double rlGetCullDistanceNear(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1410 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1411 return rlCullDistanceNear; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1412 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1413 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1414 // Get cull plane distance far |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1415 double rlGetCullDistanceFar(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1416 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1417 return rlCullDistanceFar; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1418 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1419 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1420 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1421 // Module Functions Definition - Vertex level operations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1422 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1423 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1424 // Fallback to OpenGL 1.1 function calls |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1425 //--------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1426 void rlBegin(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1427 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1428 switch (mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1429 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1430 case RL_LINES: glBegin(GL_LINES); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1431 case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1432 case RL_QUADS: glBegin(GL_QUADS); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1433 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1434 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1435 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1436 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1437 void rlEnd(void) { glEnd(); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1438 void rlVertex2i(int x, int y) { glVertex2i(x, y); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1439 void rlVertex2f(float x, float y) { glVertex2f(x, y); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1440 void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1441 void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1442 void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1443 void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1444 void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1445 void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1446 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1447 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1448 // Initialize drawing mode (how to organize vertex) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1449 void rlBegin(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1450 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1451 // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1452 // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1453 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1454 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1455 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1456 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1457 // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1458 // that way, following QUADS drawing will keep aligned with index processing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1459 // It implies adding some extra alignment vertex at the end of the draw, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1460 // those vertex are not processed but they are considered as an additional offset |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1461 // for the next set of vertex to be drawn |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1462 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1463 else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1464 else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1465 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1466 if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1467 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1468 RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1469 RLGL.currentBatch->drawCounter++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1470 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1471 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1472 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1473 if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1474 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1475 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1476 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1477 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1478 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1479 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1480 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1481 // Finish vertex providing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1482 void rlEnd(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1483 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1484 // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1485 // as well as depth buffer bit-depth (16bit or 24bit or 32bit) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1486 // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1487 RLGL.currentBatch->currentDepth += (1.0f/20000.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1488 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1489 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1490 // Define one vertex (position) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1491 // NOTE: Vertex position data is the basic information required for drawing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1492 void rlVertex3f(float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1493 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1494 float tx = x; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1495 float ty = y; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1496 float tz = z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1497 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1498 // Transform provided vector if required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1499 if (RLGL.State.transformRequired) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1500 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1501 tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1502 ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1503 tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1504 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1505 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1506 // WARNING: We can't break primitives when launching a new batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1507 // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1508 // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1509 if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1510 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1511 if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1512 (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1513 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1514 // Reached the maximum number of vertices for RL_LINES drawing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1515 // Launch a draw call but keep current state for next vertices comming |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1516 // NOTE: We add +1 vertex to the check for security |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1517 rlCheckRenderBatchLimit(2 + 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1518 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1519 else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1520 (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1521 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1522 rlCheckRenderBatchLimit(3 + 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1523 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1524 else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1525 (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1526 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1527 rlCheckRenderBatchLimit(4 + 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1528 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1529 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1530 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1531 // Add vertices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1532 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1533 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1534 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1535 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1536 // Add current texcoord |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1537 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1538 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1539 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1540 // Add current normal |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1541 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1542 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1543 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1544 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1545 // Add current color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1546 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1547 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1548 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1549 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1550 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1551 RLGL.State.vertexCounter++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1552 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1553 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1554 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1555 // Define one vertex (position) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1556 void rlVertex2f(float x, float y) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1557 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1558 rlVertex3f(x, y, RLGL.currentBatch->currentDepth); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1559 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1560 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1561 // Define one vertex (position) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1562 void rlVertex2i(int x, int y) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1563 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1564 rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1565 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1566 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1567 // Define one vertex (texture coordinate) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1568 // NOTE: Texture coordinates are limited to QUADS only |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1569 void rlTexCoord2f(float x, float y) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1570 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1571 RLGL.State.texcoordx = x; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1572 RLGL.State.texcoordy = y; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1573 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1574 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1575 // Define one vertex (normal) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1576 // NOTE: Normals limited to TRIANGLES only? |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1577 void rlNormal3f(float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1578 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1579 float normalx = x; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1580 float normaly = y; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1581 float normalz = z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1582 if (RLGL.State.transformRequired) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1583 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1584 normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1585 normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1586 normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1587 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1588 float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1589 if (length != 0.0f) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1590 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1591 float ilength = 1.0f/length; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1592 normalx *= ilength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1593 normaly *= ilength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1594 normalz *= ilength; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1595 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1596 RLGL.State.normalx = normalx; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1597 RLGL.State.normaly = normaly; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1598 RLGL.State.normalz = normalz; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1599 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1600 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1601 // Define one vertex (color) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1602 void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1603 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1604 RLGL.State.colorr = x; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1605 RLGL.State.colorg = y; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1606 RLGL.State.colorb = z; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1607 RLGL.State.colora = w; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1608 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1609 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1610 // Define one vertex (color) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1611 void rlColor4f(float r, float g, float b, float a) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1612 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1613 rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1614 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1615 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1616 // Define one vertex (color) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1617 void rlColor3f(float x, float y, float z) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1618 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1619 rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1620 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1621 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1622 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1623 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1624 //-------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1625 // Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1626 //-------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1627 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1628 // Set current texture to use |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1629 void rlSetTexture(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1630 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1631 if (id == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1632 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1633 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1634 rlDisableTexture(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1635 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1636 // NOTE: If quads batch limit is reached, we force a draw call and next batch starts |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1637 if (RLGL.State.vertexCounter >= |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1638 RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1639 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1640 rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1641 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1642 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1643 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1644 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1645 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1646 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1647 rlEnableTexture(id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1648 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1649 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1650 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1651 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1652 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1653 // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1654 // that way, following QUADS drawing will keep aligned with index processing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1655 // It implies adding some extra alignment vertex at the end of the draw, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1656 // those vertex are not processed but they are considered as an additional offset |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1657 // for the next set of vertex to be drawn |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1658 if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1659 else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1660 else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1661 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1662 if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1663 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1664 RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1665 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1666 RLGL.currentBatch->drawCounter++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1667 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1668 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1669 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1670 if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1671 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1672 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1673 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1674 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1675 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1676 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1677 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1678 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1679 // Select and active a texture slot |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1680 void rlActiveTextureSlot(int slot) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1681 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1682 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1683 glActiveTexture(GL_TEXTURE0 + slot); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1684 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1685 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1686 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1687 // Enable texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1688 void rlEnableTexture(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1689 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1690 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1691 glEnable(GL_TEXTURE_2D); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1692 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1693 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1694 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1695 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1696 // Disable texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1697 void rlDisableTexture(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1698 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1699 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1700 glDisable(GL_TEXTURE_2D); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1701 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1702 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1703 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1704 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1705 // Enable texture cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1706 void rlEnableTextureCubemap(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1707 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1708 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1709 glBindTexture(GL_TEXTURE_CUBE_MAP, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1710 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1711 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1712 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1713 // Disable texture cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1714 void rlDisableTextureCubemap(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1715 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1716 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1717 glBindTexture(GL_TEXTURE_CUBE_MAP, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1718 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1719 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1720 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1721 // Set texture parameters (wrap mode/filter mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1722 void rlTextureParameters(unsigned int id, int param, int value) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1723 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1724 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1725 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1726 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1727 // Reset anisotropy filter, in case it was set |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1728 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1729 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1730 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1731 switch (param) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1732 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1733 case RL_TEXTURE_WRAP_S: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1734 case RL_TEXTURE_WRAP_T: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1735 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1736 if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1737 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1738 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1739 if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1740 else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1741 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1742 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1743 else glTexParameteri(GL_TEXTURE_2D, param, value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1744 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1745 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1746 case RL_TEXTURE_MAG_FILTER: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1747 case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1748 case RL_TEXTURE_FILTER_ANISOTROPIC: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1749 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1750 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1751 if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1752 else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1753 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1754 TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1755 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1756 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1757 else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1758 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1759 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1760 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1761 case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1762 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1763 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1764 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1765 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1766 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1767 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1768 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1769 // Set cubemap parameters (wrap mode/filter mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1770 void rlCubemapParameters(unsigned int id, int param, int value) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1771 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1772 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1773 glBindTexture(GL_TEXTURE_CUBE_MAP, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1774 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1775 // Reset anisotropy filter, in case it was set |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1776 glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1777 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1778 switch (param) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1779 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1780 case RL_TEXTURE_WRAP_S: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1781 case RL_TEXTURE_WRAP_T: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1782 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1783 if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1784 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1785 if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1786 else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1787 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1788 else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1789 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1790 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1791 case RL_TEXTURE_MAG_FILTER: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1792 case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1793 case RL_TEXTURE_FILTER_ANISOTROPIC: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1794 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1795 if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1796 else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1797 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1798 TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1799 glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1800 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1801 else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1802 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1803 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1804 case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1805 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1806 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1807 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1808 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1809 glBindTexture(GL_TEXTURE_CUBE_MAP, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1810 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1811 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1812 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1813 // Enable shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1814 void rlEnableShader(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1815 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1816 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1817 glUseProgram(id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1818 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1819 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1820 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1821 // Disable shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1822 void rlDisableShader(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1823 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1824 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1825 glUseProgram(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1826 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1827 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1828 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1829 // Enable rendering to texture (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1830 void rlEnableFramebuffer(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1831 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1832 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1833 glBindFramebuffer(GL_FRAMEBUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1834 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1835 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1836 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1837 // return the active render texture (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1838 unsigned int rlGetActiveFramebuffer(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1839 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1840 GLint fboId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1841 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1842 glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1843 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1844 return fboId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1845 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1846 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1847 // Disable rendering to texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1848 void rlDisableFramebuffer(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1849 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1850 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1851 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1852 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1853 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1854 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1855 // Blit active framebuffer to main framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1856 void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1857 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1858 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1859 glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1860 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1861 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1862 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1863 // Bind framebuffer object (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1864 void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1865 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1866 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1867 glBindFramebuffer(target, framebuffer); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1868 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1869 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1870 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1871 // Activate multiple draw color buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1872 // NOTE: One color buffer is always active by default |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1873 void rlActiveDrawBuffers(int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1874 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1875 #if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1876 // NOTE: Maximum number of draw buffers supported is implementation dependant, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1877 // it can be queried with glGet*() but it must be at least 8 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1878 //GLint maxDrawBuffers = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1879 //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1880 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1881 if (count > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1882 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1883 if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1884 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1885 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1886 unsigned int buffers[8] = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1887 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1888 GL_COLOR_ATTACHMENT0_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1889 GL_COLOR_ATTACHMENT1_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1890 GL_COLOR_ATTACHMENT2_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1891 GL_COLOR_ATTACHMENT3_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1892 GL_COLOR_ATTACHMENT4_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1893 GL_COLOR_ATTACHMENT5_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1894 GL_COLOR_ATTACHMENT6_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1895 GL_COLOR_ATTACHMENT7_EXT, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1896 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1897 GL_COLOR_ATTACHMENT0, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1898 GL_COLOR_ATTACHMENT1, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1899 GL_COLOR_ATTACHMENT2, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1900 GL_COLOR_ATTACHMENT3, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1901 GL_COLOR_ATTACHMENT4, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1902 GL_COLOR_ATTACHMENT5, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1903 GL_COLOR_ATTACHMENT6, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1904 GL_COLOR_ATTACHMENT7, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1905 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1906 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1907 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1908 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1909 glDrawBuffersEXT(count, buffers); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1910 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1911 glDrawBuffers(count, buffers); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1912 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1913 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1914 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1915 else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1916 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1917 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1918 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1919 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1920 // General render state configuration |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1921 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1922 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1923 // Enable color blending |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1924 void rlEnableColorBlend(void) { glEnable(GL_BLEND); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1925 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1926 // Disable color blending |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1927 void rlDisableColorBlend(void) { glDisable(GL_BLEND); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1928 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1929 // Enable depth test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1930 void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1931 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1932 // Disable depth test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1933 void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1934 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1935 // Enable depth write |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1936 void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1937 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1938 // Disable depth write |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1939 void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1940 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1941 // Enable backface culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1942 void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1943 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1944 // Disable backface culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1945 void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1946 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1947 // Set color mask active for screen read/draw |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1948 void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1949 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1950 // Set face culling mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1951 void rlSetCullFace(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1952 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1953 switch (mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1954 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1955 case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1956 case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1957 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1958 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1959 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1960 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1961 // Enable scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1962 void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1963 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1964 // Disable scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1965 void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1966 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1967 // Scissor test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1968 void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1969 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1970 // Enable wire mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1971 void rlEnableWireMode(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1972 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1973 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1974 // NOTE: glPolygonMode() not available on OpenGL ES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1975 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1976 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1977 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1978 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1979 // Enable point mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1980 void rlEnablePointMode(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1981 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1982 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1983 // NOTE: glPolygonMode() not available on OpenGL ES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1984 glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1985 glEnable(GL_PROGRAM_POINT_SIZE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1986 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1987 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1988 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1989 // Disable wire mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1990 void rlDisableWireMode(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1991 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1992 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1993 // NOTE: glPolygonMode() not available on OpenGL ES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1994 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1995 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1996 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1997 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1998 // Set the line drawing width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
1999 void rlSetLineWidth(float width) { glLineWidth(width); } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2000 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2001 // Get the line drawing width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2002 float rlGetLineWidth(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2003 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2004 float width = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2005 glGetFloatv(GL_LINE_WIDTH, &width); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2006 return width; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2007 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2008 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2009 // Enable line aliasing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2010 void rlEnableSmoothLines(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2011 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2012 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2013 glEnable(GL_LINE_SMOOTH); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2014 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2015 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2016 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2017 // Disable line aliasing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2018 void rlDisableSmoothLines(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2019 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2020 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2021 glDisable(GL_LINE_SMOOTH); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2022 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2023 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2024 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2025 // Enable stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2026 void rlEnableStereoRender(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2027 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2028 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2029 RLGL.State.stereoRender = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2030 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2031 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2032 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2033 // Disable stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2034 void rlDisableStereoRender(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2035 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2036 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2037 RLGL.State.stereoRender = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2038 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2039 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2040 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2041 // Check if stereo render is enabled |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2042 bool rlIsStereoRenderEnabled(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2043 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2044 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2045 return RLGL.State.stereoRender; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2046 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2047 return false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2048 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2049 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2050 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2051 // Clear color buffer with color |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2052 void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2053 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2054 // Color values clamp to 0.0f(0) and 1.0f(255) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2055 float cr = (float)r/255; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2056 float cg = (float)g/255; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2057 float cb = (float)b/255; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2058 float ca = (float)a/255; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2059 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2060 glClearColor(cr, cg, cb, ca); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2061 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2062 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2063 // Clear used screen buffers (color and depth) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2064 void rlClearScreenBuffers(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2065 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2066 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2067 //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2068 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2069 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2070 // Check and log OpenGL error codes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2071 void rlCheckErrors(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2072 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2073 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2074 int check = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2075 while (check) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2076 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2077 const GLenum err = glGetError(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2078 switch (err) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2079 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2080 case GL_NO_ERROR: check = 0; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2081 case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2082 case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2083 case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2084 case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2085 case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2086 case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2087 case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2088 default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2089 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2090 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2091 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2092 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2093 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2094 // Set blend mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2095 void rlSetBlendMode(int mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2096 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2097 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2098 if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2099 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2100 rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2101 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2102 switch (mode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2103 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2104 case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2105 case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2106 case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2107 case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2108 case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2109 case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2110 case RL_BLEND_CUSTOM: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2111 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2112 // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2113 glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2114 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2115 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2116 case RL_BLEND_CUSTOM_SEPARATE: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2117 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2118 // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2119 glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2120 glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2121 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2122 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2123 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2124 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2125 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2126 RLGL.State.currentBlendMode = mode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2127 RLGL.State.glCustomBlendModeModified = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2128 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2129 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2130 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2131 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2132 // Set blending mode factor and equation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2133 void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2134 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2135 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2136 if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2137 (RLGL.State.glBlendDstFactor != glDstFactor) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2138 (RLGL.State.glBlendEquation != glEquation)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2139 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2140 RLGL.State.glBlendSrcFactor = glSrcFactor; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2141 RLGL.State.glBlendDstFactor = glDstFactor; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2142 RLGL.State.glBlendEquation = glEquation; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2143 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2144 RLGL.State.glCustomBlendModeModified = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2145 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2146 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2147 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2148 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2149 // Set blending mode factor and equation separately for RGB and alpha |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2150 void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2151 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2152 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2153 if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2154 (RLGL.State.glBlendDestFactorRGB != glDstRGB) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2155 (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2156 (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2157 (RLGL.State.glBlendEquationRGB != glEqRGB) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2158 (RLGL.State.glBlendEquationAlpha != glEqAlpha)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2159 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2160 RLGL.State.glBlendSrcFactorRGB = glSrcRGB; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2161 RLGL.State.glBlendDestFactorRGB = glDstRGB; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2162 RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2163 RLGL.State.glBlendDestFactorAlpha = glDstAlpha; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2164 RLGL.State.glBlendEquationRGB = glEqRGB; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2165 RLGL.State.glBlendEquationAlpha = glEqAlpha; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2166 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2167 RLGL.State.glCustomBlendModeModified = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2168 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2169 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2170 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2171 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2172 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2173 // Module Functions Definition - OpenGL Debug |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2174 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2175 #if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2176 static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2177 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2178 // Ignore non-significant error/warning codes (NVidia drivers) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2179 // NOTE: Here there are the details with a sample output: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2180 // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2181 // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2182 // will use VIDEO memory as the source for buffer object operations. (severity: low) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2183 // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2184 // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2185 // a defined base level and cannot be used for texture mapping. (severity: low) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2186 if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2187 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2188 const char *msgSource = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2189 switch (source) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2190 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2191 case GL_DEBUG_SOURCE_API: msgSource = "API"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2192 case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2193 case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2194 case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2195 case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2196 case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2197 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2198 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2199 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2200 const char *msgType = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2201 switch (type) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2202 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2203 case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2204 case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2205 case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2206 case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2207 case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2208 case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2209 case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2210 case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2211 case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2212 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2213 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2214 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2215 const char *msgSeverity = "DEFAULT"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2216 switch (severity) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2217 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2218 case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2219 case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2220 case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2221 case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2222 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2223 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2224 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2225 TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2226 TRACELOG(LOG_WARNING, " > Type: %s", msgType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2227 TRACELOG(LOG_WARNING, " > Source = %s", msgSource); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2228 TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2229 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2230 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2231 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2232 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2233 // Module Functions Definition - rlgl functionality |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2234 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2235 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2236 // Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2237 void rlglInit(int width, int height) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2238 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2239 // Enable OpenGL debug context if required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2240 #if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2241 if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2242 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2243 glDebugMessageCallback(rlDebugMessageCallback, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2244 // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2245 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2246 // Debug context options: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2247 // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2248 // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2249 glEnable(GL_DEBUG_OUTPUT); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2250 glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2251 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2252 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2253 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2254 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2255 // Init default white texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2256 unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2257 RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2258 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2259 if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2260 else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2261 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2262 // Init default Shader (customized for GL 3.3 and ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2263 // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2264 rlLoadShaderDefault(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2265 RLGL.State.currentShaderId = RLGL.State.defaultShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2266 RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2267 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2268 // Init default vertex arrays buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2269 // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2270 RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2271 RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2272 RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2273 RLGL.currentBatch = &RLGL.defaultBatch; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2274 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2275 // Init stack matrices (emulating OpenGL 1.1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2276 for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2277 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2278 // Init internal matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2279 RLGL.State.transform = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2280 RLGL.State.projection = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2281 RLGL.State.modelview = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2282 RLGL.State.currentMatrix = &RLGL.State.modelview; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2283 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2284 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2285 // Initialize OpenGL default states |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2286 //---------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2287 // Init state: Depth test |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2288 glDepthFunc(GL_LEQUAL); // Type of depth testing to apply |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2289 glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2290 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2291 // Init state: Blending mode |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2292 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2293 glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2294 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2295 // Init state: Culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2296 // NOTE: All shapes/models triangles are drawn CCW |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2297 glCullFace(GL_BACK); // Cull the back face (default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2298 glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2299 glEnable(GL_CULL_FACE); // Enable backface culling |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2300 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2301 // Init state: Cubemap seamless |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2302 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2303 glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2304 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2305 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2306 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2307 // Init state: Color hints (deprecated in OpenGL 3.0+) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2308 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2309 glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2310 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2311 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2312 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2313 // Store screen size into global variables |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2314 RLGL.State.framebufferWidth = width; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2315 RLGL.State.framebufferHeight = height; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2316 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2317 TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2318 //---------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2319 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2320 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2321 // Init state: Color/Depth buffers clear |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2322 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2323 glClearDepth(1.0f); // Set clear depth value (default) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2324 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2325 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2326 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2327 // Vertex Buffer Object deinitialization (memory free) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2328 void rlglClose(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2329 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2330 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2331 rlUnloadRenderBatch(RLGL.defaultBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2332 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2333 rlUnloadShaderDefault(); // Unload default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2334 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2335 glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2336 TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2337 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2338 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2339 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2340 // Load OpenGL extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2341 // NOTE: External loader function must be provided |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2342 void rlLoadExtensions(void *loader) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2343 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2344 #if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2345 // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2346 if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2347 else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2348 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2349 // Get number of supported extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2350 GLint numExt = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2351 glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2352 TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2353 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2354 #if defined(RLGL_SHOW_GL_DETAILS_INFO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2355 // Get supported extensions list |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2356 // WARNING: glGetStringi() not available on OpenGL 2.1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2357 TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2358 for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2359 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2360 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2361 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2362 // Register supported extensions flags |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2363 // Optional OpenGL 2.1 extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2364 RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2365 RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2366 RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2367 RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2368 RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2369 RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2370 RLGL.ExtSupported.maxDepthBits = 32; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2371 RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2372 RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2373 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2374 // Register supported extensions flags |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2375 // OpenGL 3.3 extensions supported by default (core) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2376 RLGL.ExtSupported.vao = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2377 RLGL.ExtSupported.instancing = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2378 RLGL.ExtSupported.texNPOT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2379 RLGL.ExtSupported.texFloat32 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2380 RLGL.ExtSupported.texFloat16 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2381 RLGL.ExtSupported.texDepth = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2382 RLGL.ExtSupported.maxDepthBits = 32; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2383 RLGL.ExtSupported.texAnisoFilter = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2384 RLGL.ExtSupported.texMirrorClamp = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2385 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2386 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2387 // Optional OpenGL 3.3 extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2388 RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2389 RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2390 RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2391 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2392 RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2393 RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2394 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2395 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2396 #endif // GRAPHICS_API_OPENGL_33 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2397 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2398 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2399 // Register supported extensions flags |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2400 // OpenGL ES 3.0 extensions supported by default (or it should be) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2401 RLGL.ExtSupported.vao = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2402 RLGL.ExtSupported.instancing = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2403 RLGL.ExtSupported.texNPOT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2404 RLGL.ExtSupported.texFloat32 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2405 RLGL.ExtSupported.texFloat16 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2406 RLGL.ExtSupported.texDepth = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2407 RLGL.ExtSupported.texDepthWebGL = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2408 RLGL.ExtSupported.maxDepthBits = 24; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2409 RLGL.ExtSupported.texAnisoFilter = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2410 RLGL.ExtSupported.texMirrorClamp = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2411 // TODO: Check for additional OpenGL ES 3.0 supported extensions: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2412 //RLGL.ExtSupported.texCompDXT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2413 //RLGL.ExtSupported.texCompETC1 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2414 //RLGL.ExtSupported.texCompETC2 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2415 //RLGL.ExtSupported.texCompPVRT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2416 //RLGL.ExtSupported.texCompASTC = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2417 //RLGL.ExtSupported.maxAnisotropyLevel = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2418 //RLGL.ExtSupported.computeShader = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2419 //RLGL.ExtSupported.ssbo = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2420 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2421 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2422 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2423 #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2424 // TODO: Support GLAD loader for OpenGL ES 3.0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2425 if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2426 else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2427 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2428 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2429 // Get supported extensions list |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2430 GLint numExt = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2431 const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2432 const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2433 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2434 // NOTE: We have to duplicate string because glGetString() returns a const string |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2435 int size = strlen(extensions) + 1; // Get extensions string size in bytes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2436 char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2437 strcpy(extensionsDup, extensions); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2438 extList[numExt] = extensionsDup; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2439 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2440 for (int i = 0; i < size; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2441 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2442 if (extensionsDup[i] == ' ') |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2443 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2444 extensionsDup[i] = '\0'; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2445 numExt++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2446 extList[numExt] = &extensionsDup[i + 1]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2447 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2448 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2449 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2450 TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2451 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2452 #if defined(RLGL_SHOW_GL_DETAILS_INFO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2453 TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2454 for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2455 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2456 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2457 // Check required extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2458 for (int i = 0; i < numExt; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2459 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2460 // Check VAO support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2461 // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2462 if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2463 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2464 // The extension is supported by our hardware and driver, try to get related functions pointers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2465 // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2466 glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2467 glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2468 glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2469 //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2470 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2471 if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2472 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2473 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2474 // Check instanced rendering support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2475 if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2476 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2477 // Specific check |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2478 if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2479 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2480 glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2481 glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2482 glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2483 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2484 else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2485 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2486 glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2487 glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2488 glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2489 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2490 else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2491 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2492 glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2493 glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2494 glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2495 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2496 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2497 // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2498 if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2499 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2500 else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2501 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2502 // GL_ANGLE_draw_instanced doesn't exist |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2503 if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2504 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2505 glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2506 glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2507 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2508 else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2509 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2510 glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2511 glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2512 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2513 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2514 // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2515 if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2516 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2517 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2518 // Check NPOT textures support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2519 // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2520 if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2521 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2522 // Check texture float support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2523 if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2524 if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2525 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2526 // Check depth texture support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2527 if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2528 if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2529 if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2530 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2531 if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2532 if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2533 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2534 // Check texture compression support: DXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2535 if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2536 (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2537 (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2538 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2539 // Check texture compression support: ETC1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2540 if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2541 (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2542 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2543 // Check texture compression support: ETC2/EAC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2544 if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2545 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2546 // Check texture compression support: PVR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2547 if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2548 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2549 // Check texture compression support: ASTC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2550 if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2551 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2552 // Check anisotropic texture filter support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2553 if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2554 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2555 // Check clamp mirror wrap mode support |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2556 if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2557 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2558 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2559 // Free extensions pointers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2560 RL_FREE(extList); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2561 RL_FREE(extensionsDup); // Duplicated string must be deallocated |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2562 #endif // GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2563 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2564 // Check OpenGL information and capabilities |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2565 //------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2566 // Show current OpenGL and GLSL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2567 TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2568 TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2569 TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2570 TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2571 TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2572 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2573 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2574 // NOTE: Anisotropy levels capability is an extension |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2575 #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2576 #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2577 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2578 glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2579 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2580 #if defined(RLGL_SHOW_GL_DETAILS_INFO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2581 // Show some OpenGL GPU capabilities |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2582 TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2583 GLint capability = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2584 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2585 TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2586 glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2587 TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2588 glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2589 TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2590 glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2591 TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2592 #if !defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2593 glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2594 TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2595 glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2596 TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2597 if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2598 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2599 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2600 TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2601 GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2602 glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2603 for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2604 RL_FREE(compFormats); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2605 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2606 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2607 glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2608 TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2609 glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2610 TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2611 #endif // GRAPHICS_API_OPENGL_43 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2612 #else // RLGL_SHOW_GL_DETAILS_INFO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2613 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2614 // Show some basic info about GL supported features |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2615 if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2616 else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2617 if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2618 else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2619 if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2620 if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2621 if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2622 if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2623 if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2624 if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2625 if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2626 #endif // RLGL_SHOW_GL_DETAILS_INFO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2627 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2628 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2629 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2630 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2631 // Get current OpenGL version |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2632 int rlGetVersion(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2633 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2634 int glVersion = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2635 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2636 glVersion = RL_OPENGL_11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2637 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2638 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2639 glVersion = RL_OPENGL_21; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2640 #elif defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2641 glVersion = RL_OPENGL_43; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2642 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2643 glVersion = RL_OPENGL_33; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2644 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2645 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2646 glVersion = RL_OPENGL_ES_30; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2647 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2648 glVersion = RL_OPENGL_ES_20; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2649 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2650 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2651 return glVersion; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2652 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2653 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2654 // Set current framebuffer width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2655 void rlSetFramebufferWidth(int width) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2656 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2657 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2658 RLGL.State.framebufferWidth = width; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2659 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2660 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2661 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2662 // Set current framebuffer height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2663 void rlSetFramebufferHeight(int height) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2664 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2665 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2666 RLGL.State.framebufferHeight = height; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2667 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2668 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2669 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2670 // Get default framebuffer width |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2671 int rlGetFramebufferWidth(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2672 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2673 int width = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2674 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2675 width = RLGL.State.framebufferWidth; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2676 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2677 return width; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2678 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2679 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2680 // Get default framebuffer height |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2681 int rlGetFramebufferHeight(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2682 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2683 int height = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2684 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2685 height = RLGL.State.framebufferHeight; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2686 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2687 return height; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2688 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2689 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2690 // Get default internal texture (white texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2691 // NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2692 unsigned int rlGetTextureIdDefault(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2693 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2694 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2695 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2696 id = RLGL.State.defaultTextureId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2697 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2698 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2699 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2700 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2701 // Get default shader id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2702 unsigned int rlGetShaderIdDefault(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2703 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2704 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2705 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2706 id = RLGL.State.defaultShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2707 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2708 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2709 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2710 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2711 // Get default shader locs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2712 int *rlGetShaderLocsDefault(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2713 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2714 int *locs = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2715 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2716 locs = RLGL.State.defaultShaderLocs; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2717 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2718 return locs; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2719 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2720 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2721 // Render batch management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2722 //------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2723 // Load render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2724 rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2725 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2726 rlRenderBatch batch = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2727 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2728 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2729 // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2730 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2731 batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2732 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2733 for (int i = 0; i < numBuffers; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2734 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2735 batch.vertexBuffer[i].elementCount = bufferElements; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2736 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2737 batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2738 batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2739 batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2740 batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2741 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2742 batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2743 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2744 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2745 batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2746 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2747 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2748 for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2749 for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2750 for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2751 for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2752 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2753 int k = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2754 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2755 // Indices can be initialized right now |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2756 for (int j = 0; j < (6*bufferElements); j += 6) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2757 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2758 batch.vertexBuffer[i].indices[j] = 4*k; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2759 batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2760 batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2761 batch.vertexBuffer[i].indices[j + 3] = 4*k; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2762 batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2763 batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2764 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2765 k++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2766 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2767 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2768 RLGL.State.vertexCounter = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2769 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2770 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2771 TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2772 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2773 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2774 // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2775 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2776 for (int i = 0; i < numBuffers; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2777 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2778 if (RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2779 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2780 // Initialize Quads VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2781 glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2782 glBindVertexArray(batch.vertexBuffer[i].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2783 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2784 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2785 // Quads - Vertex buffers binding and attributes enable |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2786 // Vertex position buffer (shader-location = 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2787 glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2788 glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2789 glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2790 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2791 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2792 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2793 // Vertex texcoord buffer (shader-location = 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2794 glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2795 glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2796 glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2797 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2798 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2799 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2800 // Vertex normal buffer (shader-location = 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2801 glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2802 glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2803 glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2804 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2805 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2806 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2807 // Vertex color buffer (shader-location = 3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2808 glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2809 glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2810 glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2811 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2812 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2813 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2814 // Fill index buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2815 glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2816 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2817 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2818 glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2819 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2820 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2821 glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2822 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2823 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2824 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2825 TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2826 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2827 // Unbind the current VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2828 if (RLGL.ExtSupported.vao) glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2829 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2830 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2831 // Init draw calls tracking system |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2832 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2833 batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2834 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2835 for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2836 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2837 batch.draws[i].mode = RL_QUADS; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2838 batch.draws[i].vertexCount = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2839 batch.draws[i].vertexAlignment = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2840 //batch.draws[i].vaoId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2841 //batch.draws[i].shaderId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2842 batch.draws[i].textureId = RLGL.State.defaultTextureId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2843 //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2844 //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2845 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2846 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2847 batch.bufferCount = numBuffers; // Record buffer count |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2848 batch.drawCounter = 1; // Reset draws counter |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2849 batch.currentDepth = -1.0f; // Reset depth value |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2850 //-------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2851 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2852 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2853 return batch; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2854 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2855 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2856 // Unload default internal buffers vertex data from CPU and GPU |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2857 void rlUnloadRenderBatch(rlRenderBatch batch) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2858 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2859 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2860 // Unbind everything |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2861 glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2862 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2863 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2864 // Unload all vertex buffers data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2865 for (int i = 0; i < batch.bufferCount; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2866 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2867 // Unbind VAO attribs data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2868 if (RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2869 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2870 glBindVertexArray(batch.vertexBuffer[i].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2871 glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2872 glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2873 glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2874 glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2875 glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2876 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2877 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2878 // Delete VBOs from GPU (VRAM) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2879 glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2880 glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2881 glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2882 glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2883 glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2884 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2885 // Delete VAOs from GPU (VRAM) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2886 if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2887 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2888 // Free vertex arrays memory from CPU (RAM) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2889 RL_FREE(batch.vertexBuffer[i].vertices); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2890 RL_FREE(batch.vertexBuffer[i].texcoords); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2891 RL_FREE(batch.vertexBuffer[i].normals); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2892 RL_FREE(batch.vertexBuffer[i].colors); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2893 RL_FREE(batch.vertexBuffer[i].indices); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2894 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2895 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2896 // Unload arrays |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2897 RL_FREE(batch.vertexBuffer); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2898 RL_FREE(batch.draws); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2899 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2900 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2901 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2902 // Draw render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2903 // NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2904 void rlDrawRenderBatch(rlRenderBatch *batch) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2905 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2906 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2907 // Update batch vertex buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2908 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2909 // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2910 // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2911 if (RLGL.State.vertexCounter > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2912 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2913 // Activate elements VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2914 if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2915 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2916 // Vertex positions buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2917 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2918 glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2919 //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2920 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2921 // Texture coordinates buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2922 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2923 glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2924 //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2925 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2926 // Normals buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2927 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2928 glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2929 //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2930 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2931 // Colors buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2932 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2933 glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2934 //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2935 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2936 // NOTE: glMapBuffer() causes sync issue |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2937 // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2938 // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2939 // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2940 // allocated pointer immediately even if GPU is still working with the previous data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2941 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2942 // Another option: map the buffer object into client's memory |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2943 // Probably this code could be moved somewhere else... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2944 // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2945 // if (batch->vertexBuffer[batch->currentBuffer].vertices) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2946 // { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2947 // Update vertex data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2948 // } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2949 // glUnmapBuffer(GL_ARRAY_BUFFER); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2950 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2951 // Unbind the current VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2952 if (RLGL.ExtSupported.vao) glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2953 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2954 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2955 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2956 // Draw batch vertex buffers (considering VR stereo if required) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2957 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2958 Matrix matProjection = RLGL.State.projection; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2959 Matrix matModelView = RLGL.State.modelview; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2960 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2961 int eyeCount = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2962 if (RLGL.State.stereoRender) eyeCount = 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2963 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2964 for (int eye = 0; eye < eyeCount; eye++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2965 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2966 if (eyeCount == 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2967 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2968 // Setup current eye viewport (half screen width) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2969 rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2970 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2971 // Set current eye view offset to modelview matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2972 rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2973 // Set current eye projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2974 rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2975 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2976 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2977 // Draw buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2978 if (RLGL.State.vertexCounter > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2979 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2980 // Set current shader and upload current MVP matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2981 glUseProgram(RLGL.State.currentShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2982 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2983 // Create modelview-projection matrix and upload to shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2984 Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2985 glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2986 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2987 if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2988 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2989 glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2990 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2991 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2992 // WARNING: For the following setup of the view, model, and normal matrices, it is expected that |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2993 // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2994 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2995 if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2996 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2997 glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2998 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
2999 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3000 if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3001 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3002 glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3003 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3004 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3005 if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3006 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3007 glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3008 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3009 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3010 if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3011 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3012 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3013 // Bind vertex attrib: position (shader-location = 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3014 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3015 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3016 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3017 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3018 // Bind vertex attrib: texcoord (shader-location = 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3019 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3020 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3021 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3022 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3023 // Bind vertex attrib: normal (shader-location = 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3024 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3025 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3026 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3027 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3028 // Bind vertex attrib: color (shader-location = 3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3029 glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3030 glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3031 glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3032 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3033 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3034 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3035 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3036 // Setup some default shader values |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3037 glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3038 glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3039 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3040 // Activate additional sampler textures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3041 // Those additional textures will be common for all draw calls of the batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3042 for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3043 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3044 if (RLGL.State.activeTextureId[i] > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3045 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3046 glActiveTexture(GL_TEXTURE0 + 1 + i); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3047 glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3048 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3049 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3050 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3051 // Activate default sampler2D texture0 (one texture is always active for default batch shader) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3052 // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3053 glActiveTexture(GL_TEXTURE0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3054 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3055 for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3056 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3057 // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3058 glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3059 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3060 if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3061 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3062 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3063 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3064 // We need to define the number of indices to be processed: elementCount*6 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3065 // NOTE: The final parameter tells the GPU the offset in bytes from the |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3066 // start of the index buffer to the location of the first index to process |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3067 glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3068 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3069 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3070 glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3071 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3072 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3073 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3074 vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3075 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3076 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3077 if (!RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3078 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3079 glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3080 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3081 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3082 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3083 glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3084 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3085 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3086 if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3087 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3088 glUseProgram(0); // Unbind shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3089 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3090 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3091 // Restore viewport to default measures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3092 if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3093 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3094 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3095 // Reset batch buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3096 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3097 // Reset vertex counter for next frame |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3098 RLGL.State.vertexCounter = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3099 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3100 // Reset depth for next draw |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3101 batch->currentDepth = -1.0f; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3102 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3103 // Restore projection/modelview matrices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3104 RLGL.State.projection = matProjection; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3105 RLGL.State.modelview = matModelView; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3106 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3107 // Reset RLGL.currentBatch->draws array |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3108 for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3109 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3110 batch->draws[i].mode = RL_QUADS; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3111 batch->draws[i].vertexCount = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3112 batch->draws[i].textureId = RLGL.State.defaultTextureId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3113 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3114 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3115 // Reset active texture units for next batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3116 for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3117 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3118 // Reset draws counter to one draw for the batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3119 batch->drawCounter = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3120 //------------------------------------------------------------------------------------------------------------ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3121 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3122 // Change to next buffer in the list (in case of multi-buffering) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3123 batch->currentBuffer++; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3124 if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3125 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3126 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3127 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3128 // Set the active render batch for rlgl |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3129 void rlSetRenderBatchActive(rlRenderBatch *batch) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3130 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3131 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3132 rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3133 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3134 if (batch != NULL) RLGL.currentBatch = batch; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3135 else RLGL.currentBatch = &RLGL.defaultBatch; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3136 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3137 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3138 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3139 // Update and draw internal render batch |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3140 void rlDrawRenderBatchActive(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3141 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3142 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3143 rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3144 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3145 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3146 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3147 // Check internal buffer overflow for a given number of vertex |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3148 // and force a rlRenderBatch draw call if required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3149 bool rlCheckRenderBatchLimit(int vCount) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3150 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3151 bool overflow = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3152 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3153 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3154 if ((RLGL.State.vertexCounter + vCount) >= |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3155 (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3156 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3157 overflow = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3158 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3159 // Store current primitive drawing mode and texture id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3160 int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3161 int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3162 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3163 rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3164 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3165 // Restore state of last batch so we can continue adding vertices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3166 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3167 RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3168 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3169 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3170 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3171 return overflow; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3172 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3173 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3174 // Textures data management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3175 //----------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3176 // Convert image data to OpenGL texture (returns OpenGL valid Id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3177 unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3178 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3179 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3180 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3181 glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3182 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3183 // Check texture format support by OpenGL 1.1 (compressed textures not supported) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3184 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3185 if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3186 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3187 TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3188 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3189 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3190 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3191 if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3192 (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3193 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3194 TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3195 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3196 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3197 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3198 if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3199 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3200 TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3201 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3202 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3203 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3204 if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3205 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3206 TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3207 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3208 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3209 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3210 if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3211 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3212 TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3213 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3214 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3215 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3216 if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3217 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3218 TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3219 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3220 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3221 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3222 #endif // GRAPHICS_API_OPENGL_11 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3223 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3224 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3225 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3226 glGenTextures(1, &id); // Generate texture id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3227 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3228 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3229 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3230 int mipWidth = width; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3231 int mipHeight = height; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3232 int mipOffset = 0; // Mipmap data offset, only used for tracelog |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3233 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3234 // NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3235 unsigned char *dataPtr = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3236 if (data != NULL) dataPtr = (unsigned char *)data; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3237 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3238 // Load the different mipmap levels |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3239 for (int i = 0; i < mipmapCount; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3240 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3241 unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3242 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3243 unsigned int glInternalFormat, glFormat, glType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3244 rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3245 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3246 TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3247 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3248 if (glInternalFormat != 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3249 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3250 if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3251 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3252 else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3253 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3254 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3255 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3256 if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3257 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3258 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3259 glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3260 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3261 else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3262 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3263 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3264 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3265 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3266 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3267 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3268 glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3269 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3270 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3271 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3272 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3273 mipWidth /= 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3274 mipHeight /= 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3275 mipOffset += mipSize; // Increment offset position to next mipmap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3276 if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3277 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3278 // Security check for NPOT textures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3279 if (mipWidth < 1) mipWidth = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3280 if (mipHeight < 1) mipHeight = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3281 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3282 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3283 // Texture parameters configuration |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3284 // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3285 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3286 // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3287 if (RLGL.ExtSupported.texNPOT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3288 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3289 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3290 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3291 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3292 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3293 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3294 // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3295 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3296 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3297 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3298 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3299 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3300 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3301 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3302 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3303 // Magnification and minification filters |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3304 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3305 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3306 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3307 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3308 if (mipmapCount > 1) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3309 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3310 // Activate Trilinear filtering if mipmaps are available |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3311 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3312 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3313 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3314 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3315 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3316 // At this point we have the texture loaded in GPU and texture parameters configured |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3317 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3318 // NOTE: If mipmaps were not in data, they are not generated automatically |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3319 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3320 // Unbind current texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3321 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3322 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3323 if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3324 else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3325 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3326 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3327 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3328 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3329 // Load depth texture/renderbuffer (to be attached to fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3330 // WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3331 unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3332 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3333 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3334 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3335 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3336 // In case depth textures not supported, we force renderbuffer usage |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3337 if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3338 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3339 // NOTE: We let the implementation to choose the best bit-depth |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3340 // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3341 unsigned int glInternalFormat = GL_DEPTH_COMPONENT; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3342 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3343 #if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3344 // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3345 // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3346 if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3347 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3348 if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3349 else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3350 else glInternalFormat = GL_DEPTH_COMPONENT16; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3351 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3352 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3353 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3354 if (!useRenderBuffer && RLGL.ExtSupported.texDepth) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3355 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3356 glGenTextures(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3357 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3358 glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3359 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3360 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3361 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3362 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3363 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3364 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3365 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3366 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3367 TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3368 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3369 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3370 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3371 // Create the renderbuffer that will serve as the depth attachment for the framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3372 // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3373 glGenRenderbuffers(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3374 glBindRenderbuffer(GL_RENDERBUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3375 glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3376 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3377 glBindRenderbuffer(GL_RENDERBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3378 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3379 TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3380 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3381 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3382 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3383 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3384 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3385 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3386 // Load texture cubemap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3387 // NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3388 // expected the following convention: +X, -X, +Y, -Y, +Z, -Z |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3389 unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3390 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3391 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3392 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3393 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3394 int mipSize = size; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3395 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3396 // NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3397 unsigned char *dataPtr = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3398 if (data != NULL) dataPtr = (unsigned char *)data; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3399 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3400 unsigned int dataSize = rlGetPixelDataSize(size, size, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3401 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3402 glGenTextures(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3403 glBindTexture(GL_TEXTURE_CUBE_MAP, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3404 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3405 unsigned int glInternalFormat, glFormat, glType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3406 rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3407 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3408 if (glInternalFormat != 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3409 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3410 // Load cubemap faces/mipmaps |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3411 for (int i = 0; i < 6*mipmapCount; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3412 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3413 int mipmapLevel = i/6; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3414 int face = i%6; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3415 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3416 if (data == NULL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3417 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3418 if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3419 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3420 if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3421 (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3422 (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3423 (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3424 else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3425 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3426 else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3427 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3428 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3429 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3430 if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3431 else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3432 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3433 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3434 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3435 if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3436 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3437 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3438 glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3439 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3440 else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3441 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3442 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3443 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3444 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3445 GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3446 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3447 glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3448 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3449 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3450 if (face == 5) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3451 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3452 mipSize /= 2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3453 if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3454 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3455 // Security check for NPOT textures |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3456 if (mipSize < 1) mipSize = 1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3457 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3458 dataSize = rlGetPixelDataSize(mipSize, mipSize, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3459 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3460 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3461 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3462 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3463 // Set cubemap texture sampling parameters |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3464 if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3465 else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3466 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3467 glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3468 glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3469 glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3470 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3471 glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3472 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3473 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3474 glBindTexture(GL_TEXTURE_CUBE_MAP, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3475 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3476 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3477 if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3478 else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3479 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3480 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3481 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3482 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3483 // Update already loaded texture in GPU with new data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3484 // NOTE: We don't know safely if internal texture format is the expected one... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3485 void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3486 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3487 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3488 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3489 unsigned int glInternalFormat, glFormat, glType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3490 rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3491 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3492 if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3493 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3494 glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3495 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3496 else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3497 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3498 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3499 // Get OpenGL internal formats and data type from raylib PixelFormat |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3500 void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3501 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3502 *glInternalFormat = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3503 *glFormat = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3504 *glType = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3505 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3506 switch (format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3507 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3508 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3509 // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3510 case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3511 case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3512 case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3513 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3514 case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3515 case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3516 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3517 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3518 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3519 case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3520 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3521 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3522 case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3523 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3524 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3525 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3526 case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3527 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3528 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3529 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3530 case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3531 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3532 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3533 #else // defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3534 case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3535 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3536 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3537 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3538 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3539 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3540 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3541 case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3542 case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3543 case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3544 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3545 case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3546 case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3547 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3548 case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3549 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3550 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3551 case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3552 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3553 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3554 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3555 #if !defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3556 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3557 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3558 case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3559 case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3560 case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3561 case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3562 case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3563 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3564 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3565 case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3566 case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3567 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3568 default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3569 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3570 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3571 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3572 // Unload texture from GPU memory |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3573 void rlUnloadTexture(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3574 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3575 glDeleteTextures(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3576 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3577 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3578 // Generate mipmap data for selected texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3579 // NOTE: Only supports GPU mipmap generation |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3580 void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3581 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3582 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3583 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3584 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3585 // Check if texture is power-of-two (POT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3586 bool texIsPOT = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3587 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3588 if (((width > 0) && ((width & (width - 1)) == 0)) && |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3589 ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3590 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3591 if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3592 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3593 //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3594 glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3595 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3596 #define MIN(a,b) (((a)<(b))? (a):(b)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3597 #define MAX(a,b) (((a)>(b))? (a):(b)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3598 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3599 *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3600 TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3601 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3602 else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3603 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3604 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3605 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3606 TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3607 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3608 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3609 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3610 // Read texture pixel data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3611 void *rlReadTexturePixels(unsigned int id, int width, int height, int format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3612 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3613 void *pixels = NULL; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3614 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3615 #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3616 glBindTexture(GL_TEXTURE_2D, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3617 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3618 // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3619 // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3620 //int width, height, format; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3621 //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3622 //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3623 //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3624 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3625 // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3626 // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3627 // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3628 // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3629 glPixelStorei(GL_PACK_ALIGNMENT, 1); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3630 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3631 unsigned int glInternalFormat, glFormat, glType; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3632 rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3633 unsigned int size = rlGetPixelDataSize(width, height, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3634 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3635 if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3636 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3637 pixels = RL_MALLOC(size); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3638 glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3639 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3640 else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3641 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3642 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3643 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3644 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3645 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3646 // glGetTexImage() is not available on OpenGL ES 2.0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3647 // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3648 // Two possible Options: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3649 // 1 - Bind texture to color fbo attachment and glReadPixels() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3650 // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3651 // We are using Option 1, just need to care for texture format on retrieval |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3652 // NOTE: This behaviour could be conditioned by graphic driver... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3653 unsigned int fboId = rlLoadFramebuffer(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3654 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3655 glBindFramebuffer(GL_FRAMEBUFFER, fboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3656 glBindTexture(GL_TEXTURE_2D, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3657 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3658 // Attach our texture to FBO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3659 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3660 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3661 // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3662 pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3663 glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3664 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3665 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3666 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3667 // Clean up temporal fbo |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3668 rlUnloadFramebuffer(fboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3669 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3670 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3671 return pixels; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3672 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3673 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3674 // Read screen pixel data (color buffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3675 unsigned char *rlReadScreenPixels(int width, int height) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3676 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3677 unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3678 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3679 // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3680 // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3681 glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3682 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3683 // Flip image vertically! |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3684 unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3685 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3686 for (int y = height - 1; y >= 0; y--) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3687 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3688 for (int x = 0; x < (width*4); x++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3689 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3690 imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3691 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3692 // Set alpha component value to 255 (no trasparent image retrieval) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3693 // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3694 if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3695 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3696 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3697 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3698 RL_FREE(screenData); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3699 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3700 return imgData; // NOTE: image data should be freed |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3701 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3702 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3703 // Framebuffer management (fbo) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3704 //----------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3705 // Load a framebuffer to be used for rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3706 // NOTE: No textures attached |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3707 unsigned int rlLoadFramebuffer(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3708 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3709 unsigned int fboId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3710 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3711 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3712 glGenFramebuffers(1, &fboId); // Create the framebuffer object |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3713 glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3714 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3715 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3716 return fboId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3717 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3718 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3719 // Attach color buffer texture to an fbo (unloads previous attachment) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3720 // NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3721 void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3722 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3723 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3724 glBindFramebuffer(GL_FRAMEBUFFER, fboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3725 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3726 switch (attachType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3727 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3728 case RL_ATTACHMENT_COLOR_CHANNEL0: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3729 case RL_ATTACHMENT_COLOR_CHANNEL1: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3730 case RL_ATTACHMENT_COLOR_CHANNEL2: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3731 case RL_ATTACHMENT_COLOR_CHANNEL3: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3732 case RL_ATTACHMENT_COLOR_CHANNEL4: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3733 case RL_ATTACHMENT_COLOR_CHANNEL5: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3734 case RL_ATTACHMENT_COLOR_CHANNEL6: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3735 case RL_ATTACHMENT_COLOR_CHANNEL7: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3736 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3737 if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3738 else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3739 else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3740 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3741 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3742 case RL_ATTACHMENT_DEPTH: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3743 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3744 if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3745 else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3746 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3747 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3748 case RL_ATTACHMENT_STENCIL: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3749 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3750 if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3751 else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3752 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3753 } break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3754 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3755 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3756 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3757 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3758 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3759 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3760 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3761 // Verify render texture is complete |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3762 bool rlFramebufferComplete(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3763 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3764 bool result = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3765 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3766 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3767 glBindFramebuffer(GL_FRAMEBUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3768 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3769 GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3770 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3771 if (status != GL_FRAMEBUFFER_COMPLETE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3772 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3773 switch (status) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3774 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3775 case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3776 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3777 #if defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3778 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3779 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3780 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3781 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3782 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3783 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3784 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3785 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3786 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3787 result = (status == GL_FRAMEBUFFER_COMPLETE); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3788 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3789 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3790 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3791 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3792 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3793 // Unload framebuffer from GPU memory |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3794 // NOTE: All attached textures/cubemaps/renderbuffers are also deleted |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3795 void rlUnloadFramebuffer(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3796 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3797 #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3798 // Query depth attachment to automatically delete texture/renderbuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3799 int depthType = 0, depthId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3800 glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3801 glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3802 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3803 // TODO: Review warning retrieving object name in WebGL |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3804 // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3805 // https://registry.khronos.org/webgl/specs/latest/1.0/ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3806 glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3807 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3808 unsigned int depthIdU = (unsigned int)depthId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3809 if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3810 else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3811 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3812 // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3813 // the texture image is automatically detached from the currently bound framebuffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3814 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3815 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3816 glDeleteFramebuffers(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3817 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3818 TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3819 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3820 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3821 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3822 // Vertex data management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3823 //----------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3824 // Load a new attributes buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3825 unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3826 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3827 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3828 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3829 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3830 glGenBuffers(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3831 glBindBuffer(GL_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3832 glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3833 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3834 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3835 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3836 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3837 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3838 // Load a new attributes element buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3839 unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3840 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3841 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3842 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3843 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3844 glGenBuffers(1, &id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3845 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3846 glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3847 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3848 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3849 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3850 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3851 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3852 // Enable vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3853 void rlEnableVertexBuffer(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3854 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3855 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3856 glBindBuffer(GL_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3857 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3858 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3859 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3860 // Disable vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3861 void rlDisableVertexBuffer(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3862 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3863 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3864 glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3865 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3866 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3867 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3868 // Enable vertex buffer element (VBO element) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3869 void rlEnableVertexBufferElement(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3870 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3871 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3872 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3873 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3874 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3875 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3876 // Disable vertex buffer element (VBO element) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3877 void rlDisableVertexBufferElement(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3878 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3879 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3880 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3881 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3882 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3883 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3884 // Update vertex buffer with new data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3885 // NOTE: dataSize and offset must be provided in bytes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3886 void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3887 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3888 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3889 glBindBuffer(GL_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3890 glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3891 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3892 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3893 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3894 // Update vertex buffer elements with new data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3895 // NOTE: dataSize and offset must be provided in bytes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3896 void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3897 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3898 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3899 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3900 glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3901 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3902 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3903 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3904 // Enable vertex array object (VAO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3905 bool rlEnableVertexArray(unsigned int vaoId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3906 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3907 bool result = false; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3908 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3909 if (RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3910 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3911 glBindVertexArray(vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3912 result = true; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3913 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3914 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3915 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3916 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3917 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3918 // Disable vertex array object (VAO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3919 void rlDisableVertexArray(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3920 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3921 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3922 if (RLGL.ExtSupported.vao) glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3923 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3924 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3925 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3926 // Enable vertex attribute index |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3927 void rlEnableVertexAttribute(unsigned int index) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3928 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3929 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3930 glEnableVertexAttribArray(index); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3931 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3932 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3933 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3934 // Disable vertex attribute index |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3935 void rlDisableVertexAttribute(unsigned int index) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3936 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3937 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3938 glDisableVertexAttribArray(index); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3939 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3940 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3941 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3942 // Draw vertex array |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3943 void rlDrawVertexArray(int offset, int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3944 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3945 glDrawArrays(GL_TRIANGLES, offset, count); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3946 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3947 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3948 // Draw vertex array elements |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3949 void rlDrawVertexArrayElements(int offset, int count, const void *buffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3950 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3951 // NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3952 unsigned short *bufferPtr = (unsigned short *)buffer; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3953 if (offset > 0) bufferPtr += offset; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3954 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3955 glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3956 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3957 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3958 // Draw vertex array instanced |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3959 void rlDrawVertexArrayInstanced(int offset, int count, int instances) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3960 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3961 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3962 glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3963 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3964 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3965 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3966 // Draw vertex array elements instanced |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3967 void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3968 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3969 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3970 // NOTE: Added pointer math separately from function to avoid UBSAN complaining |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3971 unsigned short *bufferPtr = (unsigned short *)buffer; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3972 if (offset > 0) bufferPtr += offset; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3973 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3974 glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3975 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3976 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3977 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3978 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3979 // Enable vertex state pointer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3980 void rlEnableStatePointer(int vertexAttribType, void *buffer) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3981 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3982 if (buffer != NULL) glEnableClientState(vertexAttribType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3983 switch (vertexAttribType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3984 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3985 case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3986 case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3987 case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3988 case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3989 //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3990 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3991 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3992 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3993 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3994 // Disable vertex state pointer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3995 void rlDisableStatePointer(int vertexAttribType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3996 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3997 glDisableClientState(vertexAttribType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3998 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
3999 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4000 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4001 // Load vertex array object (VAO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4002 unsigned int rlLoadVertexArray(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4003 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4004 unsigned int vaoId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4005 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4006 if (RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4007 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4008 glGenVertexArrays(1, &vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4009 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4010 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4011 return vaoId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4012 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4013 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4014 // Set vertex attribute |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4015 void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4016 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4017 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4018 // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4019 // Additional types (depends on OpenGL version or extensions): |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4020 // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4021 // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4022 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4023 size_t offsetNative = offset; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4024 glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4025 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4026 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4027 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4028 // Set vertex attribute divisor |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4029 void rlSetVertexAttributeDivisor(unsigned int index, int divisor) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4030 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4031 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4032 glVertexAttribDivisor(index, divisor); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4033 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4034 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4035 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4036 // Unload vertex array object (VAO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4037 void rlUnloadVertexArray(unsigned int vaoId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4038 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4039 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4040 if (RLGL.ExtSupported.vao) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4041 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4042 glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4043 glDeleteVertexArrays(1, &vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4044 TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4045 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4046 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4047 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4048 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4049 // Unload vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4050 void rlUnloadVertexBuffer(unsigned int vboId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4051 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4052 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4053 glDeleteBuffers(1, &vboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4054 //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4055 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4056 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4057 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4058 // Shaders management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4059 //----------------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4060 // Load shader from code strings |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4061 // NOTE: If shader string is NULL, using default vertex/fragment shaders |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4062 unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4063 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4064 unsigned int id = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4065 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4066 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4067 unsigned int vertexShaderId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4068 unsigned int fragmentShaderId = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4069 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4070 // Compile vertex shader (if provided) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4071 // NOTE: If not vertex shader is provided, use default one |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4072 if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4073 else vertexShaderId = RLGL.State.defaultVShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4074 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4075 // Compile fragment shader (if provided) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4076 // NOTE: If not vertex shader is provided, use default one |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4077 if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4078 else fragmentShaderId = RLGL.State.defaultFShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4079 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4080 // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4081 if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4082 else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4083 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4084 // One of or both shader are new, we need to compile a new shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4085 id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4086 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4087 // We can detach and delete vertex/fragment shaders (if not default ones) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4088 // NOTE: We detach shader before deletion to make sure memory is freed |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4089 if (vertexShaderId != RLGL.State.defaultVShaderId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4090 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4091 // WARNING: Shader program linkage could fail and returned id is 0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4092 if (id > 0) glDetachShader(id, vertexShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4093 glDeleteShader(vertexShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4094 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4095 if (fragmentShaderId != RLGL.State.defaultFShaderId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4096 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4097 // WARNING: Shader program linkage could fail and returned id is 0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4098 if (id > 0) glDetachShader(id, fragmentShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4099 glDeleteShader(fragmentShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4100 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4101 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4102 // In case shader program loading failed, we assign default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4103 if (id == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4104 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4105 // In case shader loading fails, we return the default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4106 TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4107 id = RLGL.State.defaultShaderId; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4108 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4109 /* |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4110 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4111 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4112 // Get available shader uniforms |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4113 // NOTE: This information is useful for debug... |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4114 int uniformCount = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4115 glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4116 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4117 for (int i = 0; i < uniformCount; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4118 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4119 int namelen = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4120 int num = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4121 char name[256] = { 0 }; // Assume no variable names longer than 256 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4122 GLenum type = GL_ZERO; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4123 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4124 // Get the name of the uniforms |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4125 glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4126 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4127 name[namelen] = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4128 TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4129 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4130 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4131 */ |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4132 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4133 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4134 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4135 return id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4136 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4137 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4138 // Compile custom shader and return shader id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4139 unsigned int rlCompileShader(const char *shaderCode, int type) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4140 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4141 unsigned int shader = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4142 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4143 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4144 shader = glCreateShader(type); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4145 glShaderSource(shader, 1, &shaderCode, NULL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4146 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4147 GLint success = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4148 glCompileShader(shader); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4149 glGetShaderiv(shader, GL_COMPILE_STATUS, &success); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4150 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4151 if (success == GL_FALSE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4152 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4153 switch (type) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4154 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4155 case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4156 case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4157 //case GL_GEOMETRY_SHADER: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4158 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4159 case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4160 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4161 case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4162 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4163 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4164 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4165 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4166 int maxLength = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4167 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4168 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4169 if (maxLength > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4170 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4171 int length = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4172 char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4173 glGetShaderInfoLog(shader, maxLength, &length, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4174 TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4175 RL_FREE(log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4176 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4177 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4178 shader = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4179 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4180 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4181 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4182 switch (type) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4183 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4184 case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4185 case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4186 //case GL_GEOMETRY_SHADER: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4187 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4188 case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4189 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4190 case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4191 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4192 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4193 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4194 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4195 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4196 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4197 return shader; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4198 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4199 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4200 // Load custom shader strings and return program id |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4201 unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4202 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4203 unsigned int program = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4204 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4205 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4206 GLint success = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4207 program = glCreateProgram(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4208 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4209 glAttachShader(program, vShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4210 glAttachShader(program, fShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4211 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4212 // NOTE: Default attribute shader locations must be Bound before linking |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4213 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4214 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4215 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4216 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4217 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4218 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4219 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4220 #ifdef RL_SUPPORT_MESH_GPU_SKINNING |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4221 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4222 glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4223 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4224 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4225 // NOTE: If some attrib name is no found on the shader, it locations becomes -1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4226 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4227 glLinkProgram(program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4228 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4229 // NOTE: All uniform variables are intitialised to 0 when a program links |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4230 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4231 glGetProgramiv(program, GL_LINK_STATUS, &success); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4232 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4233 if (success == GL_FALSE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4234 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4235 TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4236 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4237 int maxLength = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4238 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4239 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4240 if (maxLength > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4241 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4242 int length = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4243 char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4244 glGetProgramInfoLog(program, maxLength, &length, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4245 TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4246 RL_FREE(log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4247 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4248 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4249 glDeleteProgram(program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4250 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4251 program = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4252 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4253 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4254 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4255 // Get the size of compiled shader program (not available on OpenGL ES 2.0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4256 // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4257 //GLint binarySize = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4258 //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4259 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4260 TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4261 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4262 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4263 return program; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4264 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4265 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4266 // Unload shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4267 void rlUnloadShaderProgram(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4268 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4269 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4270 glDeleteProgram(id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4271 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4272 TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4273 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4274 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4275 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4276 // Get shader location uniform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4277 int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4278 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4279 int location = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4280 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4281 location = glGetUniformLocation(shaderId, uniformName); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4282 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4283 //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4284 //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4285 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4286 return location; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4287 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4288 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4289 // Get shader location attribute |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4290 int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4291 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4292 int location = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4293 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4294 location = glGetAttribLocation(shaderId, attribName); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4295 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4296 //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4297 //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4298 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4299 return location; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4300 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4301 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4302 // Set shader value uniform |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4303 void rlSetUniform(int locIndex, const void *value, int uniformType, int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4304 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4305 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4306 switch (uniformType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4307 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4308 case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4309 case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4310 case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4311 case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4312 case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4313 case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4314 case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4315 case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4316 #if !defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4317 case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4318 case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4319 case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4320 case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4321 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4322 case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4323 default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4324 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4325 // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4326 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4327 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4328 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4329 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4330 // Set shader value attribute |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4331 void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4332 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4333 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4334 switch (attribType) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4335 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4336 case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4337 case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4338 case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4339 case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4340 default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4341 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4342 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4343 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4344 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4345 // Set shader value uniform matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4346 void rlSetUniformMatrix(int locIndex, Matrix mat) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4347 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4348 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4349 float matfloat[16] = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4350 mat.m0, mat.m1, mat.m2, mat.m3, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4351 mat.m4, mat.m5, mat.m6, mat.m7, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4352 mat.m8, mat.m9, mat.m10, mat.m11, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4353 mat.m12, mat.m13, mat.m14, mat.m15 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4354 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4355 glUniformMatrix4fv(locIndex, 1, false, matfloat); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4356 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4357 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4358 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4359 // Set shader value uniform matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4360 void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4361 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4362 #if defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4363 glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4364 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4365 // WARNING: WebGL does not support Matrix transpose ("true" parameter) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4366 // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4367 glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4368 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4369 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4370 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4371 // Set shader value uniform sampler |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4372 void rlSetUniformSampler(int locIndex, unsigned int textureId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4373 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4374 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4375 // Check if texture is already active |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4376 for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4377 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4378 if (RLGL.State.activeTextureId[i] == textureId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4379 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4380 glUniform1i(locIndex, 1 + i); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4381 return; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4382 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4383 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4384 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4385 // Register a new active texture for the internal batch system |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4386 // NOTE: Default texture is always activated as GL_TEXTURE0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4387 for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4388 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4389 if (RLGL.State.activeTextureId[i] == 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4390 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4391 glUniform1i(locIndex, 1 + i); // Activate new texture unit |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4392 RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4393 break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4394 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4395 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4396 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4397 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4398 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4399 // Set shader currently active (id and locations) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4400 void rlSetShader(unsigned int id, int *locs) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4401 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4402 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4403 if (RLGL.State.currentShaderId != id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4404 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4405 rlDrawRenderBatch(RLGL.currentBatch); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4406 RLGL.State.currentShaderId = id; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4407 RLGL.State.currentShaderLocs = locs; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4408 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4409 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4410 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4411 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4412 // Load compute shader program |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4413 unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4414 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4415 unsigned int program = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4416 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4417 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4418 GLint success = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4419 program = glCreateProgram(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4420 glAttachShader(program, shaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4421 glLinkProgram(program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4422 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4423 // NOTE: All uniform variables are intitialised to 0 when a program links |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4424 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4425 glGetProgramiv(program, GL_LINK_STATUS, &success); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4426 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4427 if (success == GL_FALSE) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4428 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4429 TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4430 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4431 int maxLength = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4432 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4433 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4434 if (maxLength > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4435 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4436 int length = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4437 char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4438 glGetProgramInfoLog(program, maxLength, &length, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4439 TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4440 RL_FREE(log); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4441 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4442 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4443 glDeleteProgram(program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4444 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4445 program = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4446 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4447 else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4448 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4449 // Get the size of compiled shader program (not available on OpenGL ES 2.0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4450 // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4451 //GLint binarySize = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4452 //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4453 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4454 TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4455 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4456 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4457 TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4458 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4459 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4460 return program; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4461 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4462 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4463 // Dispatch compute shader (equivalent to *draw* for graphics pilepine) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4464 void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4465 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4466 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4467 glDispatchCompute(groupX, groupY, groupZ); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4468 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4469 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4470 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4471 // Load shader storage buffer object (SSBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4472 unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4473 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4474 unsigned int ssbo = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4475 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4476 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4477 glGenBuffers(1, &ssbo); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4478 glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4479 glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4480 if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4481 glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4482 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4483 TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4484 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4485 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4486 return ssbo; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4487 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4488 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4489 // Unload shader storage buffer object (SSBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4490 void rlUnloadShaderBuffer(unsigned int ssboId) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4491 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4492 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4493 glDeleteBuffers(1, &ssboId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4494 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4495 TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4496 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4497 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4498 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4499 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4500 // Update SSBO buffer data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4501 void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4502 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4503 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4504 glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4505 glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4506 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4507 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4508 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4509 // Get SSBO buffer size |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4510 unsigned int rlGetShaderBufferSize(unsigned int id) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4511 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4512 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4513 GLint64 size = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4514 glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4515 glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4516 return (size > 0)? (unsigned int)size : 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4517 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4518 return 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4519 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4520 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4521 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4522 // Read SSBO buffer data (GPU->CPU) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4523 void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4524 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4525 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4526 glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4527 glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4528 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4529 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4530 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4531 // Bind SSBO buffer |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4532 void rlBindShaderBuffer(unsigned int id, unsigned int index) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4533 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4534 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4535 glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4536 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4537 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4538 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4539 // Copy SSBO buffer data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4540 void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4541 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4542 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4543 glBindBuffer(GL_COPY_READ_BUFFER, srcId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4544 glBindBuffer(GL_COPY_WRITE_BUFFER, destId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4545 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4546 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4547 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4548 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4549 // Bind image texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4550 void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4551 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4552 #if defined(GRAPHICS_API_OPENGL_43) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4553 unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4554 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4555 rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4556 glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4557 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4558 TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4559 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4560 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4561 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4562 // Matrix state management |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4563 //----------------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4564 // Get internal modelview matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4565 Matrix rlGetMatrixModelview(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4566 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4567 Matrix matrix = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4568 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4569 float mat[16]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4570 glGetFloatv(GL_MODELVIEW_MATRIX, mat); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4571 matrix.m0 = mat[0]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4572 matrix.m1 = mat[1]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4573 matrix.m2 = mat[2]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4574 matrix.m3 = mat[3]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4575 matrix.m4 = mat[4]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4576 matrix.m5 = mat[5]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4577 matrix.m6 = mat[6]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4578 matrix.m7 = mat[7]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4579 matrix.m8 = mat[8]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4580 matrix.m9 = mat[9]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4581 matrix.m10 = mat[10]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4582 matrix.m11 = mat[11]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4583 matrix.m12 = mat[12]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4584 matrix.m13 = mat[13]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4585 matrix.m14 = mat[14]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4586 matrix.m15 = mat[15]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4587 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4588 matrix = RLGL.State.modelview; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4589 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4590 return matrix; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4591 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4592 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4593 // Get internal projection matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4594 Matrix rlGetMatrixProjection(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4595 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4596 #if defined(GRAPHICS_API_OPENGL_11) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4597 float mat[16]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4598 glGetFloatv(GL_PROJECTION_MATRIX,mat); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4599 Matrix m; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4600 m.m0 = mat[0]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4601 m.m1 = mat[1]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4602 m.m2 = mat[2]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4603 m.m3 = mat[3]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4604 m.m4 = mat[4]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4605 m.m5 = mat[5]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4606 m.m6 = mat[6]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4607 m.m7 = mat[7]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4608 m.m8 = mat[8]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4609 m.m9 = mat[9]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4610 m.m10 = mat[10]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4611 m.m11 = mat[11]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4612 m.m12 = mat[12]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4613 m.m13 = mat[13]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4614 m.m14 = mat[14]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4615 m.m15 = mat[15]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4616 return m; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4617 #else |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4618 return RLGL.State.projection; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4619 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4620 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4621 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4622 // Get internal accumulated transform matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4623 Matrix rlGetMatrixTransform(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4624 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4625 Matrix mat = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4626 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4627 // TODO: Consider possible transform matrices in the RLGL.State.stack |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4628 // Is this the right order? or should we start with the first stored matrix instead of the last one? |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4629 //Matrix matStackTransform = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4630 //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4631 mat = RLGL.State.transform; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4632 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4633 return mat; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4634 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4635 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4636 // Get internal projection matrix for stereo render (selected eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4637 Matrix rlGetMatrixProjectionStereo(int eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4638 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4639 Matrix mat = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4640 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4641 mat = RLGL.State.projectionStereo[eye]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4642 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4643 return mat; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4644 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4645 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4646 // Get internal view offset matrix for stereo render (selected eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4647 Matrix rlGetMatrixViewOffsetStereo(int eye) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4648 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4649 Matrix mat = rlMatrixIdentity(); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4650 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4651 mat = RLGL.State.viewOffsetStereo[eye]; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4652 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4653 return mat; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4654 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4655 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4656 // Set a custom modelview matrix (replaces internal modelview matrix) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4657 void rlSetMatrixModelview(Matrix view) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4658 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4659 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4660 RLGL.State.modelview = view; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4661 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4662 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4663 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4664 // Set a custom projection matrix (replaces internal projection matrix) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4665 void rlSetMatrixProjection(Matrix projection) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4666 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4667 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4668 RLGL.State.projection = projection; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4669 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4670 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4671 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4672 // Set eyes projection matrices for stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4673 void rlSetMatrixProjectionStereo(Matrix right, Matrix left) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4674 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4675 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4676 RLGL.State.projectionStereo[0] = right; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4677 RLGL.State.projectionStereo[1] = left; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4678 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4679 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4680 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4681 // Set eyes view offsets matrices for stereo rendering |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4682 void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4683 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4684 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4685 RLGL.State.viewOffsetStereo[0] = right; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4686 RLGL.State.viewOffsetStereo[1] = left; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4687 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4688 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4689 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4690 // Load and draw a quad in NDC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4691 void rlLoadDrawQuad(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4692 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4693 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4694 unsigned int quadVAO = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4695 unsigned int quadVBO = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4696 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4697 float vertices[] = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4698 // Positions Texcoords |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4699 -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4700 -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4701 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4702 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4703 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4704 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4705 // Gen VAO to contain VBO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4706 glGenVertexArrays(1, &quadVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4707 glBindVertexArray(quadVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4708 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4709 // Gen and fill vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4710 glGenBuffers(1, &quadVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4711 glBindBuffer(GL_ARRAY_BUFFER, quadVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4712 glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4713 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4714 // Bind vertex attributes (position, texcoords) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4715 glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4716 glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4717 glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4718 glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4719 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4720 // Draw quad |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4721 glBindVertexArray(quadVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4722 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4723 glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4724 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4725 // Delete buffers (VBO and VAO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4726 glDeleteBuffers(1, &quadVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4727 glDeleteVertexArrays(1, &quadVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4728 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4729 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4730 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4731 // Load and draw a cube in NDC |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4732 void rlLoadDrawCube(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4733 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4734 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4735 unsigned int cubeVAO = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4736 unsigned int cubeVBO = 0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4737 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4738 float vertices[] = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4739 // Positions Normals Texcoords |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4740 -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4741 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4742 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4743 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4744 -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4745 -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4746 -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4747 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4748 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4749 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4750 -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4751 -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4752 -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4753 -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4754 -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4755 -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4756 -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4757 -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4758 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4759 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4760 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4761 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4762 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4763 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4764 -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4765 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4766 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4767 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4768 -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4769 -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4770 -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4771 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4772 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4773 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4774 -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4775 -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4776 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4777 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4778 // Gen VAO to contain VBO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4779 glGenVertexArrays(1, &cubeVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4780 glBindVertexArray(cubeVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4781 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4782 // Gen and fill vertex buffer (VBO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4783 glGenBuffers(1, &cubeVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4784 glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4785 glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4786 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4787 // Bind vertex attributes (position, normals, texcoords) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4788 glBindVertexArray(cubeVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4789 glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4790 glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4791 glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4792 glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4793 glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4794 glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4795 glBindBuffer(GL_ARRAY_BUFFER, 0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4796 glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4797 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4798 // Draw cube |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4799 glBindVertexArray(cubeVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4800 glDrawArrays(GL_TRIANGLES, 0, 36); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4801 glBindVertexArray(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4802 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4803 // Delete VBO and VAO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4804 glDeleteBuffers(1, &cubeVBO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4805 glDeleteVertexArrays(1, &cubeVAO); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4806 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4807 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4808 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4809 // Get name string for pixel format |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4810 const char *rlGetPixelFormatName(unsigned int format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4811 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4812 switch (format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4813 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4814 case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4815 case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4816 case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4817 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4818 case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4819 case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4820 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4821 case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4822 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4823 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4824 case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4825 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4826 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4827 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4828 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4829 case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4830 case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4831 case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4832 case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4833 case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4834 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4835 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4836 case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4837 case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4838 default: return "UNKNOWN"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4839 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4840 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4841 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4842 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4843 // Module specific Functions Definition |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4844 //---------------------------------------------------------------------------------- |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4845 #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4846 // Load default shader (just vertex positioning and texture coloring) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4847 // NOTE: This shader program is used for internal buffers |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4848 // NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4849 static void rlLoadShaderDefault(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4850 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4851 RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4852 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4853 // NOTE: All locations must be reseted to -1 (no location) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4854 for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4855 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4856 // Vertex shader directly defined, no external file required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4857 const char *defaultVShaderCode = |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4858 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4859 "#version 120 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4860 "attribute vec3 vertexPosition; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4861 "attribute vec2 vertexTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4862 "attribute vec4 vertexColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4863 "varying vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4864 "varying vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4865 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4866 "#version 330 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4867 "in vec3 vertexPosition; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4868 "in vec2 vertexTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4869 "in vec4 vertexColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4870 "out vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4871 "out vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4872 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4873 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4874 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4875 "#version 300 es \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4876 "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4877 "in vec3 vertexPosition; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4878 "in vec2 vertexTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4879 "in vec4 vertexColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4880 "out vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4881 "out vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4882 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4883 "#version 100 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4884 "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4885 "attribute vec3 vertexPosition; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4886 "attribute vec2 vertexTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4887 "attribute vec4 vertexColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4888 "varying vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4889 "varying vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4890 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4891 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4892 "uniform mat4 mvp; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4893 "void main() \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4894 "{ \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4895 " fragTexCoord = vertexTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4896 " fragColor = vertexColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4897 " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4898 "} \n"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4899 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4900 // Fragment shader directly defined, no external file required |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4901 const char *defaultFShaderCode = |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4902 #if defined(GRAPHICS_API_OPENGL_21) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4903 "#version 120 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4904 "varying vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4905 "varying vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4906 "uniform sampler2D texture0; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4907 "uniform vec4 colDiffuse; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4908 "void main() \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4909 "{ \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4910 " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4911 " gl_FragColor = texelColor*colDiffuse*fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4912 "} \n"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4913 #elif defined(GRAPHICS_API_OPENGL_33) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4914 "#version 330 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4915 "in vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4916 "in vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4917 "out vec4 finalColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4918 "uniform sampler2D texture0; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4919 "uniform vec4 colDiffuse; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4920 "void main() \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4921 "{ \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4922 " vec4 texelColor = texture(texture0, fragTexCoord); \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4923 " finalColor = texelColor*colDiffuse*fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4924 "} \n"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4925 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4926 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4927 #if defined(GRAPHICS_API_OPENGL_ES3) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4928 "#version 300 es \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4929 "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4930 "in vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4931 "in vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4932 "out vec4 finalColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4933 "uniform sampler2D texture0; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4934 "uniform vec4 colDiffuse; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4935 "void main() \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4936 "{ \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4937 " vec4 texelColor = texture(texture0, fragTexCoord); \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4938 " finalColor = texelColor*colDiffuse*fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4939 "} \n"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4940 #elif defined(GRAPHICS_API_OPENGL_ES2) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4941 "#version 100 \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4942 "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4943 "varying vec2 fragTexCoord; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4944 "varying vec4 fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4945 "uniform sampler2D texture0; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4946 "uniform vec4 colDiffuse; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4947 "void main() \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4948 "{ \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4949 " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4950 " gl_FragColor = texelColor*colDiffuse*fragColor; \n" |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4951 "} \n"; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4952 #endif |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4953 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4954 // NOTE: Compiled vertex/fragment shaders are not deleted, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4955 // they are kept for re-use as default shaders in case some shader loading fails |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4956 RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4957 RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4958 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4959 RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4960 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4961 if (RLGL.State.defaultShaderId > 0) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4962 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4963 TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4964 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4965 // Set default shader locations: attributes locations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4966 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4967 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4968 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4969 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4970 // Set default shader locations: uniform locations |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4971 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4972 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4973 RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4974 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4975 else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4976 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4977 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4978 // Unload default shader |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4979 // NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4980 static void rlUnloadShaderDefault(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4981 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4982 glUseProgram(0); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4983 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4984 glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4985 glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4986 glDeleteShader(RLGL.State.defaultVShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4987 glDeleteShader(RLGL.State.defaultFShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4988 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4989 glDeleteProgram(RLGL.State.defaultShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4990 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4991 RL_FREE(RLGL.State.defaultShaderLocs); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4992 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4993 TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4994 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4995 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4996 #if defined(RLGL_SHOW_GL_DETAILS_INFO) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4997 // Get compressed format official GL identifier name |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4998 static const char *rlGetCompressedFormatName(int format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
4999 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5000 switch (format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5001 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5002 // GL_EXT_texture_compression_s3tc |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5003 case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5004 case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5005 case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5006 case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5007 // GL_3DFX_texture_compression_FXT1 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5008 case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5009 case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5010 // GL_IMG_texture_compression_pvrtc |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5011 case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5012 case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5013 case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5014 case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5015 // GL_OES_compressed_ETC1_RGB8_texture |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5016 case 0x8D64: return "GL_ETC1_RGB8_OES"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5017 // GL_ARB_texture_compression_rgtc |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5018 case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5019 case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5020 case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5021 case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5022 // GL_ARB_texture_compression_bptc |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5023 case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5024 case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5025 case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5026 case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5027 // GL_ARB_ES3_compatibility |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5028 case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5029 case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5030 case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5031 case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5032 case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5033 case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5034 case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5035 case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5036 case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5037 case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5038 // GL_KHR_texture_compression_astc_hdr |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5039 case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5040 case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5041 case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5042 case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5043 case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5044 case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5045 case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5046 case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5047 case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5048 case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5049 case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5050 case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5051 case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5052 case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5053 case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5054 case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5055 case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5056 case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5057 case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5058 case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5059 case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5060 case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5061 case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5062 case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5063 case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5064 case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5065 case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5066 case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5067 default: return "GL_COMPRESSED_UNKNOWN"; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5068 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5069 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5070 #endif // RLGL_SHOW_GL_DETAILS_INFO |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5071 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5072 #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5073 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5074 // Get pixel data size in bytes (image or texture) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5075 // NOTE: Size depends on pixel format |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5076 static int rlGetPixelDataSize(int width, int height, int format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5077 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5078 int dataSize = 0; // Size in bytes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5079 int bpp = 0; // Bits per pixel |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5080 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5081 switch (format) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5082 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5083 case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5084 case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5085 case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5086 case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5087 case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5088 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5089 case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5090 case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5091 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5092 case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5093 case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5094 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5095 case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5096 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5097 case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5098 case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5099 case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5100 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5101 case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5102 case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5103 case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5104 case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5105 case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5106 case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5107 default: break; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5108 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5109 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5110 double bytesPerPixel = (double)bpp/8.0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5111 dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5112 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5113 // Most compressed formats works on 4x4 blocks, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5114 // if texture is smaller, minimum dataSize is 8 or 16 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5115 if ((width < 4) && (height < 4)) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5116 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5117 if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5118 else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5119 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5120 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5121 return dataSize; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5122 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5123 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5124 // Auxiliar math functions |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5125 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5126 // Get float array of matrix data |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5127 static rl_float16 rlMatrixToFloatV(Matrix mat) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5128 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5129 rl_float16 result = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5130 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5131 result.v[0] = mat.m0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5132 result.v[1] = mat.m1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5133 result.v[2] = mat.m2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5134 result.v[3] = mat.m3; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5135 result.v[4] = mat.m4; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5136 result.v[5] = mat.m5; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5137 result.v[6] = mat.m6; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5138 result.v[7] = mat.m7; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5139 result.v[8] = mat.m8; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5140 result.v[9] = mat.m9; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5141 result.v[10] = mat.m10; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5142 result.v[11] = mat.m11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5143 result.v[12] = mat.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5144 result.v[13] = mat.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5145 result.v[14] = mat.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5146 result.v[15] = mat.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5147 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5148 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5149 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5150 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5151 // Get identity matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5152 static Matrix rlMatrixIdentity(void) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5153 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5154 Matrix result = { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5155 1.0f, 0.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5156 0.0f, 1.0f, 0.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5157 0.0f, 0.0f, 1.0f, 0.0f, |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5158 0.0f, 0.0f, 0.0f, 1.0f |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5159 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5160 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5161 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5162 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5163 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5164 // Get two matrix multiplication |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5165 // NOTE: When multiplying matrices... the order matters! |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5166 static Matrix rlMatrixMultiply(Matrix left, Matrix right) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5167 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5168 Matrix result = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5169 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5170 result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5171 result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5172 result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5173 result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5174 result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5175 result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5176 result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5177 result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5178 result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5179 result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5180 result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5181 result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5182 result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5183 result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5184 result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5185 result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5186 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5187 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5188 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5189 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5190 // Transposes provided matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5191 static Matrix rlMatrixTranspose(Matrix mat) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5192 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5193 Matrix result = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5194 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5195 result.m0 = mat.m0; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5196 result.m1 = mat.m4; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5197 result.m2 = mat.m8; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5198 result.m3 = mat.m12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5199 result.m4 = mat.m1; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5200 result.m5 = mat.m5; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5201 result.m6 = mat.m9; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5202 result.m7 = mat.m13; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5203 result.m8 = mat.m2; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5204 result.m9 = mat.m6; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5205 result.m10 = mat.m10; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5206 result.m11 = mat.m14; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5207 result.m12 = mat.m3; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5208 result.m13 = mat.m7; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5209 result.m14 = mat.m11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5210 result.m15 = mat.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5211 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5212 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5213 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5214 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5215 // Invert provided matrix |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5216 static Matrix rlMatrixInvert(Matrix mat) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5217 { |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5218 Matrix result = { 0 }; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5219 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5220 // Cache the matrix values (speed optimization) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5221 float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5222 float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5223 float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5224 float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5225 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5226 float b00 = a00*a11 - a01*a10; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5227 float b01 = a00*a12 - a02*a10; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5228 float b02 = a00*a13 - a03*a10; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5229 float b03 = a01*a12 - a02*a11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5230 float b04 = a01*a13 - a03*a11; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5231 float b05 = a02*a13 - a03*a12; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5232 float b06 = a20*a31 - a21*a30; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5233 float b07 = a20*a32 - a22*a30; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5234 float b08 = a20*a33 - a23*a30; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5235 float b09 = a21*a32 - a22*a31; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5236 float b10 = a21*a33 - a23*a31; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5237 float b11 = a22*a33 - a23*a32; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5238 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5239 // Calculate the invert determinant (inlined to avoid double-caching) |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5240 float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5241 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5242 result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5243 result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5244 result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5245 result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5246 result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5247 result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5248 result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5249 result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5250 result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5251 result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5252 result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5253 result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5254 result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5255 result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5256 result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5257 result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5258 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5259 return result; |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5260 } |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5261 |
|
f33d9ff8b6e8
[Raylib] Added raylib linux to third party lib and added cross platform support.
June Park <parkjune1995@gmail.com>
parents:
diff
changeset
|
5262 #endif // RLGL_IMPLEMENTATION |