mirror of
https://github.com/love2d/love.git
synced 2026-08-18 11:44:15 +02:00
The bones of what will become a Metal backend.
This isn't anywhere close to usable (not even a blank screen will work), let alone complete. It's about 20% done.
This commit is contained in:
@@ -177,6 +177,57 @@ size_t getPixelFormatSize(PixelFormat format)
|
||||
}
|
||||
}
|
||||
|
||||
size_t getPixelFormatRowStride(PixelFormat format, int width)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case PIXELFORMAT_R8_UNORM:
|
||||
case PIXELFORMAT_STENCIL8:
|
||||
return 1 * width;
|
||||
case PIXELFORMAT_RG8_UNORM:
|
||||
case PIXELFORMAT_R16_UNORM:
|
||||
case PIXELFORMAT_R16_FLOAT:
|
||||
case PIXELFORMAT_LA8_UNORM:
|
||||
case PIXELFORMAT_RGBA4_UNORM:
|
||||
case PIXELFORMAT_RGB5A1_UNORM:
|
||||
case PIXELFORMAT_RGB565_UNORM:
|
||||
case PIXELFORMAT_DEPTH16_UNORM:
|
||||
return 2 * width;
|
||||
case PIXELFORMAT_RGBA8_UNORM:
|
||||
case PIXELFORMAT_sRGBA8_UNORM:
|
||||
case PIXELFORMAT_RG16_UNORM:
|
||||
case PIXELFORMAT_RG16_FLOAT:
|
||||
case PIXELFORMAT_R32_FLOAT:
|
||||
case PIXELFORMAT_RGB10A2_UNORM:
|
||||
case PIXELFORMAT_RG11B10_FLOAT:
|
||||
case PIXELFORMAT_DEPTH24_UNORM:
|
||||
case PIXELFORMAT_DEPTH32_FLOAT:
|
||||
case PIXELFORMAT_DEPTH24_UNORM_STENCIL8:
|
||||
return 4 * width;
|
||||
case PIXELFORMAT_RGBA16_UNORM:
|
||||
case PIXELFORMAT_RGBA16_FLOAT:
|
||||
case PIXELFORMAT_RG32_FLOAT:
|
||||
case PIXELFORMAT_DEPTH32_FLOAT_STENCIL8:
|
||||
return 8 * width;
|
||||
case PIXELFORMAT_RGBA32_FLOAT:
|
||||
return 16 * width;
|
||||
case PIXELFORMAT_DXT1_UNORM:
|
||||
case PIXELFORMAT_DXT3_UNORM:
|
||||
case PIXELFORMAT_BC4_UNORM:
|
||||
case PIXELFORMAT_BC4_SNORM:
|
||||
return width; // TODO: block size?
|
||||
case PIXELFORMAT_DXT5_UNORM:
|
||||
return 2 * width;
|
||||
case PIXELFORMAT_UNKNOWN:
|
||||
case PIXELFORMAT_NORMAL:
|
||||
case PIXELFORMAT_HDR:
|
||||
case PIXELFORMAT_MAX_ENUM:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int getPixelFormatColorComponents(PixelFormat format)
|
||||
{
|
||||
switch (format)
|
||||
|
||||
@@ -137,6 +137,7 @@ bool isPixelFormatStencil(PixelFormat format);
|
||||
* NOTE: Currently returns 0 for compressed formats.
|
||||
**/
|
||||
size_t getPixelFormatSize(PixelFormat format);
|
||||
size_t getPixelFormatRowStride(PixelFormat format, int width);
|
||||
|
||||
/**
|
||||
* Gets the number of color components in the given pixel format.
|
||||
|
||||
Reference in New Issue
Block a user