fixed fps

This commit is contained in:
Victor Vobis 2026-02-23 15:12:03 +01:00
parent 58eaf2a92e
commit 778b6efeee
8 changed files with 48 additions and 22 deletions

View File

@ -1,6 +1,6 @@
C 0,0,-5 0,0,5 90
C 0,0,-5 0,0,1 90
L 0,2,-2 1 255,255,200
A 0.5 0,0,100
sp 0,0,0 2 234,123,123
sp 0,0,0 2 123,234,123
cy 0,0,0 0,1,0 1 5 123,123,234
cy 0,0,0 0,1,0 1 5 123,123,234

View File

@ -1,10 +0,0 @@
C 20,20,-20 -20,-20,20 60
L 0,0.5,-1 1 255,255,200
A 0.5 100,100,100
pl 0,-1.5,2 0,-1,0 234,234,123
sp 0,-1.25,2 1 234,234,234
sp 0,-0.5,2 0.75 234,234,234
sp 0,0,2 0.5 234,234,234
cy 0,0.25,2 0,1,0 0.3 0.3 50,50,50
di 0,0.2,2 0,1,0 0.5 150,150,150
cn 0,0,1.3 0,1,100 0.1 0.5 255,200,100

Binary file not shown.

View File

@ -13,6 +13,8 @@
#include "../../minirt.h"
#include <unistd.h>
const char *asset_root = ROOT_DIRECTORY"/assets";
void container_item_dirent_create(t_item *item, char *title, \
int type, void (*func)(void *, void *))
{
@ -31,8 +33,8 @@ void explorer_create(t_container *explorer, t_data *data)
ft_fprintf(STDERR_FILENO, "Failed to get current directory, exiting...\n");
lst_memory(NULL, NULL, FAIL);
}
if (ft_strncmp(cwd, ROOT_DIRECTORY, ft_strlen(ROOT_DIRECTORY)) != 0) {
if (chdir(ROOT_DIRECTORY) != 0) {
if (ft_strncmp(cwd, asset_root, ft_strlen(asset_root)) != 0) {
if (chdir(asset_root) != 0) {
ft_fprintf(STDERR_FILENO, "Failed to change directory, exiting...\n");
lst_memory(NULL, NULL, FAIL);
}
@ -46,8 +48,7 @@ void explorer_read_dir_loop(DIR *dir, void *param, \
{
struct dirent *entry;
t_item item;
bool is_root_dir = ft_strncmp(cwd, ROOT_DIRECTORY, ft_strlen(cwd)) == 0;
bool is_root_dir = ft_strncmp(cwd, asset_root, ft_strlen(cwd)) == 0;
ft_strlcpy(explorer->title, cwd, CONTAINER_TITLE_LEN);
while (1)

View File

@ -16,6 +16,8 @@ uint key_misc_function(int keycode, t_scene *scene, t_data *data)
{
if (keycode == KEY_P)
scene_save(scene);
else if (keycode == KEY_X)
return (scene->anti_aliasing = scene->anti_aliasing == 0 ? ANTI_ALIASING_FACTOR : 0, true);
else if (keycode == KEY_M)
return (data->current_menu = &data->menu[MENU_MAIN], true);
else if (keycode == KEY_Y)
@ -42,11 +44,11 @@ int key_move_camera(int keycode, t_camera *camera)
calc_camera_space(camera);
if (keycode == KEY_A || keycode == KEY_D)
translation = scale_vector(camera->right, \
(keycode - KEY_A - 1.5) * 0.66);
(keycode - KEY_A - 1.5) * 0.1);
else if (keycode == KEY_W || keycode == KEY_S)
translation = scale_vector(camera->normal, (keycode - KEY_S - 2) * 0.5);
translation = scale_vector(camera->normal, (keycode - KEY_S - 2) * 0.1);
else if (keycode == KEY_Q || keycode == KEY_E)
translation = scale_vector(camera->up, (keycode - KEY_E - 6) * 0.33);
translation = scale_vector(camera->up, (keycode - KEY_E - 6) * 0.1);
else
return (false);
camera->position = add_vector(camera->position, translation);

View File

@ -79,7 +79,7 @@ bool calc_camera_rotation(int key, t_camera *camera)
float rotation_angle;
t_vector perpendicular_normal;
rotation_angle = 10;
rotation_angle = 5;
if (key == KEY_UP)
{
perpendicular_normal = camera->up;

View File

@ -49,15 +49,15 @@ void help_menu_draw(void *data_ptr, void *pixel)
(void)pixel;
rt_draw_rect_blend(background, data->pixel, 0, HELP_MENU_BG);
glyph_print(x + 2, y + 2, \
"controls\n" \
"controls\n\n" \
"main menu: m\n" \
"movement: \n" \
"move: wasdqe\n" \
"rotate: arrow keys\n" \
"move light: hjklio\n" \
"toggle anti aliasing: x\n" \
"select next light: n\n\n" \
"drag object: lmouse\nchange object: rmouse + use menu\n\n" \
"resolution and anti-aliasing:\n\nnumpad + or -; Enter to reset\n" \
"backsp: reset_cam\n" \
"p: save file\nesc: exit\n", \
data->pixel);

View File

@ -112,6 +112,7 @@ void initialize_data(t_data *data, char *path)
data->texture = LoadTextureFromImage(img);
data->should_rerender = true;
pixels_image_syncronize(data->pixel_colors, data->pixel);
SetTargetFPS(60);
}
char* validate_file_extension(int argc, char **argv)
@ -130,6 +131,34 @@ void get_key_code(int keys[]) {
keys[c++] = KEY_ESCAPE;
if (c == 3) return;
}
if ((IsKeyPressed(KEY_H) || IsKeyDown(KEY_H))) {
keys[c++] = KEY_H;
if (c == 3) return;
}
if ((IsKeyPressed(KEY_L) || IsKeyDown(KEY_L))) {
keys[c++] = KEY_L;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_K) || IsKeyDown(KEY_K))) {
keys[c++] = KEY_K;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_I) || IsKeyDown(KEY_I))) {
keys[c++] = KEY_J;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_O) || IsKeyDown(KEY_O))) {
keys[c++] = KEY_K;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_J) || IsKeyDown(KEY_J))) {
keys[c++] = KEY_J;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_X))) {
keys[c++] = KEY_X;
if (c == 3) return ;
}
if ((IsKeyPressed(KEY_W) || IsKeyDown(KEY_W))) {
keys[c++] = KEY_W;
if (c == 3) return;
@ -174,6 +203,10 @@ void get_key_code(int keys[]) {
keys[c++] = KEY_M;
if (c == 3) return ;
}
if (IsKeyPressed(KEY_N)) {
keys[c++] = KEY_N;
if (c == 3) return ;
}
if (IsKeyPressed(KEY_P)) {
keys[c++] = KEY_P;
if (c == 3) return ;