mirror of
https://git.planet-casio.com/Fcalva/Copy3DEngine.git
synced 2024-12-28 04:23:44 +01:00
Optimisations compilateur et petites améliorations
This commit is contained in:
parent
25c6bee67a
commit
f2669d8a57
4 changed files with 16 additions and 22 deletions
|
@ -23,10 +23,10 @@ set(ASSETS
|
||||||
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
|
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
|
||||||
|
|
||||||
add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
|
add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
|
||||||
target_compile_options(myaddin PRIVATE -Wall -Wextra -O3 -fira-region=all )
|
target_compile_options(myaddin PRIVATE -Wall -Wextra -Ofast -fira-region=all -flto -fno-math-errno -funsafe-math-optimizations -fassociative-math -freciprocal-math)
|
||||||
target_link_libraries(myaddin Gint::Gint )
|
target_link_libraries(myaddin Gint::Gint )
|
||||||
target_link_libraries(myaddin LibProf::LibProf)
|
target_link_libraries(myaddin LibProf::LibProf)
|
||||||
target_link_options(myaddin PRIVATE -Wl,--print-memory-usage)
|
target_link_options(myaddin PRIVATE -Wl,--print-memory-usage,-flto)
|
||||||
|
|
||||||
if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
|
if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
|
||||||
generate_g3a(TARGET myaddin OUTPUT "Maze3D.g3a"
|
generate_g3a(TARGET myaddin OUTPUT "Maze3D.g3a"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include <gint/image.h>
|
#include <gint/image.h>
|
||||||
#include <libprof.h>
|
#include <libprof.h>
|
||||||
|
|
||||||
#define USB
|
//#define USB
|
||||||
|
|
||||||
#ifdef USB
|
#ifdef USB
|
||||||
#include <gint/usb-ff-bulk.h>
|
#include <gint/usb-ff-bulk.h>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
#include "moteur.h"
|
#include "moteur.h"
|
||||||
#include "map_test.h"
|
#include "map_test.h"
|
||||||
|
|
||||||
//====== Maze3D V0.2 =====
|
//====== Maze3D V0.3 =====
|
||||||
// Git du moteur : https://github.com/attilavs2/Raycaster_G90
|
// Git du moteur : https://github.com/attilavs2/Raycaster_G90
|
||||||
// Git du jeu : https://gitea.planet-casio.com/Fcalva/Maze3D
|
// Git du jeu : https://gitea.planet-casio.com/Fcalva/Maze3D
|
||||||
//
|
//
|
||||||
|
@ -141,8 +141,6 @@ int main(){
|
||||||
drect(0, 0, 395, 112, 0x9dbd);
|
drect(0, 0, 395, 112, 0x9dbd);
|
||||||
drect(0,112, 395, 243, 0xc4c9);
|
drect(0,112, 395, 243, 0xc4c9);
|
||||||
|
|
||||||
image_clear(frame_buffer);
|
|
||||||
|
|
||||||
draw_walls(&buisson0, &briques0, &sky_tex, &WXOR_tex, &D_tex, frame_buffer);
|
draw_walls(&buisson0, &briques0, &sky_tex, &WXOR_tex, &D_tex, frame_buffer);
|
||||||
|
|
||||||
if(first_frame == 1) main_menu();
|
if(first_frame == 1) main_menu();
|
||||||
|
|
|
@ -8,7 +8,7 @@ char map_test[map_w][map_h] = {
|
||||||
{1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,1,1,0,0,0,2,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,1,1,0,0,0,2,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,0,1,0,0,0,2,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,0,1,0,0,0,2,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,0,1,0,0,2,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,0,1,0,0,2,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,2,1,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,2,1,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
{1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
{1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3},
|
||||||
|
@ -66,4 +66,4 @@ char map_test[map_w][map_h] = {
|
||||||
{1,0,2,2,0,2,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,0,1},
|
{1,0,2,2,0,2,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,0,1},
|
||||||
{1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1},
|
{1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1},
|
||||||
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
|
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
|
||||||
};
|
};
|
||||||
|
|
24
src/moteur.c
24
src/moteur.c
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <gint/display.h>
|
#include <gint/display.h>
|
||||||
#include <gint/keyboard.h>
|
#include <gint/keyboard.h>
|
||||||
|
#include <libprof.h>
|
||||||
|
|
||||||
#include "fixed.h"
|
#include "fixed.h"
|
||||||
|
|
||||||
|
@ -132,10 +133,10 @@ void spawn_gen(){
|
||||||
|
|
||||||
srand(SeedSeed);
|
srand(SeedSeed);
|
||||||
|
|
||||||
while(true){
|
while(1){
|
||||||
seed = rand() * 0.5 + rand() * 0.5;
|
seed = rand() * 0.5 + rand() * 0.5;
|
||||||
seed_x = seed & 0b00000000000000000000000001111111;
|
seed_x = seed & 0b1111111;
|
||||||
seed_y = (seed >> 8) & 0b00000000000000000000000000111111;
|
seed_y = (seed >> 8) & 0b111111;
|
||||||
if (seed_x < map_w && seed_y < map_h && (seed_x < 111 && seed_y > 15)){
|
if (seed_x < map_w && seed_y < map_h && (seed_x < 111 && seed_y > 15)){
|
||||||
if(map_test[seed_x][seed_y] == 0){
|
if(map_test[seed_x][seed_y] == 0){
|
||||||
break;
|
break;
|
||||||
|
@ -144,7 +145,7 @@ void spawn_gen(){
|
||||||
}
|
}
|
||||||
fixed_t start_dirX, start_dirY;
|
fixed_t start_dirX, start_dirY;
|
||||||
|
|
||||||
int dirSeed = (seed >> 9) & 0b00000000000000000000000000000011 ;
|
int dirSeed = (seed >> 9) & 0b11 ;
|
||||||
switch(dirSeed){
|
switch(dirSeed){
|
||||||
case 0: {
|
case 0: {
|
||||||
start_dirX = 0x0;
|
start_dirX = 0x0;
|
||||||
|
@ -204,7 +205,6 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
extern fixed_t planeY;
|
extern fixed_t planeY;
|
||||||
extern char map_test[map_w][map_h];
|
extern char map_test[map_w][map_h];
|
||||||
|
|
||||||
unsigned short color;
|
|
||||||
fixed_t cameraX;
|
fixed_t cameraX;
|
||||||
fixed_t rayDirX;
|
fixed_t rayDirX;
|
||||||
fixed_t rayDirY;
|
fixed_t rayDirY;
|
||||||
|
@ -219,7 +219,6 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
int mapY;
|
int mapY;
|
||||||
int stepX; //what direction to step in x or y-direction (either +1 or -1)
|
int stepX; //what direction to step in x or y-direction (either +1 or -1)
|
||||||
int stepY;
|
int stepY;
|
||||||
int hit = 0; //was there a wall hit?
|
|
||||||
int side; //was a NS or a EW wall hit?
|
int side; //was a NS or a EW wall hit?
|
||||||
int lineHeight;
|
int lineHeight;
|
||||||
int texX;
|
int texX;
|
||||||
|
@ -232,7 +231,7 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
struct image_linear_map temp;
|
struct image_linear_map temp;
|
||||||
|
|
||||||
for(x = 0; x < viewport_w; x++) {
|
for(x = 0; x < viewport_w; x++) {
|
||||||
|
|
||||||
//calculate ray position and direction
|
//calculate ray position and direction
|
||||||
cameraX = fdiv(fix(x*2), fix(viewport_w)) - 0xFFFF + h_offset; //x-coordinate in camera space
|
cameraX = fdiv(fix(x*2), fix(viewport_w)) - 0xFFFF + h_offset; //x-coordinate in camera space
|
||||||
|
|
||||||
|
@ -286,12 +285,10 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
while(true) {
|
while(true) {
|
||||||
//Check if the ray is out of range/bounds
|
//Check if the ray is out of range/bounds
|
||||||
if (sideDistX >= max_dist || sideDistY >= max_dist || mapX < 0 || mapY < 0 || mapX >= map_w || mapY >= map_h) {
|
if (sideDistX >= max_dist || sideDistY >= max_dist || mapX < 0 || mapY < 0 || mapX >= map_w || mapY >= map_h) {
|
||||||
hit = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//Otherwise check if ray has hit a wall
|
//Otherwise check if ray has hit a wall
|
||||||
else if (map_test[mapX][mapY] != 0) {
|
else if (map_test[mapX][mapY] > 0) {
|
||||||
hit = 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//jump to next map square, either in x-direction, or in y-direction
|
//jump to next map square, either in x-direction, or in y-direction
|
||||||
|
@ -336,20 +333,19 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
|
|
||||||
lineHeight = f2int(fdiv(fix(viewport_h), perpWallDist)); //Taille en px de la ligne
|
lineHeight = f2int(fdiv(fix(viewport_h), perpWallDist)); //Taille en px de la ligne
|
||||||
if (lineHeight < 1) lineHeight = 1;
|
if (lineHeight < 1) lineHeight = 1;
|
||||||
if (lineHeight > viewport_h) lineHeight = viewport_h - 1;
|
//if (lineHeight > viewport_h) lineHeight = viewport_h - 1;
|
||||||
|
|
||||||
fixed_t texSize = fix(lineHeight) / 64; //taille proportionelle de la ligne a la tex
|
fixed_t texSize = fix(lineHeight) / 64; //taille proportionelle de la ligne a la tex
|
||||||
if (texSize < 0x400) texSize = 0x400; //0x400 = 1/64 * 2^16
|
if (texSize < 0x400) texSize = 0x400; //0x400 = 1/64 * 2^16
|
||||||
if (texSize > 0x3D000) { //0x3D000 = 3.8125 * 2^16, 3.8125 = viewport_h/64
|
if (texSize > 0x3D000) { //0x3D000 = 3.8125 * 2^16, 3.8125 = viewport_h/64
|
||||||
texSample = fceil(fdiv(fix(viewport_h), texSize));
|
texSample = fceil(fdiv(fix(viewport_h), texSize));
|
||||||
texSampleY = 32 - (int)texSample * 0.5 + 1;
|
texSampleY = 32 - (int)texSample * 0.5;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
texSample = 64;
|
texSample = 64;
|
||||||
texSampleY = 0;
|
texSampleY = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
image_t texStripe;
|
image_t texStripe;
|
||||||
image_clear(&texStripe);
|
image_clear(&texStripe);
|
||||||
|
|
||||||
|
@ -362,6 +358,6 @@ void draw_walls(image_t *tex_1, image_t *tex_2, image_t *tex_3, image_t *tex_4,
|
||||||
}
|
}
|
||||||
|
|
||||||
image_scale(&texStripe, 0xFFFF, texSize, &temp);
|
image_scale(&texStripe, 0xFFFF, texSize, &temp);
|
||||||
image_linear(&texStripe, image_at(frame_buffer, x, (int)(viewport_h * 0.5 - lineHeight * 0.5) + v_offset), &temp);
|
image_linear(&texStripe, image_at(frame_buffer, x, (int)(viewport_h * 0.5 - lineHeight * 0.5) + v_offset), &temp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue