equal
deleted
inserted
replaced
31 #include "context.h" |
31 #include "context.h" |
32 #include <string.h> |
32 #include <string.h> |
33 |
33 |
34 DGLShader* DGLShader_create(GLuint name) |
34 DGLShader* DGLShader_create(GLuint name) |
35 { |
35 { |
36 DGLShader* shader = malloc(sizeof(DGLShader)); |
36 DGLShader* shader = (DGLShader*)malloc(sizeof(DGLShader)); |
37 if(shader == NULL) |
37 if(shader == NULL) |
38 { |
38 { |
39 return NULL; |
39 return NULL; |
40 } |
40 } |
41 |
41 |
253 if (buffersize < s - prev) { |
253 if (buffersize < s - prev) { |
254 buffersize = s - prev; |
254 buffersize = s - prev; |
255 if (buffer) { |
255 if (buffer) { |
256 free(buffer); |
256 free(buffer); |
257 } |
257 } |
258 buffer = malloc(buffersize + 1); |
258 buffer = (char*)malloc(buffersize + 1); |
259 } |
259 } |
260 memcpy(buffer, prev, s - prev); |
260 memcpy(buffer, prev, s - prev); |
261 buffer[s - prev] = 0; |
261 buffer[s - prev] = 0; |
262 prev = s; |
262 prev = s; |
263 } else { |
263 } else { |
267 if (buffersize < e - s) { |
267 if (buffersize < e - s) { |
268 buffersize = e - s; |
268 buffersize = e - s; |
269 if (buffer) { |
269 if (buffer) { |
270 free(buffer); |
270 free(buffer); |
271 } |
271 } |
272 buffer = malloc(buffersize + 1); |
272 buffer = (char*)malloc(buffersize + 1); |
273 } |
273 } |
274 memcpy(buffer, s, e - s); |
274 memcpy(buffer, s, e - s); |
275 buffer[e - s] = 0; |
275 buffer[e - s] = 0; |
276 } |
276 } |
277 return buffer; |
277 return buffer; |
297 char *patched; |
297 char *patched; |
298 const char *p; |
298 const char *p; |
299 |
299 |
300 *patched_len = 0; |
300 *patched_len = 0; |
301 buffer_size = len; |
301 buffer_size = len; |
302 patched = malloc(buffer_size + 1); |
302 patched = (char*)malloc(buffer_size + 1); |
303 if(patched == NULL) { |
303 if(patched == NULL) { |
304 return NULL; |
304 return NULL; |
305 } |
305 } |
306 |
306 |
307 p = opengl_strtok(source, &len); |
307 p = opengl_strtok(source, &len); |
340 } |
340 } |
341 #endif // !DGLES2_ALLOW_GLSL_110 |
341 #endif // !DGLES2_ALLOW_GLSL_110 |
342 tok_len = strlen(p); |
342 tok_len = strlen(p); |
343 if(*patched_len + tok_len > buffer_size) { |
343 if(*patched_len + tok_len > buffer_size) { |
344 buffer_size *= 2; |
344 buffer_size *= 2; |
345 patched = realloc(patched, buffer_size + 1); |
345 patched = (char*)realloc(patched, buffer_size + 1); |
346 if(patched == NULL) { |
346 if(patched == NULL) { |
347 return NULL; |
347 return NULL; |
348 } |
348 } |
349 } |
349 } |
350 memcpy(patched + *patched_len, p, tok_len); |
350 memcpy(patched + *patched_len, p, tok_len); |
355 #ifndef DGLES2_ALLOW_GLSL_110 |
355 #ifndef DGLES2_ALLOW_GLSL_110 |
356 /* add version directive is one was not found */ |
356 /* add version directive is one was not found */ |
357 if (!version_found) { |
357 if (!version_found) { |
358 char* new_patched; |
358 char* new_patched; |
359 *patched_len += strlen("#version 120\n"); |
359 *patched_len += strlen("#version 120\n"); |
360 new_patched = malloc(*patched_len + 1); |
360 new_patched = (char*)malloc(*patched_len + 1); |
361 if (new_patched == NULL) { |
361 if (new_patched == NULL) { |
362 return NULL; |
362 return NULL; |
363 } |
363 } |
364 strcpy(new_patched, "#version 120\n"); |
364 strcpy(new_patched, "#version 120\n"); |
365 strcat(new_patched, patched); |
365 strcat(new_patched, patched); |
403 else |
403 else |
404 Dprintf("%s", string[i]); |
404 Dprintf("%s", string[i]); |
405 } |
405 } |
406 Dprintf("---END-ORIGINAL-SHADER---\n"); |
406 Dprintf("---END-ORIGINAL-SHADER---\n"); |
407 #endif // !NDEBUG |
407 #endif // !NDEBUG |
408 char** string_dgl = malloc(sizeof(char*)*count); |
408 char** string_dgl = (char**)malloc(sizeof(char*)*count); |
409 GLint* length_dgl = malloc(sizeof(GLint)*count); |
409 GLint* length_dgl = (GLint*)malloc(sizeof(GLint)*count); |
410 |
410 |
411 // Remove the non OpenGL 2.x compilant keywords. |
411 // Remove the non OpenGL 2.x compilant keywords. |
412 for(unsigned i = 0; i < count; ++i) |
412 for(unsigned i = 0; i < count; ++i) |
413 { |
413 { |
414 static const char* removables[] = |
414 static const char* removables[] = |
421 "mediump", |
421 "mediump", |
422 "precision" |
422 "precision" |
423 }; |
423 }; |
424 |
424 |
425 length_dgl[i] = length ? length[i] : strlen(string[i]); |
425 length_dgl[i] = length ? length[i] : strlen(string[i]); |
426 string_dgl[i] = malloc(length_dgl[i] + 1); |
426 string_dgl[i] = (char*)malloc(length_dgl[i] + 1); |
427 memcpy(string_dgl[i], string[i], length_dgl[i]); |
427 memcpy(string_dgl[i], string[i], length_dgl[i]); |
428 string_dgl[i][length_dgl[i]] = 0; |
428 string_dgl[i][length_dgl[i]] = 0; |
429 |
429 |
430 for(unsigned j = 0; j < sizeof(removables)/sizeof(removables[0]); ++j) |
430 for(unsigned j = 0; j < sizeof(removables)/sizeof(removables[0]); ++j) |
431 { |
431 { |
485 { |
485 { |
486 total_len += len; |
486 total_len += len; |
487 |
487 |
488 if(source == NULL) |
488 if(source == NULL) |
489 { |
489 { |
490 source = malloc(total_len + 1); |
490 source = (char*)malloc(total_len + 1); |
491 if(source == NULL) |
491 if(source == NULL) |
492 { |
492 { |
493 DGLES2_ERROR(GL_OUT_OF_MEMORY); |
493 DGLES2_ERROR(GL_OUT_OF_MEMORY); |
494 } |
494 } |
495 source[0] = 0; |
495 source[0] = 0; |
496 } |
496 } |
497 else |
497 else |
498 { |
498 { |
499 source = realloc(source, total_len + 1); |
499 source = (char*)realloc(source, total_len + 1); |
500 if(source == NULL) |
500 if(source == NULL) |
501 { |
501 { |
502 DGLES2_ERROR(GL_OUT_OF_MEMORY); |
502 DGLES2_ERROR(GL_OUT_OF_MEMORY); |
503 } |
503 } |
504 } |
504 } |