from __future__ import annotations
#cImage
import Coat_CPP
import typing
from typing import ClassVar
from typing import TypeAlias
from typing import Any
from enum import Enum
[docs]
class cImage():
'''
Main class for handling raster images.
* Provides functionality for creating, loading, manipulating, and querying
image data. Supports various pixel formats, mipmapping, and compression operations.
Designed to be compatible with OpenGL texture uploads.
'''
[docs]
@staticmethod
def CalcImageSize(Format: any, Width: int, Height: int, Depth: int, MipMapCount: int) -> int:
'''
Calculates total size in bytes for an image with given parameters.
'''
pass # cpp source
MipMapsAll: int = Coat_CPP.cImage.MipMapsAll #: static int (T) Default max count of mipmaps
def __init__(self):
pass # CPP source
def __init__(self, Src: cImage):
pass # CPP source
def Copy(self, Src: cImage):
pass # cpp source
def __init__(self, Src: cImage, rc: any):
pass # CPP source
def Copy(self, Src: cImage, rc: any):
pass # cpp source
[docs]
def Copy(self, Pixels: any, Format: any, Width: int, Height: int, Depth: int, MipMapCount: int):
'''
Copies data from a raw buffer.
'''
pass # cpp source
[docs]
def Set(self, Pixels: any, Format: any, Width: int, Height: int, Depth: int, MipMapCount: int):
'''
Sets the image to point to existing memory (or adopts it).
'''
pass # cpp source
[docs]
def SetHeight(self, Height: int):
pass # cpp source
[docs]
def Create(self, Format: any, Width: int, Height: int, Depth: int, MipMapCount: int):
'''
Allocates memory for a new image.
'''
pass # cpp source
def __init__(self, Format: any, Width: int, Height: int, Depth: int, MipMapCount: int):
pass # CPP source
[docs]
def Free(self):
'''
Releases the pixel memory.
'''
pass # cpp source
def __init__(self):
pass # CPP source
def GetWidth(self) -> int:
pass # cpp source
def GetHeight(self) -> int:
pass # cpp source
def GetDepth(self) -> int:
pass # cpp source
[docs]
def GetWidth(self, MipMapLevel: int) -> int:
pass # cpp source
[docs]
def GetHeight(self, MipMapLevel: int) -> int:
pass # cpp source
[docs]
def GetDepth(self, MipMapLevel: int) -> int:
pass # cpp source
[docs]
def GetSize(self) -> int:
pass # cpp source
def GetPixels(self) -> any:
pass # cpp source
[docs]
def GetPixels(self, MipMapLevel: int) -> any:
pass # cpp source
[docs]
def GetMipMapCount(self) -> int:
pass # cpp source
[docs]
def GetMipMapCountFromDimensions(self) -> int:
pass # cpp source
[docs]
def GetDimension(self) -> any:
pass # cpp source
[docs]
def SwapChannels(self, Ch0: int, Ch1: int) -> bool:
pass # cpp source
[docs]
def RemoveChannels(self, KeepCh0: bool, KeepCh1: bool = True, KeepCh2: bool = True, KeepCh3: bool = True) -> bool:
pass # cpp source
[docs]
def InvertChannel(self, Ch: int) -> bool:
pass # cpp source
[docs]
def CopyChannel(self, From: int, To: int) -> bool:
pass # cpp source
[docs]
def Uncompress(self):
'''
Dxt3, Dxt5 -> Rgba8
'''
pass # cpp source
[docs]
def Compress(self):
'''
Rgba8 -> Dxt5
'''
pass # cpp source
[docs]
def ToGrayScale(self) -> bool:
'''
Rgb16, Rgba16 -> R16
'''
pass # cpp source
[docs]
def ToNormalMap(self, Format: any, Z: float = 1.0, OldAlpha: bool = False) -> bool:
'''
"OldAlpha" works only if(Rgba8 == m_Format && Rgba8 == Format)
'''
pass # cpp source
[docs]
def CreateMipMaps(self, MipMapCount: int) -> bool:
'''
Generates mipmaps for the image. Not supported for compressed formats.
'''
pass # cpp source
[docs]
def RemoveMipMaps(self):
'''
!Compressed
'''
pass # cpp source
[docs]
def GetPixelR8(self, X: int, Y: int) -> any:
'''
Returns pixel intensity. Assumes R8 format.
'''
pass # cpp source
[docs]
def SetPixelR8(self, X: int, Y: int, p: any):
pass # cpp source
[docs]
def MergeRgb8(self, From: cImage, X: int, Y: int):
pass # cpp source
[docs]
def MergeRgba8(self, From: cImage, X: int, Y: int, ColorAsAlpha: bool):
pass # cpp source
[docs]
def Flip(self) -> bool:
'''
Flips the image vertically. Supports Plain, Packed, and Compressed formats.
'''
pass # cpp source
[docs]
def Resize(self, Width: int, Height: int) -> bool:
'''
Resizes the image using resampling. Plain formats only.
'''
pass # cpp source
[docs]
def Decrease2X(self) -> bool:
'''
Plain formats && !Cube
'''
pass # cpp source
[docs]
def MakePowerOfTwo(self) -> bool:
'''
Resizes the image to the nearest power of two dimensions.
'''
pass # cpp source
[docs]
def Make2D(self, Square: bool = True, DepthStep: int = 1) -> bool:
'''
Converts a 3D volume texture into a 2D strip of slices.
'''
pass # cpp source
[docs]
def CreateSevenLods(self, SaveAs: str = "data/textures/SevenLods.dds"):
'''
Converts 3D texture to 2D set of depth slices
'''
pass # cpp source
def _py_buffer_info(self) -> any:
pass # cpp source