|
|
@ -48,7 +48,7 @@ |
|
|
|
|
|
|
|
#include "rlgl.h" |
|
|
|
|
|
|
|
#include <stdio.h> // Required for: fopen(), fclose(), fread()... [Used only on ReadTextFile()] |
|
|
|
#include <stdio.h> // Required for: fopen(), fclose(), fread()... [Used only on LoadText()] |
|
|
|
#include <stdlib.h> // Required for: malloc(), free(), rand() |
|
|
|
#include <string.h> // Required for: strcmp(), strlen(), strtok() |
|
|
|
#include <math.h> // Required for: atan2() |
|
|
@ -400,8 +400,6 @@ static void SetStereoView(int eye, Matrix matProjection, Matrix matModelView); |
|
|
|
|
|
|
|
static void GetShaderLightsLocations(Shader shader); // Get shader locations for lights (up to MAX_LIGHTS) |
|
|
|
static void SetShaderLightsValues(Shader shader); // Set shader uniform values for lights |
|
|
|
|
|
|
|
static char *ReadTextFile(const char *fileName); // Read chars array from text file |
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(RLGL_OCULUS_SUPPORT) |
|
|
@ -2423,6 +2421,40 @@ Texture2D GetDefaultTexture(void) |
|
|
|
return texture; |
|
|
|
} |
|
|
|
|
|
|
|
// Load text data from file |
|
|
|
// NOTE: text chars array should be freed manually |
|
|
|
char *LoadText(const char *fileName) |
|
|
|
{ |
|
|
|
FILE *textFile; |
|
|
|
char *text = NULL; |
|
|
|
|
|
|
|
int count = 0; |
|
|
|
|
|
|
|
if (fileName != NULL) |
|
|
|
{ |
|
|
|
textFile = fopen(fileName,"rt"); |
|
|
|
|
|
|
|
if (textFile != NULL) |
|
|
|
{ |
|
|
|
fseek(textFile, 0, SEEK_END); |
|
|
|
count = ftell(textFile); |
|
|
|
rewind(textFile); |
|
|
|
|
|
|
|
if (count > 0) |
|
|
|
{ |
|
|
|
text = (char *)malloc(sizeof(char)*(count + 1)); |
|
|
|
count = fread(text, sizeof(char), count, textFile); |
|
|
|
text[count] = '\0'; |
|
|
|
} |
|
|
|
|
|
|
|
fclose(textFile); |
|
|
|
} |
|
|
|
else TraceLog(WARNING, "[%s] Text file could not be opened", fileName); |
|
|
|
} |
|
|
|
|
|
|
|
return text; |
|
|
|
} |
|
|
|
|
|
|
|
// Load shader from files and bind default locations |
|
|
|
Shader LoadShader(char *vsFileName, char *fsFileName) |
|
|
|
{ |
|
|
@ -2430,8 +2462,8 @@ Shader LoadShader(char *vsFileName, char *fsFileName) |
|
|
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// Shaders loading from external text file |
|
|
|
char *vShaderStr = ReadTextFile(vsFileName); |
|
|
|
char *fShaderStr = ReadTextFile(fsFileName); |
|
|
|
char *vShaderStr = LoadText(vsFileName); |
|
|
|
char *fShaderStr = LoadText(fsFileName); |
|
|
|
|
|
|
|
if ((vShaderStr != NULL) && (fShaderStr != NULL)) |
|
|
|
{ |
|
|
@ -3829,40 +3861,6 @@ static void SetShaderLightsValues(Shader shader) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Read text data from file |
|
|
|
// NOTE: text chars array should be freed manually |
|
|
|
static char *ReadTextFile(const char *fileName) |
|
|
|
{ |
|
|
|
FILE *textFile; |
|
|
|
char *text = NULL; |
|
|
|
|
|
|
|
int count = 0; |
|
|
|
|
|
|
|
if (fileName != NULL) |
|
|
|
{ |
|
|
|
textFile = fopen(fileName,"rt"); |
|
|
|
|
|
|
|
if (textFile != NULL) |
|
|
|
{ |
|
|
|
fseek(textFile, 0, SEEK_END); |
|
|
|
count = ftell(textFile); |
|
|
|
rewind(textFile); |
|
|
|
|
|
|
|
if (count > 0) |
|
|
|
{ |
|
|
|
text = (char *)malloc(sizeof(char)*(count + 1)); |
|
|
|
count = fread(text, sizeof(char), count, textFile); |
|
|
|
text[count] = '\0'; |
|
|
|
} |
|
|
|
|
|
|
|
fclose(textFile); |
|
|
|
} |
|
|
|
else TraceLog(WARNING, "[%s] Text file could not be opened", fileName); |
|
|
|
} |
|
|
|
|
|
|
|
return text; |
|
|
|
} |
|
|
|
|
|
|
|
// Configure stereo rendering (including distortion shader) with HMD device parameters |
|
|
|
static void SetStereoConfig(VrDeviceInfo hmd) |
|
|
|
{ |
|
|
|