srp
software rendering pipeline
Loading...
Searching...
No Matches
texture.c File Reference
#include "texture.h"
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "message_callback_p.h"
#include "defines.h"
#include "math_utils.h"
#include "stb_image.h"
#include "utils.h"
#include "vec.h"
#include "texture_p.h"
Include dependency graph for texture.c:

Functions

SRPTexturesrpNewTexture (const char *image, SRPTextureWrappingMode wrappingModeX, SRPTextureWrappingMode wrappingModeY, SRPTextureFilteringMode filteringModeMagnifying, SRPTextureFilteringMode filteringModeMinifying)
 
void srpFreeTexture (SRPTexture *this)
 
void srpTextureGetFilteredColor (const SRPTexture *this, double u, double v, double out[4])
 
int srpTextureGet (SRPTexture *this, SRPTextureParameter parameter)
 
void srpTextureSet (SRPTexture *this, SRPTextureParameter parameter, int data)
 
#define N_CHANNELS_REQUESTED   3
 
static vec4d textureGetColor (const SRPTexture *this, size_t x, size_t y)
 

Detailed Description

Texture implementation

Function Documentation

◆ srpFreeTexture()

void srpFreeTexture ( SRPTexture this)

Free a texture

Parameters
[in]thisA pointer to the texture, as returned by srpNewTexture()
Examples
03_spinning_textured_cube/main.c.

◆ srpNewTexture()

SRPTexture * srpNewTexture ( const char *  image,
SRPTextureWrappingMode  wrappingModeX,
SRPTextureWrappingMode  wrappingModeY,
SRPTextureFilteringMode  filteringModeMagnifying,
SRPTextureFilteringMode  filteringModeMinifying 
)

Initialize a texture by loading an image

Parameters
[in]imageA filesystem path to an image. Most popular image types are supported
[in]wrappingModeX,wrappingModeYWrapping modes to use in X and Y axes
[in]filteringModeMagnifying,filteringModeMinifyingTexture filtering mode to use when magnifying or minifying the texture
Returns
A pointer to the constructed texture
Examples
03_spinning_textured_cube/main.c.

◆ srpTextureGet()

int srpTextureGet ( SRPTexture this,
SRPTextureParameter  parameter 
)

Get a parameter from existing SRPTexture

Parameters
[in]thisA pointer to texture
[in]parameterA struct member to get
Returns
Requested member, or -1 on failure

◆ srpTextureGetFilteredColor()

void srpTextureGetFilteredColor ( const SRPTexture this,
double  u,
double  v,
double  out[4] 
)
Todo:

Now using only filteringModeMagnifying; how to know if texture is magnified or minified?

Too many conditionals?

wrappingMode is untested!

Examples
03_spinning_textured_cube/main.c.

◆ srpTextureSet()

void srpTextureSet ( SRPTexture this,
SRPTextureParameter  parameter,
int  data 
)

Set a parameter to existing SRPTexture

Parameters
[in]thisA pointer to texture
[in]parameterA struct member to set to
[in]dataA value to set