style: move public members first in class declarations
- Reorder all class headers to put public interface before private members - Document convention in AGENTS.md
This commit is contained in:
@@ -44,6 +44,7 @@ to the custom scripts instead of system-installed packages.
|
||||
- `auto` for obvious types (e.g. `auto main(...) -> int`)
|
||||
- **East const** (e.g. `char const*` not `const char*`)
|
||||
- **Trailing return type** for all function definitions, including operators (e.g. `auto operator=(T&&) noexcept -> T&`)
|
||||
- **Public members first** in class declarations, private members at the bottom
|
||||
- `<>` includes only for system headers (std, OS, etc.)
|
||||
- `""` includes for third-party dependencies (e.g. `fmt`, `nlohmann/json`)
|
||||
- **Naming:** `snake_case` for variables, functions, and classes
|
||||
|
||||
@@ -15,9 +15,6 @@ enum class buffer_type {
|
||||
};
|
||||
|
||||
class buffer {
|
||||
GLuint m_id = 0;
|
||||
buffer_type m_type = buffer_type::vertex;
|
||||
|
||||
public:
|
||||
buffer();
|
||||
explicit buffer(buffer_type type);
|
||||
@@ -36,6 +33,10 @@ public:
|
||||
auto upload_dynamic(void const* data, size_t size) -> void;
|
||||
auto id() const -> GLuint;
|
||||
auto valid() const -> bool;
|
||||
|
||||
private:
|
||||
GLuint m_id = 0;
|
||||
buffer_type m_type = buffer_type::vertex;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -8,14 +8,6 @@
|
||||
namespace cbt::opengl {
|
||||
|
||||
class context {
|
||||
GLFWwindow* m_window = nullptr;
|
||||
bool m_initialized = false;
|
||||
|
||||
static auto init() -> bool;
|
||||
static auto terminate() -> void;
|
||||
static auto setup_gl() -> bool;
|
||||
static auto print_info() -> void;
|
||||
|
||||
public:
|
||||
explicit context(std::string title, int width, int height);
|
||||
~context();
|
||||
@@ -25,6 +17,15 @@ public:
|
||||
auto swap_buffers() -> void;
|
||||
auto poll_events() -> void;
|
||||
auto raw() const -> GLFWwindow*;
|
||||
|
||||
private:
|
||||
GLFWwindow* m_window = nullptr;
|
||||
bool m_initialized = false;
|
||||
|
||||
static auto init() -> bool;
|
||||
static auto terminate() -> void;
|
||||
static auto setup_gl() -> bool;
|
||||
static auto print_info() -> void;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -16,14 +16,15 @@ struct descriptor_binding {
|
||||
};
|
||||
|
||||
class descriptor_set {
|
||||
std::vector<descriptor_binding> m_bindings;
|
||||
|
||||
public:
|
||||
descriptor_set();
|
||||
auto add_texture(texture tex, GLuint unit = 0) -> void;
|
||||
auto add_buffer(buffer buf, GLuint unit = 0) -> void;
|
||||
auto bind_all() -> void;
|
||||
auto count() const -> size_t;
|
||||
|
||||
private:
|
||||
std::vector<descriptor_binding> m_bindings;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
namespace cbt::opengl {
|
||||
|
||||
class shader {
|
||||
GLuint m_id = 0;
|
||||
|
||||
public:
|
||||
shader();
|
||||
~shader();
|
||||
@@ -26,6 +24,9 @@ public:
|
||||
auto unuse() const -> void;
|
||||
auto id() const -> GLuint;
|
||||
auto valid() const -> bool;
|
||||
|
||||
private:
|
||||
GLuint m_id = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -30,9 +30,6 @@ enum class texture_type {
|
||||
};
|
||||
|
||||
class texture {
|
||||
GLuint m_id = 0;
|
||||
texture_target m_target = texture_target::_2d;
|
||||
|
||||
public:
|
||||
texture();
|
||||
explicit texture(texture_target target);
|
||||
@@ -52,6 +49,10 @@ public:
|
||||
auto generate_mipmaps() -> void;
|
||||
auto id() const -> GLuint;
|
||||
auto valid() const -> bool;
|
||||
|
||||
private:
|
||||
GLuint m_id = 0;
|
||||
texture_target m_target = texture_target::_2d;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+3
-2
@@ -5,8 +5,6 @@
|
||||
namespace cbt::opengl {
|
||||
|
||||
class vao {
|
||||
GLuint m_id = 0;
|
||||
|
||||
public:
|
||||
vao();
|
||||
~vao();
|
||||
@@ -21,6 +19,9 @@ public:
|
||||
auto unbind() const -> void;
|
||||
auto id() const -> GLuint;
|
||||
auto valid() const -> bool;
|
||||
|
||||
private:
|
||||
GLuint m_id = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+7
-6
@@ -11,6 +11,13 @@
|
||||
namespace cbt::scenes {
|
||||
|
||||
class cube final : public scene {
|
||||
public:
|
||||
cube();
|
||||
auto init() -> bool override;
|
||||
auto update(float delta_time) -> void override;
|
||||
auto render() -> void override;
|
||||
|
||||
private:
|
||||
opengl::shader m_prog;
|
||||
opengl::buffer m_vbo;
|
||||
opengl::vao m_vao;
|
||||
@@ -23,12 +30,6 @@ class cube final : public scene {
|
||||
|
||||
auto build_mesh() -> void;
|
||||
auto build_shader() -> bool;
|
||||
|
||||
public:
|
||||
cube();
|
||||
auto init() -> bool override;
|
||||
auto update(float delta_time) -> void override;
|
||||
auto render() -> void override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user