mirror of
https://github.com/Relintai/sfw.git
synced 2025-04-14 09:10:47 +02:00
Cleanups.
This commit is contained in:
parent
847de487e0
commit
6c7a1e239f
@ -219,7 +219,7 @@ GameScene::GameScene() {
|
|||||||
sprite->update_mesh();
|
sprite->update_mesh();
|
||||||
|
|
||||||
tile_map = new TileMap();
|
tile_map = new TileMap();
|
||||||
tile_map->material = material.ptr();
|
tile_map->material = material;
|
||||||
tile_map->atlas_size_x = 2;
|
tile_map->atlas_size_x = 2;
|
||||||
tile_map->atlas_size_y = 2;
|
tile_map->atlas_size_y = 2;
|
||||||
|
|
||||||
|
@ -2,10 +2,6 @@
|
|||||||
#ifndef LOGGER_H
|
#ifndef LOGGER_H
|
||||||
#define LOGGER_H
|
#define LOGGER_H
|
||||||
|
|
||||||
#include <cstring>
|
|
||||||
#include <functional>
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
class String;
|
class String;
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include "core/error_macros.h"
|
#include "core/error_macros.h"
|
||||||
#include "core/memory.h"
|
#include "core/memory.h"
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
#define COMPACT_CHUNK(m_entry, m_to_pos) \
|
#define COMPACT_CHUNK(m_entry, m_to_pos) \
|
||||||
do { \
|
do { \
|
||||||
void *_dst = &((unsigned char *)pool)[m_to_pos]; \
|
void *_dst = &((unsigned char *)pool)[m_to_pos]; \
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#include "object/resource.h"
|
#include "object/resource.h"
|
||||||
|
|
||||||
#include "core/ustring.h"
|
|
||||||
#include "font_material.h"
|
#include "font_material.h"
|
||||||
|
|
||||||
class Image;
|
class Image;
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include "core/vector2i.h"
|
#include "core/vector2i.h"
|
||||||
#include "object/object.h"
|
#include "object/object.h"
|
||||||
//#include "core/os/main_loop.h"
|
|
||||||
#include "core/rb_map.h"
|
#include "core/rb_map.h"
|
||||||
#include "core/rb_set.h"
|
#include "core/rb_set.h"
|
||||||
#include "core/thread_safe.h"
|
#include "core/thread_safe.h"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define MESH_H
|
#define MESH_H
|
||||||
|
|
||||||
#include "core/vector.h"
|
#include "core/vector.h"
|
||||||
#include <inttypes.h>
|
#include "core/int_types.h"
|
||||||
#include "core/color.h"
|
#include "core/color.h"
|
||||||
|
|
||||||
#include "object/resource.h"
|
#include "object/resource.h"
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
#include "core/transform_2d.h"
|
#include "core/transform_2d.h"
|
||||||
#include "core/vector2.h"
|
#include "core/vector2.h"
|
||||||
|
|
||||||
class Camera2D : Object2D {
|
class Camera2D : public Object2D {
|
||||||
|
SFW_OBJECT(Camera2D, Object2D);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Transform2D get_model_view_matrix();
|
Transform2D get_model_view_matrix();
|
||||||
void set_model_view_matrix(const Transform2D &p_value);
|
void set_model_view_matrix(const Transform2D &p_value);
|
||||||
|
@ -3,11 +3,15 @@
|
|||||||
|
|
||||||
#include "render_core/3rd_glad.h"
|
#include "render_core/3rd_glad.h"
|
||||||
|
|
||||||
|
#include "render_objects/object_3d.h"
|
||||||
|
|
||||||
#include "core/projection.h"
|
#include "core/projection.h"
|
||||||
#include "core/transform.h"
|
#include "core/transform.h"
|
||||||
#include "core/vector3.h"
|
#include "core/vector3.h"
|
||||||
|
|
||||||
class Camera3D {
|
class Camera3D : public Object3D {
|
||||||
|
SFW_OBJECT(Camera3D, Object3D);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Transform get_camera_transform();
|
Transform get_camera_transform();
|
||||||
void set_camera_transform(const Transform &p_value);
|
void set_camera_transform(const Transform &p_value);
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
#ifndef OBJECT_2D_H
|
#ifndef OBJECT_2D_H
|
||||||
#define OBJECT_2D_H
|
#define OBJECT_2D_H
|
||||||
|
|
||||||
|
#include "object/object.h"
|
||||||
|
|
||||||
#include "core/transform_2d.h"
|
#include "core/transform_2d.h"
|
||||||
|
|
||||||
class Object2D {
|
class Object2D : public Object {
|
||||||
|
SFW_OBJECT(Object2D, Object);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Object2D();
|
Object2D();
|
||||||
virtual ~Object2D();
|
virtual ~Object2D();
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
#ifndef OBJECT_3D_H
|
#ifndef OBJECT_3D_H
|
||||||
#define OBJECT_3D_H
|
#define OBJECT_3D_H
|
||||||
|
|
||||||
|
#include "object/object.h"
|
||||||
|
|
||||||
#include "core/transform.h"
|
#include "core/transform.h"
|
||||||
|
|
||||||
class Object3D {
|
class Object3D : public Object {
|
||||||
|
SFW_OBJECT(Object3D, Object);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Object3D();
|
Object3D();
|
||||||
virtual ~Object3D();
|
virtual ~Object3D();
|
||||||
@ -11,5 +15,4 @@ public:
|
|||||||
Transform transform;
|
Transform transform;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif // OBJECT_3D_h
|
#endif // OBJECT_3D_h
|
||||||
|
@ -14,6 +14,8 @@ class FontMaterial;
|
|||||||
class Mesh;
|
class Mesh;
|
||||||
|
|
||||||
class Text2D : public Object2D {
|
class Text2D : public Object2D {
|
||||||
|
SFW_OBJECT(Text2D, Object2D);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Color get_text_color() const;
|
Color get_text_color() const;
|
||||||
void set_text_color(const Color &p_color);
|
void set_text_color(const Color &p_color);
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
#include "render_objects/camera_2d.h"
|
#include "render_objects/camera_2d.h"
|
||||||
|
|
||||||
void TileMap::build_mesh() {
|
void TileMap::build_mesh() {
|
||||||
if (!mesh) {
|
if (!mesh.is_valid()) {
|
||||||
mesh = new Mesh(2);
|
mesh = Ref<Mesh>(memnew(Mesh(2)));
|
||||||
} else {
|
} else {
|
||||||
mesh->clear();
|
mesh->clear();
|
||||||
}
|
}
|
||||||
@ -24,8 +24,9 @@ void TileMap::build_mesh() {
|
|||||||
for (int y = 0; y < size_y; ++y) {
|
for (int y = 0; y < size_y; ++y) {
|
||||||
uint8_t d = data[x_offset + y];
|
uint8_t d = data[x_offset + y];
|
||||||
|
|
||||||
if (d == 0)
|
if (d == 0) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
float px;
|
float px;
|
||||||
float py;
|
float py;
|
||||||
@ -52,16 +53,17 @@ void TileMap::build_mesh() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TileMap::allocate_data() {
|
void TileMap::allocate_data() {
|
||||||
if (size_x <= 0 || size_y <= 0)
|
if (size_x <= 0 || size_y <= 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
delete[] data;
|
memdelete_arr(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = size_x * size_y;
|
int size = size_x * size_y;
|
||||||
|
|
||||||
data = new uint8_t[size];
|
data = memnew_arr(uint8_t, size);
|
||||||
|
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
data[i] = 0;
|
data[i] = 0;
|
||||||
@ -98,7 +100,7 @@ void TileMap::set_data(const int x, const int y, const uint8_t value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TileMap::render() {
|
void TileMap::render() {
|
||||||
if (!mesh) {
|
if (!mesh.is_valid()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,7 +108,7 @@ void TileMap::render() {
|
|||||||
|
|
||||||
Camera2D::current_camera->set_model_view_matrix(mat_orig * transform);
|
Camera2D::current_camera->set_model_view_matrix(mat_orig * transform);
|
||||||
|
|
||||||
if (material) {
|
if (material.is_valid()) {
|
||||||
material->bind();
|
material->bind();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,20 +117,16 @@ void TileMap::render() {
|
|||||||
Camera2D::current_camera->set_model_view_matrix(mat_orig);
|
Camera2D::current_camera->set_model_view_matrix(mat_orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
TileMap::TileMap() :
|
TileMap::TileMap() {
|
||||||
Object2D() {
|
data = NULL;
|
||||||
data = nullptr;
|
|
||||||
size_x = 16;
|
size_x = 16;
|
||||||
size_y = 16;
|
size_y = 16;
|
||||||
|
|
||||||
atlas_size_x = 1;
|
atlas_size_x = 1;
|
||||||
atlas_size_y = 1;
|
atlas_size_y = 1;
|
||||||
|
|
||||||
mesh = nullptr;
|
|
||||||
material = nullptr;
|
|
||||||
}
|
}
|
||||||
TileMap::~TileMap() {
|
TileMap::~TileMap() {
|
||||||
if (data) {
|
if (data) {
|
||||||
delete[] data;
|
memdelete_arr(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,9 @@
|
|||||||
#include "render_core/material.h"
|
#include "render_core/material.h"
|
||||||
|
|
||||||
class TileMap : public Object2D {
|
class TileMap : public Object2D {
|
||||||
public:
|
SFW_OBJECT(TileMap, Object2D);
|
||||||
|
|
||||||
|
public:
|
||||||
void build_mesh();
|
void build_mesh();
|
||||||
void allocate_data();
|
void allocate_data();
|
||||||
void add_rect(const int x, const int y, const float uv_x, const float uv_y, const float uv_size_x, const float uv_size_y);
|
void add_rect(const int x, const int y, const float uv_x, const float uv_y, const float uv_size_x, const float uv_size_y);
|
||||||
@ -29,8 +30,8 @@ class TileMap : public Object2D {
|
|||||||
int atlas_size_x;
|
int atlas_size_x;
|
||||||
int atlas_size_y;
|
int atlas_size_y;
|
||||||
|
|
||||||
Mesh *mesh;
|
Ref<Mesh> mesh;
|
||||||
Material *material;
|
Ref<Material> material;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user