mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 02:21:15 +00:00
* add psvita to cmake * no PIE for vita * add modules to vpk * use custom pvr apphint * select correct renderer for sdl renderer * patch sdl3 shaders, got something on screen! * use proper cmake patch for sdl * add missing module * remove test window which causes a bug in the vita sdl port to show up * add gxm renderer (not working with display yet) * avoid sdl renderer for vita, seems broken * make gxm renderer work with new d3drm * fix rendering somewhat, some geometry shows up * support paletted textures directly to avoid copying the texture twice * fix Draw2DImage * make 3d work, broken lights * clean up a bit * fix normals matrix * remove some unneeded changes * forgot env var * wrong env dest * run clang format * correct texture address mode, use tlsf instead of sceClibMspace * double buffered uniforms seem to work now * missed a line * update GXMRenderer_EnumDevice * hopefully actually fix uniform buffers * run clang-format * remove a change thats not needed * improve fragment shader performance * add vita to dist folder * add base for vita config app * add config self to vpk * transform touch events to virtual size * add livearea graphics * Update cmake file to include livearea assets * put manual in the right place * add sample rco * add messagebox on vita * triple buffer textures because fences arent a thing on vita and making draw&cpu sync would be too slow * make config app not crash on launch * change defaults * update gxm renderer with interface changes * split 2d and 3d shaders completely * update gxm renderer * fix transition on gxm * clang format * move config cmake * move CONFIG_vita * always clear before drawing 2d image * hopefully fix windows build * clang-format fix broken includes * order again * undo moving qt cmake to its own list * move uic search path * use ifdefs for all d3drm backends, cpack to generate vpk * cmake wrong escape * small cleanups in gxm renderer * defer texture delete to avoid overwriting the texture during a frame * clang-format * more of the layout for config * remove top buttons * use SceAppSettings instead of custom ui * use select for back to info center on vita, to make screenshots possible again * remove accidentally left in add_subdirectory * adjust diskpath to be like other ports * use vita_create_vpk and not cpack * gxm: msaa support, fix wrong file path * gxm: add mipmaps (disabled) * clang-format * fix open isle.ini with fopen * add missing strings * use iniparser_set not dictionary_set * add default save path to config * load config app after initializing ini on vita * fix config build * change the default disk & cd path, update the paf library * update paf library headers * include orders for clang-format * clean up * make shader compiler not required * move asm language * warn instead of error when shader source is changed when no compiler is found --------- Co-authored-by: Li <li@silica.codes> Co-authored-by: Christian Semmler <mail@csemmler.com>
49 lines
2.6 KiB
C
49 lines
2.6 KiB
C
#pragma once
|
|
|
|
#include <SDL3/SDL_log.h>
|
|
#include <psp2/gxm.h>
|
|
#include <psp2/kernel/clib.h>
|
|
|
|
#ifdef DEBUG
|
|
#define DEBUG_ONLY_PRINTF(...) sceClibPrintf(__VA_ARGS__)
|
|
#else
|
|
#define DEBUG_ONLY_PRINTF(...)
|
|
#endif
|
|
|
|
#define SCE_ERR(func, ...) \
|
|
({ \
|
|
DEBUG_ONLY_PRINTF("%s\n", #func); \
|
|
int __sce_err_ret_val = func(__VA_ARGS__); \
|
|
if (__sce_err_ret_val < 0) { \
|
|
sceClibPrintf(#func " error: 0x%x\n", __sce_err_ret_val); \
|
|
} \
|
|
__sce_err_ret_val; \
|
|
})
|
|
|
|
#define ALIGN(x, a) (((x) + ((a) -1)) & ~((a) -1))
|
|
|
|
#define ALIGNMENT(n, a) (((a) - ((n) % (a))) % (a))
|
|
|
|
#define SET_UNIFORM(buffer, param, value) \
|
|
do { \
|
|
size_t __offset = sceGxmProgramParameterGetResourceIndex(param); \
|
|
void* __dst = (uint8_t*) (buffer) + (__offset * sizeof(uint32_t)); \
|
|
memcpy(__dst, reinterpret_cast<const void*>(&(value)), sizeof(value)); \
|
|
} while (0)
|
|
|
|
#define GET_SHADER_PARAM(var, gxp, name, ret) \
|
|
const SceGxmProgramParameter* var = sceGxmProgramFindParameterByName(gxp, name); \
|
|
if (!var) { \
|
|
SDL_Log("Failed to find param %s", name); \
|
|
return ret; \
|
|
}
|
|
|
|
static void printMatrix4x4(const float mat[4][4])
|
|
{
|
|
sceClibPrintf("mat4{\n");
|
|
for (int i = 0; i < 4; i++) {
|
|
sceClibPrintf("%f %f %f %f\n", mat[i][0], mat[i][1], mat[i][2], mat[i][3]);
|
|
}
|
|
sceClibPrintf("}\n");
|
|
}
|