Render pipeline working.

This commit is contained in:
2021-05-20 22:47:26 -07:00
parent f6a4be2f3c
commit 8fbf353cd9
11 changed files with 53 additions and 41 deletions

View File

@ -72,37 +72,34 @@ void assetBufferSkip(FILE *buffer, int32_t n) {
fseek(buffer, n, SEEK_CUR);
}
shader_t * assetShaderLoad(char *fileVertex, char *fileFragment) {
void assetShaderLoad(shader_t *shader, char *fileVertex, char *fileFragment) {
// Load the vertex shader into memory
char *vertexShader = assetStringLoad(fileVertex);
if(vertexShader == NULL) return NULL;
if(vertexShader == NULL) return;
// Load the fragment shader into memory
char *fragmentShader = assetStringLoad(fileFragment);
if(fragmentShader == NULL) {
free(vertexShader);
return NULL;
return;
}
// Now attempt to load the shader
shader_t *shader = shaderCompile(vertexShader, fragmentShader);
shaderInit(shader, vertexShader, fragmentShader);
//Cleanup
free(vertexShader);
free(fragmentShader);
return shader;//shader may be NULL if loading failed, but not our problem.
}
texture_t * assetTextureLoad(char *fileName) {
void assetTextureLoad(texture_t *texture, char *fileName) {
FILE *buffer;
texture_t *texture;
int channels, width, height;
pixel_t *data;
stbi_io_callbacks OPENGL_STBI_CALLBACKS;
buffer = assetBufferOpen(fileName);
if(buffer == NULL) return NULL;
if(buffer == NULL) return;
// Setup the interface for STBI
OPENGL_STBI_CALLBACKS.read = &assetBufferRead;
@ -119,10 +116,9 @@ texture_t * assetTextureLoad(char *fileName) {
// Close the buffer
assetBufferClose(buffer);
if(data == NULL) return NULL;
if(data == NULL) return;
// Turn into a texture.
texture = textureCreate(width, height, data);
textureInit(texture, width, height, data);
stbi_image_free(data);
return texture;
}

View File

@ -12,7 +12,6 @@
/**
* Method to load an asset into memory as a raw string.
*
* @param assetName Path leading to the asset within the root asset directory.
* @return Pointer to char array of data from asset, NULL if unsuccesful.
*/
@ -20,7 +19,6 @@ char * assetStringLoad(char *assetName);
/**
* Platform-centric method to open a file buffer to an asset.
*
* @param assetName The asset name to open a buffer for.
* @return Pointer to a buffer, NULL if unsuccessfuil.
*/
@ -28,7 +26,6 @@ FILE * assetBufferOpen(char *assetName);
/**
* Closes a previously opened asset buffer.
*
* @param buffer Buffer to close.
* @return True if successful, otherwise false.
*/
@ -36,7 +33,6 @@ bool assetBufferClose(FILE *buffer);
/**
* Read bytes from buffer.
*
* @param buffer The buffer pointing to an asset.
* @param data Pointer to a ubyte array to buffer data into.
* @param size Length of the data buffer. Represents how many bytes can be read.
@ -46,7 +42,6 @@ int32_t assetBufferRead(FILE *buffer, char *data, int32_t size);
/**
* Skip to the end of the buffer, useful to find the length of the buffer.
*
* @param Buffer The buffer pointing to an asset.
* @return How many bytes were skipped
*/
@ -54,7 +49,6 @@ int32_t assetBufferEnd(FILE *buffer);
/**
* Method to skip n bytes in the buffer
*
* @param buffer The buffer pointing to an asset.
* @param n Count of bytes to skip.
*/
@ -62,17 +56,15 @@ void assetBufferSkip(FILE *buffer, int32_t n);
/**
* Load a shader program from a vertex and fragment shader file.
*
* @param shader Shader to load into.
* @param fileVertex The file path of the vertex shader
* @param fileFragment The file path of the fragment shader
* @return The loaded shader_t instance (From shaderCompile)
*/
shader_t * assetShaderLoad(char *fileVertex, char *fileFragment);
void assetShaderLoad(shader_t *shader, char *fileVertex, char *fileFragment);
/**
* Load a texture from a PNG file.
*
* @param fileName The fike path of the PNG image.
* @return The loaded texture object.
* @param texture Texture to load the file into.
* @param fileName The file path of the PNG image.
*/
texture_t * assetTextureLoad(char *fileName);
void assetTextureLoad(texture_t *texture, char *fileName);