Console-Swizzler
C library to swizzle DDS textures for console games
Loading...
Searching...
No Matches
console-swizzler.h
Go to the documentation of this file.
1#ifndef __CONSOLE_SWIZZLER_INCLUDE_CONSOLE_SWIZZLER_H__
2#define __CONSOLE_SWIZZLER_INCLUDE_CONSOLE_SWIZZLER_H__
3#include <stdlib.h>
4#include <stdint.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#ifndef _SWIZ_EXTERN
11#ifdef _WIN32
12#define _SWIZ_EXTERN __declspec(dllexport) extern
13#else
14#define _SWIZ_EXTERN __attribute__((visibility("default"))) extern
15#endif
16#endif
17
18#define _SWIZ_ENUM(s) typedef unsigned int s; enum
19
20// Version info
21#define SWIZ_VERSION "0.4.0"
22#define SWIZ_VERSION_INT 400
23
31
40
46_SWIZ_ENUM(SwizError) {
47 SWIZ_OK = 0,
48 SWIZ_ERROR_UNKNOWN_PLATFORM,
49 SWIZ_ERROR_INVALID_TEXTURE_SIZE,
50 SWIZ_ERROR_INVALID_BLOCK_INFO,
51 SWIZ_ERROR_INVALID_ARRAY_SIZE,
52 SWIZ_ERROR_INVALID_GOBS_HEIGHT,
53 SWIZ_ERROR_MEMORY_ALLOC,
54 SWIZ_ERROR_NULL_POINTER,
55 SWIZ_ERROR_MAX,
56};
57
64_SWIZ_EXTERN const char* swizGetErrorMessage(SwizError error);
65
71_SWIZ_ENUM(SwizPlatform) {
72 SWIZ_PLATFORM_UNK = 0,
73 SWIZ_PLATFORM_PS4,
74 SWIZ_PLATFORM_SWITCH,
75 SWIZ_PLATFORM_MAX,
76};
77
83typedef struct SwizContext SwizContext;
84
91
101
111
120_SWIZ_EXTERN SwizError swizContextSetPlatform(SwizContext *context, SwizPlatform platform);
121
131_SWIZ_EXTERN SwizError swizContextSetTextureSize(SwizContext *context, int width, int height);
132
140_SWIZ_EXTERN void swizContextSetHasMips(SwizContext *context, int has_mips);
141
152_SWIZ_EXTERN SwizError swizContextSetArraySize(SwizContext *context, int array_size);
153
164_SWIZ_EXTERN SwizError swizContextSetGobsHeight(SwizContext *context, int gobs_height);
165
180 int block_width, int block_height,
181 int block_data_size);
182
191
200
209
221
233
243_SWIZ_EXTERN SwizError swizDoSwizzle(const uint8_t *data, uint8_t *swizzled, SwizContext *context);
244
254_SWIZ_EXTERN SwizError swizDoUnswizzle(const uint8_t *data, uint8_t *unswizzled,
255 SwizContext *context);
256
257#ifdef __cplusplus
258}
259#endif
260
261#endif // __CONSOLE_SWIZZLER_INCLUDE_CONSOLE_SWIZZLER_H__
#define _SWIZ_EXTERN
Definition: console-swizzler.h:14
_SWIZ_EXTERN const char * swizGetVersion()
Gets the version of console-swizzler.
_SWIZ_EXTERN int swizGetVersionAsInt()
Gets the version of console-swizzler as an integer.
_SWIZ_EXTERN const char * swizGetErrorMessage(SwizError error)
Gets an error message for #SwizError.
#define _SWIZ_ENUM(s)
Definition: console-swizzler.h:18
Class for context of swizzling.
_SWIZ_EXTERN SwizError swizDoSwizzle(const uint8_t *data, uint8_t *swizzled, SwizContext *context)
Swizzles a texture.
_SWIZ_EXTERN void swizFreeContext(SwizContext *context)
Frees the memory of a context.
_SWIZ_EXTERN SwizError swizContextGetLastError(SwizContext *context)
Gets error status of context.
_SWIZ_EXTERN void swizContextSetHasMips(SwizContext *context, int has_mips)
Sets if textures have mipmaps or not.
_SWIZ_EXTERN SwizError swizDoUnswizzle(const uint8_t *data, uint8_t *unswizzled, SwizContext *context)
Unswizzles a texture.
_SWIZ_EXTERN uint8_t * swizAllocSwizzledData(SwizContext *context)
Allocates a buffer for swizzled data.
_SWIZ_EXTERN SwizContext * swizNewContext()
Creates a new context.
_SWIZ_EXTERN SwizError swizContextSetGobsHeight(SwizContext *context, int gobs_height)
Sets the max height of GOBs blocks for switch.
_SWIZ_EXTERN SwizError swizContextSetPlatform(SwizContext *context, SwizPlatform platform)
Sets platform information to context.
_SWIZ_EXTERN uint8_t * swizAllocUnswizzledData(SwizContext *context)
Allocates a buffer for unswizzled data.
_SWIZ_EXTERN SwizError swizContextSetBlockInfo(SwizContext *context, int block_width, int block_height, int block_data_size)
Sets block size to context.
_SWIZ_EXTERN void swizContextInit(SwizContext *context)
Initialize attributes of a context.
_SWIZ_EXTERN uint32_t swizGetSwizzledSize(SwizContext *context)
Gets binary size of swizzled data.
_SWIZ_EXTERN uint32_t swizGetUnswizzledSize(SwizContext *context)
Gets binary size of unswizzled data.
_SWIZ_EXTERN SwizError swizContextSetArraySize(SwizContext *context, int array_size)
Sets the number of textures in a buffer.
_SWIZ_EXTERN SwizError swizContextSetTextureSize(SwizContext *context, int width, int height)
Sets width and height to context.