srp
software rendering pipeline
Loading...
Searching...
No Matches

Texture mapping. More...

Collaboration diagram for Texture:
enum  SRPTextureWrappingMode { TW_REPEAT , TW_CLAMP_TO_EDGE }
 
enum  SRPTextureFilteringMode { TF_NEAREST }
 
enum  SRPTextureParameter { SRP_TEXTURE_WRAPPING_MODE_X , SRP_TEXTURE_WRAPPING_MODE_Y , SRP_TEXTURE_FILTERING_MODE_MAGNIFYING , SRP_TEXTURE_FILTERING_MODE_MINIFYING }
 
typedef struct SRPTexture SRPTexture
 
typedef enum SRPTextureParameter SRPTextureParameter
 
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)
 

Detailed Description

Texture mapping.

Typedef Documentation

◆ SRPTexture

typedef struct SRPTexture SRPTexture

A structure to represent a texture

◆ SRPTextureParameter

Holds all possible arguments to SRPTexture getters and setters

See also
srpTextureGet() srpTextureSet()

Enumeration Type Documentation

◆ SRPTextureFilteringMode

Holds texture filtering modes

See also
SRPTexture

◆ SRPTextureParameter

Holds all possible arguments to SRPTexture getters and setters

See also
srpTextureGet() srpTextureSet()

◆ SRPTextureWrappingMode

Holds texture wrapping modes

See also
SRPTexture

Function Documentation

◆ srpFreeTexture()

void srpFreeTexture ( SRPTexture this)

Free a texture

Parameters
[in]thisA pointer to the texture, as returned by srpNewTexture()

◆ 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

◆ 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] 
)

Get a texel color at u, v by filtering the texture using specified modes

Parameters
[in]thisA pointer to the texture, as returned by srpNewTexture()
[in]u,vCoordinates of the requested texel
[out]outAn array of 4 values each in [0, 1] interval, representing RGBA8888 color (0.0 = 0x0; 1.0 = 0xFF)
Todo:

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

Too many conditionals?

wrappingMode is untested!

◆ 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