diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2d5742ee..8e60750f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -274,17 +274,40 @@ SOURCE_GROUP(src\\cannonboard FILES ${src_cannonboard}) SOURCE_GROUP(src\\engine FILES ${src_engine}) SOURCE_GROUP(src\\engine\\audio FILES ${src_engine_audio}) -set(SRCS - ${src_main} - ${src_frontend} - ${src_hwvideo} - ${src_hwaudio} - ${src_sdl} - ${src_directx} - ${src_cannonboard} - ${src_engine} - ${src_engine_audio} -) + +#VITA +if(VITA) + set(src_vita + "${main_cpp_base}/psp2/psp2_shader.h" + + "${main_cpp_base}/psp2/psp2_shader.c" + ) + set(SRCS + ${src_main} + ${src_frontend} + ${src_hwvideo} + ${src_hwaudio} + ${src_sdl} + ${src_directx} + ${src_cannonboard} + ${src_engine} + ${src_engine_audio} + ${src_vita} + ) +else() + set(SRCS + ${src_main} + ${src_frontend} + ${src_hwvideo} + ${src_hwaudio} + ${src_sdl} + ${src_directx} + ${src_cannonboard} + ${src_engine} + ${src_engine_audio} + ${src_vita} + ) +endif(VITA) # Add Icon For Windows Builds if(WIN32) diff --git a/cmake/vita.cmake b/cmake/vita.cmake index 5e228f11..74e3896b 100644 --- a/cmake/vita.cmake +++ b/cmake/vita.cmake @@ -8,12 +8,15 @@ set(lib_base $ENV{VITASDK}/arm-vita-eabi/lib) set(sdl_root $ENV{VITASDK}/arm-vita-eabi/include/SDL2) include_directories( - "${sdl_root}" + ${CMAKE_SOURCE_DIR}/../src/main/psp2/vitashaderlibs/vita2d_fbo/includes/ + ${CMAKE_SOURCE_DIR}/../src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ + "${sdl_root}" ) link_libraries( SDL2 - Vita2d + vita2d_fbo + vitashaders # VitaGL SceSysmodule_stub SceDisplay_stub @@ -35,7 +38,9 @@ link_libraries( # Linking link_directories( - "${lib_base}" + ${CMAKE_SOURCE_DIR}/../src/main/psp2/vitashaderlibs/vita2d_fbo/lib/ + ${CMAKE_SOURCE_DIR}/../src/main/psp2/vitashaderlibs/vita-shader-collection/lib/ + "${lib_base}" ) add_definitions(-O3 -DSDL2) diff --git a/src/main/psp2/psp2_shader.c b/src/main/psp2/psp2_shader.c new file mode 100644 index 00000000..0dbc3833 --- /dev/null +++ b/src/main/psp2/psp2_shader.c @@ -0,0 +1,86 @@ +// +// Adapted for vanilla c by rsn8887 on 11/13/2017 +// Created by cpasjuste on 18/12/16. +// + +// use https://github.com/frangarcj/vita2dlib/tree/fbo +// and https://github.com/frangarcj/vita-shader-collection/releases + +#include "psp2_shader.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include "xbr_2x_noblend_f.h" +//#include "xbr_2x_noblend_v.h" +#include +#include +#include + + +vita2d_shader *setPSP2Shader(PSP2Shader shaderType) { + + vita2d_shader *shader; + switch (shaderType) { + + case LCD3X: + shader = vita2d_create_shader((SceGxmProgram *) lcd3x_v, (SceGxmProgram *) lcd3x_f); + break; + case SCALE2X: + shader = vita2d_create_shader((SceGxmProgram *) scale2x_v, (SceGxmProgram *) scale2x_f); + break; + case AAA: + shader = vita2d_create_shader((SceGxmProgram *) advanced_aa_v, (SceGxmProgram *) advanced_aa_f); + break; + case SHARP_BILINEAR: + shader = vita2d_create_shader((SceGxmProgram *) sharp_bilinear_v, (SceGxmProgram *) sharp_bilinear_f); + break; + case SHARP_BILINEAR_SIMPLE: + shader = vita2d_create_shader((SceGxmProgram *) sharp_bilinear_simple_v, (SceGxmProgram *) sharp_bilinear_simple_f); + break; + case FXAA: + shader = vita2d_create_shader((SceGxmProgram *) fxaa_v, (SceGxmProgram *) fxaa_f); + break; + default: + shader = vita2d_create_shader((SceGxmProgram *) texture_v, (SceGxmProgram *) texture_f); + break; + } + + vita2d_texture_set_program(shader->vertexProgram, shader->fragmentProgram); + vita2d_texture_set_wvp(shader->wvpParam); + vita2d_texture_set_vertexInput(&shader->vertexInput); + vita2d_texture_set_fragmentInput(&shader->fragmentInput); + + for(int i=0; i<3; i++) { + vita2d_start_drawing(); + vita2d_clear_screen(); + vita2d_wait_rendering_done(); + vita2d_swap_buffers(); + } + + return shader; +} + +void clearPSP2Shader(vita2d_shader *shader) { + if (shader != NULL) { + vita2d_wait_rendering_done(); + vita2d_free_shader(shader); + } +} \ No newline at end of file diff --git a/src/main/psp2/psp2_shader.h b/src/main/psp2/psp2_shader.h new file mode 100644 index 00000000..46a9adfb --- /dev/null +++ b/src/main/psp2/psp2_shader.h @@ -0,0 +1,33 @@ +// +// Adapted for vanilla c by rsn8887 on 11/13/2017 +// Created by cpasjuste on 18/12/16. +// + +#ifndef PSP2_SHADER_H +#define PSP2_SHADER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum PSP2Shader { + NONE = 0, + LCD3X, + SCALE2X, + AAA, + SHARP_BILINEAR, + SHARP_BILINEAR_SIMPLE, + FXAA, +}; +typedef enum PSP2Shader PSP2Shader; + +void clearPSP2Shader(vita2d_shader *shader); +vita2d_shader *setPSP2Shader(PSP2Shader shaderType); + +#ifdef __cplusplus +} +#endif + +#endif //PSP2_SHADER_H diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_f.h new file mode 100644 index 00000000..b74309b8 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _advanced_aa_f_h_ +#define _advanced_aa_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char advanced_aa_f[]; +extern const int advanced_aa_f_size; +//--------------------------------------------------------------------------------- +#endif //_advanced_aa_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_v.h new file mode 100644 index 00000000..5084e7e9 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/advanced_aa_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _advanced_aa_v_h_ +#define _advanced_aa_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char advanced_aa_v[]; +extern const int advanced_aa_v_size; +//--------------------------------------------------------------------------------- +#endif //_advanced_aa_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_f.h new file mode 100644 index 00000000..891e8b6f --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _alpha_blend_f_h_ +#define _alpha_blend_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char alpha_blend_f[]; +extern const int alpha_blend_f_size; +//--------------------------------------------------------------------------------- +#endif //_alpha_blend_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_v.h new file mode 100644 index 00000000..457fc085 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/alpha_blend_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _alpha_blend_v_h_ +#define _alpha_blend_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char alpha_blend_v[]; +extern const int alpha_blend_v_size; +//--------------------------------------------------------------------------------- +#endif //_alpha_blend_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/bicubic_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/bicubic_f.h new file mode 100644 index 00000000..6f9e2f3c --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/bicubic_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _bicubic_f_h_ +#define _bicubic_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char bicubic_f[]; +extern const int bicubic_f_size; +//--------------------------------------------------------------------------------- +#endif //_bicubic_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_f.h new file mode 100644 index 00000000..6ee7cbd9 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _clear_f_h_ +#define _clear_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char clear_f[]; +extern const int clear_f_size; +//--------------------------------------------------------------------------------- +#endif //_clear_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_v.h new file mode 100644 index 00000000..b86717e7 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/clear_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _clear_v_h_ +#define _clear_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char clear_v[]; +extern const int clear_v_size; +//--------------------------------------------------------------------------------- +#endif //_clear_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_f.h new file mode 100644 index 00000000..ce47691b --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _color_f_h_ +#define _color_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char color_f[]; +extern const int color_f_size; +//--------------------------------------------------------------------------------- +#endif //_color_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_v.h new file mode 100644 index 00000000..ffac8e78 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/color_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _color_v_h_ +#define _color_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char color_v[]; +extern const int color_v_size; +//--------------------------------------------------------------------------------- +#endif //_color_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/crt_easymode_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/crt_easymode_f.h new file mode 100644 index 00000000..930c4764 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/crt_easymode_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _crt_easymode_f_h_ +#define _crt_easymode_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char crt_easymode_f[]; +extern const int crt_easymode_f_size; +//--------------------------------------------------------------------------------- +#endif //_crt_easymode_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_f.h new file mode 100644 index 00000000..86311281 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _fxaa_f_h_ +#define _fxaa_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char fxaa_f[]; +extern const int fxaa_f_size; +//--------------------------------------------------------------------------------- +#endif //_fxaa_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_v.h new file mode 100644 index 00000000..2b88bdea --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/fxaa_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _fxaa_v_h_ +#define _fxaa_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char fxaa_v[]; +extern const int fxaa_v_size; +//--------------------------------------------------------------------------------- +#endif //_fxaa_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_f.h new file mode 100644 index 00000000..4ae7b032 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _gtu_f_h_ +#define _gtu_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char gtu_f[]; +extern const int gtu_f_size; +//--------------------------------------------------------------------------------- +#endif //_gtu_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_v.h new file mode 100644 index 00000000..3d37da0c --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/gtu_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _gtu_v_h_ +#define _gtu_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char gtu_v[]; +extern const int gtu_v_size; +//--------------------------------------------------------------------------------- +#endif //_gtu_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_f.h new file mode 100644 index 00000000..1cd4438a --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _lcd3x_f_h_ +#define _lcd3x_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char lcd3x_f[]; +extern const int lcd3x_f_size; +//--------------------------------------------------------------------------------- +#endif //_lcd3x_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_v.h new file mode 100644 index 00000000..6730a89f --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/lcd3x_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _lcd3x_v_h_ +#define _lcd3x_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char lcd3x_v[]; +extern const int lcd3x_v_size; +//--------------------------------------------------------------------------------- +#endif //_lcd3x_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_f.h new file mode 100644 index 00000000..b6496129 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _opaque_f_h_ +#define _opaque_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char opaque_f[]; +extern const int opaque_f_size; +//--------------------------------------------------------------------------------- +#endif //_opaque_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_v.h new file mode 100644 index 00000000..a8f2aed2 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/opaque_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _opaque_v_h_ +#define _opaque_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char opaque_v[]; +extern const int opaque_v_size; +//--------------------------------------------------------------------------------- +#endif //_opaque_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_f.h new file mode 100644 index 00000000..77bdefd9 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _ribbon_f_h_ +#define _ribbon_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char ribbon_f[]; +extern const int ribbon_f_size; +//--------------------------------------------------------------------------------- +#endif //_ribbon_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_f.h new file mode 100644 index 00000000..37580afe --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _ribbon_simple_f_h_ +#define _ribbon_simple_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char ribbon_simple_f[]; +extern const int ribbon_simple_f_size; +//--------------------------------------------------------------------------------- +#endif //_ribbon_simple_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_v.h new file mode 100644 index 00000000..2630ca05 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_simple_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _ribbon_simple_v_h_ +#define _ribbon_simple_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char ribbon_simple_v[]; +extern const int ribbon_simple_v_size; +//--------------------------------------------------------------------------------- +#endif //_ribbon_simple_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_v.h new file mode 100644 index 00000000..b594f9ee --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/ribbon_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _ribbon_v_h_ +#define _ribbon_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char ribbon_v[]; +extern const int ribbon_v_size; +//--------------------------------------------------------------------------------- +#endif //_ribbon_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_f.h new file mode 100644 index 00000000..1b412c83 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _scale2x_f_h_ +#define _scale2x_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char scale2x_f[]; +extern const int scale2x_f_size; +//--------------------------------------------------------------------------------- +#endif //_scale2x_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_v.h new file mode 100644 index 00000000..ae11af2a --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/scale2x_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _scale2x_v_h_ +#define _scale2x_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char scale2x_v[]; +extern const int scale2x_v_size; +//--------------------------------------------------------------------------------- +#endif //_scale2x_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_f.h new file mode 100644 index 00000000..06e3e8b0 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _sharp_bilinear_f_h_ +#define _sharp_bilinear_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char sharp_bilinear_f[]; +extern const int sharp_bilinear_f_size; +//--------------------------------------------------------------------------------- +#endif //_sharp_bilinear_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_f.h new file mode 100644 index 00000000..afa06099 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _sharp_bilinear_simple_f_h_ +#define _sharp_bilinear_simple_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char sharp_bilinear_simple_f[]; +extern const int sharp_bilinear_simple_f_size; +//--------------------------------------------------------------------------------- +#endif //_sharp_bilinear_simple_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_v.h new file mode 100644 index 00000000..d47c9c26 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_simple_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _sharp_bilinear_simple_v_h_ +#define _sharp_bilinear_simple_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char sharp_bilinear_simple_v[]; +extern const int sharp_bilinear_simple_v_size; +//--------------------------------------------------------------------------------- +#endif //_sharp_bilinear_simple_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_v.h new file mode 100644 index 00000000..09272e6f --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/sharp_bilinear_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _sharp_bilinear_v_h_ +#define _sharp_bilinear_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char sharp_bilinear_v[]; +extern const int sharp_bilinear_v_size; +//--------------------------------------------------------------------------------- +#endif //_sharp_bilinear_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_f.h new file mode 100644 index 00000000..74f5a36b --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _texture_f_h_ +#define _texture_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char texture_f[]; +extern const int texture_f_size; +//--------------------------------------------------------------------------------- +#endif //_texture_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_tint_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_tint_f.h new file mode 100644 index 00000000..eece6f0e --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_tint_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _texture_tint_f_h_ +#define _texture_tint_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char texture_tint_f[]; +extern const int texture_tint_f_size; +//--------------------------------------------------------------------------------- +#endif //_texture_tint_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_v.h new file mode 100644 index 00000000..ae183e94 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/texture_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _texture_v_h_ +#define _texture_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char texture_v[]; +extern const int texture_v_size; +//--------------------------------------------------------------------------------- +#endif //_texture_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_f.h new file mode 100644 index 00000000..75255520 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_f_h_ +#define _xbr_2x_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_f[]; +extern const int xbr_2x_f_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_f.h new file mode 100644 index 00000000..e8c48623 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_fast_f_h_ +#define _xbr_2x_fast_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_fast_f[]; +extern const int xbr_2x_fast_f_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_fast_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_v.h new file mode 100644 index 00000000..4bf2d083 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_fast_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_fast_v_h_ +#define _xbr_2x_fast_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_fast_v[]; +extern const int xbr_2x_fast_v_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_fast_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_f.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_f.h new file mode 100644 index 00000000..b7936ce8 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_f.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_noblend_f_h_ +#define _xbr_2x_noblend_f_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_noblend_f[]; +extern const int xbr_2x_noblend_f_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_noblend_f_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_v.h new file mode 100644 index 00000000..b7e0b08a --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_noblend_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_noblend_v_h_ +#define _xbr_2x_noblend_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_noblend_v[]; +extern const int xbr_2x_noblend_v_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_noblend_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_v.h b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_v.h new file mode 100644 index 00000000..ef77a071 --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita-shader-collection/includes/xbr_2x_v.h @@ -0,0 +1,14 @@ +/* + This file was autogenerated by raw2c. +Visit http://www.devkitpro.org +*/ + +//--------------------------------------------------------------------------------- +#ifndef _xbr_2x_v_h_ +#define _xbr_2x_v_h_ +//--------------------------------------------------------------------------------- +extern const unsigned char xbr_2x_v[]; +extern const int xbr_2x_v_size; +//--------------------------------------------------------------------------------- +#endif //_xbr_2x_v_h_ +//--------------------------------------------------------------------------------- diff --git a/src/main/psp2/vitashaderlibs/vita-shader-collection/lib/libvitashaders.a b/src/main/psp2/vitashaderlibs/vita-shader-collection/lib/libvitashaders.a new file mode 100644 index 00000000..5bc70862 Binary files /dev/null and b/src/main/psp2/vitashaderlibs/vita-shader-collection/lib/libvitashaders.a differ diff --git a/src/main/psp2/vitashaderlibs/vita2d_fbo/includes/vita2d_fbo.h b/src/main/psp2/vitashaderlibs/vita2d_fbo/includes/vita2d_fbo.h new file mode 100644 index 00000000..230f242d --- /dev/null +++ b/src/main/psp2/vitashaderlibs/vita2d_fbo/includes/vita2d_fbo.h @@ -0,0 +1,188 @@ +#ifndef VITA2D_H +#define VITA2D_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define RGBA8(r,g,b,a) ((((a)&0xFF)<<24) | (((b)&0xFF)<<16) | (((g)&0xFF)<<8) | (((r)&0xFF)<<0)) + +typedef struct vita2d_clear_vertex { + float x; + float y; +} vita2d_clear_vertex; + +typedef struct vita2d_color_vertex { + float x; + float y; + float z; + unsigned int color; +} vita2d_color_vertex; + +typedef struct vita2d_texture_vertex { + float x; + float y; + float z; + float w; + float u; + float v; +} vita2d_texture_vertex; + +typedef struct vita2d_texture { + SceGxmTexture gxm_tex; + SceUID data_UID; + SceUID palette_UID; + SceGxmRenderTarget *gxm_rtgt; + SceGxmColorSurface gxm_sfc; + SceGxmDepthStencilSurface gxm_sfd; + SceUID depth_UID; +} vita2d_texture; + +typedef struct vita2d_shader_input{ + SceGxmProgramParameter * video_size; + SceGxmProgramParameter * texture_size; + SceGxmProgramParameter * output_size; + SceGxmProgramParameter * frame_count; + SceGxmProgramParameter * frame_direction; + SceGxmProgramParameter * frame_rotation; +} vita2d_shader_input; + +typedef struct vita2d_shader { + SceGxmShaderPatcherId vertexProgramId; + SceGxmShaderPatcherId fragmentProgramId; + SceGxmVertexProgram *vertexProgram; + SceGxmFragmentProgram *fragmentProgram; + SceGxmProgramParameter * paramPositionAttribute; + SceGxmProgramParameter * paramTexcoordAttribute; + SceGxmProgramParameter * wvpParam; + vita2d_shader_input vertexInput; + vita2d_shader_input fragmentInput; +} vita2d_shader; + +typedef struct vita2d_system_pgf_config { + SceFontLanguageCode code; + int (*in_font_group)(unsigned int c); +} vita2d_system_pgf_config; + +typedef struct vita2d_font vita2d_font; +typedef struct vita2d_pgf vita2d_pgf; + +typedef enum vita2d_start_drawing_flags { + VITA_2D_SCENE_FRAGMENT_SET_DEPENDENCY = 0x00000001u, + VITA_2D_SCENE_VERTEX_WAIT_FOR_DEPENDENCY = 0x00000002u, + VITA_2D_RESET_POOL + = 0x00000010u +} vita2d_start_drawing_flags; + +int vita2d_init(); +int vita2d_init_advanced(unsigned int temp_pool_size); +void vita2d_wait_rendering_done(); +int vita2d_fini(); + +void vita2d_clear_screen(); +void vita2d_swap_buffers(); + +void vita2d_start_drawing(); +void vita2d_start_drawing_advanced(vita2d_texture *target, vita2d_start_drawing_flags flags); +void vita2d_end_drawing(); + +int vita2d_common_dialog_update(); + +void vita2d_set_clear_color(unsigned int color); +void vita2d_set_vblank_wait(int enable); +void *vita2d_get_current_fb(); + +void vita2d_set_region_clip(SceGxmRegionClipMode mode, unsigned int x_min, unsigned int y_min, unsigned int x_max, unsigned int y_max); + +void *vita2d_pool_malloc(unsigned int size); +void *vita2d_pool_memalign(unsigned int size, unsigned int alignment); +unsigned int vita2d_pool_free_space(); +void vita2d_pool_reset(); + +void vita2d_draw_pixel(float x, float y, unsigned int color); +void vita2d_draw_line(float x0, float y0, float x1, float y1, unsigned int color); +void vita2d_draw_rectangle(float x, float y, float w, float h, unsigned int color); +void vita2d_draw_fill_circle(float x, float y, float radius, unsigned int color); + +void vita2d_texture_set_alloc_memblock_type(SceKernelMemBlockType type); +SceKernelMemBlockType vita2d_texture_get_alloc_memblock_type(); +vita2d_texture *vita2d_create_empty_texture(unsigned int w, unsigned int h); +vita2d_texture *vita2d_create_empty_texture_format(unsigned int w, unsigned int h, SceGxmTextureFormat format); +void vita2d_free_texture(vita2d_texture *texture); + +unsigned int vita2d_texture_get_width(const vita2d_texture *texture); +unsigned int vita2d_texture_get_height(const vita2d_texture *texture); +unsigned int vita2d_texture_get_stride(const vita2d_texture *texture); +SceGxmTextureFormat vita2d_texture_get_format(const vita2d_texture *texture); +void *vita2d_texture_get_datap(const vita2d_texture *texture); +void *vita2d_texture_get_palette(const vita2d_texture *texture); +SceGxmTextureFilter vita2d_texture_get_min_filter(const vita2d_texture *texture); +SceGxmTextureFilter vita2d_texture_get_mag_filter(const vita2d_texture *texture); +void vita2d_texture_set_filters(vita2d_texture *texture, SceGxmTextureFilter min_filter, SceGxmTextureFilter mag_filter); + +void vita2d_draw_texture(const vita2d_texture *texture, float x, float y); +void vita2d_draw_texture_rotate(const vita2d_texture *texture, float x, float y, float rad); +void vita2d_draw_texture_rotate_hotspot(const vita2d_texture *texture, float x, float y, float rad, float center_x, float center_y); +void vita2d_draw_texture_scale(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale); +void vita2d_draw_texture_part(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h); +void vita2d_draw_texture_part_scale(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h, float x_scale, float y_scale); +void vita2d_draw_texture_scale_rotate_hotspot(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale, float rad, float center_x, float center_y); +void vita2d_draw_texture_scale_rotate(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale, float rad); +void vita2d_draw_texture_part_scale_rotate(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h, float x_scale, float y_scale, float rad); + +void vita2d_draw_texture_tint(const vita2d_texture *texture, float x, float y, unsigned int color); +void vita2d_draw_texture_tint_rotate(const vita2d_texture *texture, float x, float y, float rad, unsigned int color); +void vita2d_draw_texture_tint_rotate_hotspot(const vita2d_texture *texture, float x, float y, float rad, float center_x, float center_y, unsigned int color); +void vita2d_draw_texture_tint_scale(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale, unsigned int color); +void vita2d_draw_texture_tint_part(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h, unsigned int color); +void vita2d_draw_texture_tint_part_scale(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h, float x_scale, float y_scale, unsigned int color); +void vita2d_draw_texture_tint_scale_rotate_hotspot(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale, float rad, float center_x, float center_y, unsigned int color); +void vita2d_draw_texture_tint_scale_rotate(const vita2d_texture *texture, float x, float y, float x_scale, float y_scale, float rad, unsigned int color); +void vita2d_draw_texture_part_tint_scale_rotate(const vita2d_texture *texture, float x, float y, float tex_x, float tex_y, float tex_w, float tex_h, float x_scale, float y_scale, float rad, unsigned int color); + +vita2d_texture *vita2d_load_PNG_file(const char *filename); +vita2d_texture *vita2d_load_PNG_buffer(const void *buffer); + +vita2d_texture *vita2d_load_JPEG_file(const char *filename); +vita2d_texture *vita2d_load_JPEG_buffer(const void *buffer, unsigned long buffer_size); + +vita2d_texture *vita2d_load_BMP_file(const char *filename); +vita2d_texture *vita2d_load_BMP_buffer(const void *buffer); + +vita2d_font *vita2d_load_font_file(const char *filename); +vita2d_font *vita2d_load_font_mem(const void *buffer, unsigned int size); +void vita2d_free_font(vita2d_font *font); +int vita2d_font_draw_text(vita2d_font *font, int x, int y, unsigned int color, unsigned int size, const char *text); +int vita2d_font_draw_textf(vita2d_font *font, int x, int y, unsigned int color, unsigned int size, const char *text, ...); +void vita2d_font_text_dimensions(vita2d_font *font, unsigned int size, const char *text, int *width, int *height); +int vita2d_font_text_width(vita2d_font *font, unsigned int size, const char *text); +int vita2d_font_text_height(vita2d_font *font, unsigned int size, const char *text); + +/* PGF functions are weak imports at the moment, they have to be resolved manually */ +vita2d_pgf *vita2d_load_system_pgf(int numFonts, const vita2d_system_pgf_config *configs); +vita2d_pgf *vita2d_load_default_pgf(); +vita2d_pgf *vita2d_load_custom_pgf(const char *path); +void vita2d_free_pgf(vita2d_pgf *font); +int vita2d_pgf_draw_text(vita2d_pgf *font, int x, int y, unsigned int color, float scale, const char *text); +int vita2d_pgf_draw_textf(vita2d_pgf *font, int x, int y, unsigned int color, float scale, const char *text, ...); +void vita2d_pgf_text_dimensions(vita2d_pgf *font, float scale, const char *text, int *width, int *height); +int vita2d_pgf_text_width(vita2d_pgf *font, float scale, const char *text); +int vita2d_pgf_text_height(vita2d_pgf *font, float scale, const char *text); + +vita2d_shader *vita2d_create_shader(const SceGxmProgram* vertexProgramGxp, const SceGxmProgram* fragmentProgramGxp); +void vita2d_texture_set_program(SceGxmVertexProgram *vertexProgram, SceGxmFragmentProgram *fragmentProgram); +void vita2d_texture_set_wvp(SceGxmProgramParameter *wvpParam); +void vita2d_texture_set_vertexInput(vita2d_shader_input *input); +void vita2d_texture_set_fragmentInput(vita2d_shader_input *input); +void vita2d_free_shader(vita2d_shader *shader); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/main/psp2/vitashaderlibs/vita2d_fbo/lib/libvita2d_fbo.a b/src/main/psp2/vitashaderlibs/vita2d_fbo/lib/libvita2d_fbo.a new file mode 100644 index 00000000..a909d9c3 Binary files /dev/null and b/src/main/psp2/vitashaderlibs/vita2d_fbo/lib/libvita2d_fbo.a differ diff --git a/src/main/sdl2/rendersurface.cpp b/src/main/sdl2/rendersurface.cpp index 27d0cb1e..cc6c065b 100644 --- a/src/main/sdl2/rendersurface.cpp +++ b/src/main/sdl2/rendersurface.cpp @@ -14,7 +14,9 @@ #include "frontend/config.hpp" #ifdef __vita__ -#include "vita2d.h" +#include "psp2/psp2_shader.h" +#include +vita2d_shader *shader = NULL; #endif RenderSurface::RenderSurface() @@ -48,14 +50,18 @@ bool RenderSurface::init(int src_width, int src_height, src_rect.y = 0; dst_rect.y = 0; - if (video_mode != video_settings_t::MODE_STRETCH) { + if (video_mode == video_settings_t::MODE_FULL) { float x_ratio = float(src_width) / float(src_height); int corrected_scn_width = scn_height * x_ratio; dst_rect.w = corrected_scn_width; dst_rect.h = scn_height; dst_rect.x = (scn_width - corrected_scn_width) / 2; - } - else { + } else if (video_mode == video_settings_t::MODE_WINDOW) { + dst_rect.w = src_width * scale; + dst_rect.h = src_height * scale; + dst_rect.x = (scn_width - dst_rect.w) / 2; + dst_rect.y = (scn_height - dst_rect.h) / 2; + } else { dst_rect.w = scn_width; dst_rect.h = scn_height; dst_rect.x = 0; @@ -68,7 +74,14 @@ bool RenderSurface::init(int src_width, int src_height, window = SDL_CreateWindow("Cannonball", 0, 0, scn_width, scn_height, flags); if (!renderer) renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + +#ifdef __vita__ + //Enable sharp-bilinear-simple shader for sharp pixels without distortion. + //This has to be done after the SDL renderer is created because that inits vita2d. + shader = setPSP2Shader(SHARP_BILINEAR_SIMPLE); //vita2d_texture_set_alloc_memblock_type(SCE_KERNEL_MEMBLOCK_TYPE_USER_RW); +#endif + if (surface) SDL_FreeSurface(surface);