зеркало из https://github.com/stride3d/xkslang.git
A patch submitted for MinGW building.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27757 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
Родитель
f51842e028
Коммит
d6c72a44ab
|
@ -33,6 +33,7 @@
|
|||
//POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "BilBuilder.h"
|
||||
|
||||
|
|
|
@ -53,10 +53,10 @@ extern "C" {
|
|||
|
||||
// Command-line options
|
||||
enum TOptions {
|
||||
EOptionNone = 0x000,
|
||||
EOptionIntermediate = 0x001,
|
||||
EOptionSuppressInfolog = 0x002,
|
||||
EOptionMemoryLeakMode = 0x004,
|
||||
EOptionNone = 0x000,
|
||||
EOptionIntermediate = 0x001,
|
||||
EOptionSuppressInfolog = 0x002,
|
||||
EOptionMemoryLeakMode = 0x004,
|
||||
EOptionRelaxedErrors = 0x008,
|
||||
EOptionGiveWarnings = 0x010,
|
||||
EOptionsLinkProgram = 0x020,
|
||||
|
@ -887,13 +887,19 @@ int fopen_s(
|
|||
char** ReadFileData(const char* fileName)
|
||||
{
|
||||
FILE *in;
|
||||
int errorCode = fopen_s(&in, fileName, "r");
|
||||
#if defined(_WIN32) && defined(__GNUC__)
|
||||
in = fopen(fileName, "r");
|
||||
int errorCode = in ? 0 : 1;
|
||||
#else
|
||||
int errorCode = fopen_s(&in, fileName, "r");
|
||||
#endif
|
||||
|
||||
char *fdata;
|
||||
int count = 0;
|
||||
const int maxSourceStrings = 5;
|
||||
char** return_data = (char**)malloc(sizeof(char *) * (maxSourceStrings+1));
|
||||
|
||||
if (errorCode) {
|
||||
if (errorCode) {
|
||||
printf("Error: unable to open input file: %s\n", fileName);
|
||||
return 0;
|
||||
}
|
||||
|
@ -901,13 +907,13 @@ char** ReadFileData(const char* fileName)
|
|||
while (fgetc(in) != EOF)
|
||||
count++;
|
||||
|
||||
fseek(in, 0, SEEK_SET);
|
||||
|
||||
if (!(fdata = (char*)malloc(count+2))) {
|
||||
fseek(in, 0, SEEK_SET);
|
||||
|
||||
if (!(fdata = (char*)malloc(count+2))) {
|
||||
printf("Error allocating memory\n");
|
||||
return 0;
|
||||
}
|
||||
if (fread(fdata,1,count, in)!=count) {
|
||||
if (fread(fdata,1,count, in)!=count) {
|
||||
printf("Error reading input file: %s\n", fileName);
|
||||
return 0;
|
||||
}
|
||||
|
@ -921,23 +927,23 @@ char** ReadFileData(const char* fileName)
|
|||
} else
|
||||
NumShaderStrings = 1;
|
||||
|
||||
int len = (int)(ceil)((float)count/(float)NumShaderStrings);
|
||||
int len = (int)(ceil)((float)count/(float)NumShaderStrings);
|
||||
int ptr_len=0,i=0;
|
||||
while(count>0){
|
||||
return_data[i]=(char*)malloc(len+2);
|
||||
memcpy(return_data[i],fdata+ptr_len,len);
|
||||
return_data[i][len]='\0';
|
||||
count-=(len);
|
||||
ptr_len+=(len);
|
||||
if(count<len){
|
||||
while(count>0){
|
||||
return_data[i]=(char*)malloc(len+2);
|
||||
memcpy(return_data[i],fdata+ptr_len,len);
|
||||
return_data[i][len]='\0';
|
||||
count-=(len);
|
||||
ptr_len+=(len);
|
||||
if(count<len){
|
||||
if(count==0){
|
||||
NumShaderStrings=(i+1);
|
||||
break;
|
||||
}
|
||||
len = count;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
++i;
|
||||
}
|
||||
return return_data;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef _COMMON_INCLUDED_
|
||||
#define _COMMON_INCLUDED_
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined _WIN32 && !defined __GNUC__
|
||||
#include <basetsd.h>
|
||||
#define snprintf sprintf_s
|
||||
#define safe_vsprintf(buf,max,format,args) vsnprintf_s((buf), (max), (max), (format), (args))
|
||||
|
@ -166,7 +166,7 @@ inline const TString String(const int i, const int base = 10)
|
|||
{
|
||||
char text[16]; // 32 bit ints are at most 10 digits in base 10
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined _WIN32 && !defined __GNUC__
|
||||
_itoa_s(i, text, base);
|
||||
#else
|
||||
// we assume base 10 for all cases
|
||||
|
|
Загрузка…
Ссылка в новой задаче