mirror of
https://github.com/SFML/CSFML.git
synced 2026-10-26 13:06:13 +01:00
Add functions for creating sRGB enabled textures from file, memory, etc. (#177)
* Add functions for creating sRGB enabled textures from file / memory / stream / image * Remove unused functions * Remove redundant sfTexture_createFromFile declaration
This commit is contained in:
1 parent
8d14b53047
commit
e40235ffb0
2 files changed
+140
-33
No files matched your search
@@ -68,6 +68,29 @@ CSFML_GRAPHICS_API sfTexture* sfTexture_create(unsigned int width, unsigned int
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createFromFile(const char* filename, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new sRGB-enabled texture from a file
|
||||
///
|
||||
/// When providing texture data from an image file or memory, it can
|
||||
/// either be stored in a linear color space or an sRGB color space.
|
||||
/// Most digital images account for gamma correction already, so they
|
||||
/// would need to be "uncorrected" back to linear color space before
|
||||
/// being processed by the hardware. The hardware can automatically
|
||||
/// convert it from the sRGB color space to a linear color space when
|
||||
/// it gets sampled. When the rendered image gets output to the final
|
||||
/// framebuffer, it gets converted back to sRGB.
|
||||
///
|
||||
/// This load option is only useful in conjunction with an sRGB capable
|
||||
/// framebuffer. This can be requested during window creation.
|
||||
///
|
||||
/// \param filename Path of the image file to load
|
||||
/// \param area Area of the source image to load (NULL to load the entire image)
|
||||
///
|
||||
/// \return A new sfTexture object, or NULL if it failed
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createSrgbFromFile(const char* filename, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new texture from a file in memory
|
||||
///
|
||||
@@ -80,6 +103,18 @@ CSFML_GRAPHICS_API sfTexture* sfTexture_createFromFile(const char* filename, con
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createFromMemory(const void* data, size_t sizeInBytes, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new sRGB-enabled texture from a file in memory
|
||||
///
|
||||
/// \param data Pointer to the file data in memory
|
||||
/// \param sizeInBytes Size of the data to load, in bytes
|
||||
/// \param area Area of the source image to load (NULL to load the entire image)
|
||||
///
|
||||
/// \return A new sfTexture object, or NULL if it failed
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createSrgbFromMemory(const void* data, size_t sizeInBytes, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new texture from a custom stream
|
||||
///
|
||||
@@ -91,6 +126,17 @@ CSFML_GRAPHICS_API sfTexture* sfTexture_createFromMemory(const void* data, size_
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createFromStream(sfInputStream* stream, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new sRGB-enabled texture from a custom stream
|
||||
///
|
||||
/// \param stream Source stream to read from
|
||||
/// \param area Area of the source image to load (NULL to load the entire image)
|
||||
///
|
||||
/// \return A new sfTexture object, or NULL if it failed
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createSrgbFromStream(sfInputStream* stream, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new texture from an image
|
||||
///
|
||||
@@ -102,6 +148,17 @@ CSFML_GRAPHICS_API sfTexture* sfTexture_createFromStream(sfInputStream* stream,
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createFromImage(const sfImage* image, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Create a new sRGB-enabled texture from an image
|
||||
///
|
||||
/// \param image Image to upload to the texture
|
||||
/// \param area Area of the source image to load (NULL to load the entire image)
|
||||
///
|
||||
/// \return A new sfTexture object, or NULL if it failed
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfTexture* sfTexture_createSrgbFromImage(const sfImage* image, const sfIntRect* area);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Copy an existing texture
|
||||
///
|
||||
@@ -223,31 +280,6 @@ CSFML_GRAPHICS_API void sfTexture_setSmooth(sfTexture* texture, sfBool smooth);
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API sfBool sfTexture_isSmooth(const sfTexture* texture);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Enable or disable conversion from sRGB
|
||||
///
|
||||
/// When providing texture data from an image file or memory, it can
|
||||
/// either be stored in a linear color space or an sRGB color space.
|
||||
/// Most digital images account for gamma correction already, so they
|
||||
/// would need to be "uncorrected" back to linear color space before
|
||||
/// being processed by the hardware. The hardware can automatically
|
||||
/// convert it from the sRGB color space to a linear color space when
|
||||
/// it gets sampled. When the rendered image gets output to the final
|
||||
/// framebuffer, it gets converted back to sRGB.
|
||||
///
|
||||
/// After enabling or disabling sRGB conversion, make sure to reload
|
||||
/// the texture data in order for the setting to take effect.
|
||||
///
|
||||
/// This option is only useful in conjunction with an sRGB capable
|
||||
/// framebuffer. This can be requested during window creation.
|
||||
///
|
||||
/// \param sRgb True to enable sRGB conversion, false to disable it
|
||||
///
|
||||
/// \see sfTexture_isSrgb
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
CSFML_GRAPHICS_API void sfTexture_setSrgb(sfTexture* texture, sfBool sRgb);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// \brief Tell whether the texture source is converted from sRGB or not
|
||||
///
|
||||
|
||||
Reference in new issue
Block a user