Files
2026-06-14 19:09:18 +01:00

92 lines
2.3 KiB
Python

# Copyright (c) 2023, Shukant Pal and Contributors
# SPDX-License-Identifier: Apache-2.0
from enum import IntEnum
class KtxErrorCode(IntEnum):
"""Error codes thrown by library functions."""
SUCCESS = 0
"""Operation was successful."""
FILE_DATA_ERROR = 1
"""The data in the file is inconsistent with the spec."""
FILE_ISPIPE = 2
"""The file is a pipe or named pipe."""
FILE_OPEN_FAILED = 3
"""The target file could not be opened."""
FILE_OVERFLOW = 4
"""The operation would exceed the max file size."""
FILE_READ_ERROR = 5
"""An error occurred while reading from the file."""
FILE_SEEK_ERROR = 6
"""An error occurred while seeking in the file."""
FILE_UNEXPECTED_EOF = 7
"""File does not have enough data to satisfy request."""
FILE_WRITE_ERROR = 8
"""An error occurred while writing to the file."""
GL_ERROR = 9
"""GL operations resulted in an error."""
INVALID_OPERATION = 10
"""The operation is not allowed in the current state."""
INVALID_VALUE = 11
"""A parameter value was not valid."""
NOT_FOUND = 12
"""Requested key was not found"""
OUT_OF_MEMORY = 13
"""Not enough memory to complete the operation."""
TRANSCODE_FAILED = 14
"""Transcoding of block compressed texture failed."""
UNKNOWN_FILE_FORMAT = 15
"""The file not a KTX file."""
UNSUPPORTED_TEXTURE_TYPE = 16
"""The KTX file specifies an unsupported texture type."""
UNSUPPORTED_FEATURE = 17
"""Feature not included in in-use library or not yet implemented."""
LIBRARY_NOT_LINKED = 18
"""Library dependency (OpenGL or Vulkan) not linked into application."""
DECOMPRESS_LENGTH_ERROR = 19
"""Decompressed byte count does not match expected byte size."""
DECOMPRESS_CHECKSUM_ERROR = 20
"""Checksum mismatch when decompressing."""
ERROR_MAX_ENUM = LIBRARY_NOT_LINKED
"""For safety checks."""
class KtxError(Exception):
"""Error thrown when native operation does not succeed."""
invocation: str
"""The C library function called."""
code: KtxErrorCode
"""The error code returned by libktx."""
def __init__(self, invocation: str, code: KtxErrorCode):
self.invocation = invocation
self.code = code
def __str__(self):
return str(self.invocation) + " returned with " + str(self.code)