src/shader.c

changeset 122
1b118cd3e369
parent 106
895f92cff6b8
equal deleted inserted replaced
121:ede9a9e92ff9 122:1b118cd3e369
170 if (f == NULL) return -1; 170 if (f == NULL) return -1;
171 CxBuffer buffer; 171 CxBuffer buffer;
172 cxBufferInit(&buffer, NULL, 1024, NULL, CX_BUFFER_AUTO_EXTEND); 172 cxBufferInit(&buffer, NULL, 1024, NULL, CX_BUFFER_AUTO_EXTEND);
173 cx_stream_copy(f, &buffer, (cx_read_func) fread, cxBufferWriteFunc); 173 cx_stream_copy(f, &buffer, (cx_read_func) fread, cxBufferWriteFunc);
174 cxBufferPut(&buffer, '\0'); 174 cxBufferPut(&buffer, '\0');
175 *code = realloc(buffer.space, buffer.size); 175 cxBufferShrink(&buffer, 0);
176 *code = buffer.space;
176 return *code == NULL ? -1 : 0; 177 return *code == NULL ? -1 : 0;
177 } 178 }
178 179
179 int asc_shader_load_code_files(AscShaderCodeFiles files, AscShaderCodes *codes) { 180 int asc_shader_load_code_files(AscShaderCodeFiles files, AscShaderCodes *codes) {
180 int ret = 0; 181 int ret = 0;
182 ret |= asc_shader_load_code_file(files.frag, &codes->frag); 183 ret |= asc_shader_load_code_file(files.frag, &codes->frag);
183 return ret; 184 return ret;
184 } 185 }
185 186
186 void asc_shader_free_codes(AscShaderCodes codes) { 187 void asc_shader_free_codes(AscShaderCodes codes) {
187 free(codes.vtx); 188 cxFreeDefault(codes.vtx);
188 free(codes.frag); 189 cxFreeDefault(codes.frag);
189 } 190 }

mercurial