Engine: Run clang-format
This commit is contained in:
@@ -108,6 +108,6 @@ inline void __crash()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|
||||||
// https://github.com/scottt/debugbreak
|
// https://github.com/scottt/debugbreak
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ namespace Inferno {
|
|||||||
// Dont allow manually setting instance during construction
|
// Dont allow manually setting instance during construction
|
||||||
LuaScriptComponent() {}
|
LuaScriptComponent() {}
|
||||||
LuaScriptComponent(const std::string& path)
|
LuaScriptComponent(const std::string& path)
|
||||||
: path(std::move(path)) {}
|
: path(std::move(path))
|
||||||
|
{
|
||||||
|
}
|
||||||
};
|
};
|
||||||
} // namespace Inferno
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ namespace Inferno {
|
|||||||
initialize = []() { return static_cast<NativeScript*>(new T()); };
|
initialize = []() { return static_cast<NativeScript*>(new T()); };
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroy() {
|
void destroy()
|
||||||
|
{
|
||||||
VERIFY(instance, "Attempting to destroy an uninitialized NativeScript");
|
VERIFY(instance, "Attempting to destroy an uninitialized NativeScript");
|
||||||
delete instance;
|
delete instance;
|
||||||
instance = nullptr;
|
instance = nullptr;
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ namespace Inferno {
|
|||||||
|
|
||||||
TagComponent() = default;
|
TagComponent() = default;
|
||||||
TagComponent(const std::string& tag)
|
TagComponent(const std::string& tag)
|
||||||
: tag(std::move(tag)) {}
|
: tag(std::move(tag))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
operator const std::string&() const { return tag; }
|
operator const std::string&() const { return tag; }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,7 +18,13 @@ namespace Inferno {
|
|||||||
TextAreaComponent() {}
|
TextAreaComponent() {}
|
||||||
TextAreaComponent(const std::string& content, const std::string& font,
|
TextAreaComponent(const std::string& content, const std::string& font,
|
||||||
uint32_t fontSize, uint32_t width, uint32_t lines)
|
uint32_t fontSize, uint32_t width, uint32_t lines)
|
||||||
: content(std::move(content)), font(std::move(font)), fontSize(fontSize), width(width), lines(lines) {}
|
: content(std::move(content))
|
||||||
|
, font(std::move(font))
|
||||||
|
, fontSize(fontSize)
|
||||||
|
, width(width)
|
||||||
|
, lines(lines)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
// booleans?
|
// booleans?
|
||||||
// glm::vec4 outlineColor { 1.0f, 1.0f, 1.0f, 1.0f };
|
// glm::vec4 outlineColor { 1.0f, 1.0f, 1.0f, 1.0f };
|
||||||
|
|||||||
@@ -44,4 +44,4 @@ namespace Inferno {
|
|||||||
<< value.scale << " s";
|
<< value.scale << " s";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -14,8 +14,11 @@ namespace Inferno {
|
|||||||
|
|
||||||
class WindowResizeEvent : public Event {
|
class WindowResizeEvent : public Event {
|
||||||
public:
|
public:
|
||||||
WindowResizeEvent(int width, int height) :
|
WindowResizeEvent(int width, int height)
|
||||||
m_width(width), m_height(height) {}
|
: m_width(width)
|
||||||
|
, m_height(height)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ namespace Inferno {
|
|||||||
EVENT_CLASS_CATEGORY(InputEventCategory | JoystickEventCatergory)
|
EVENT_CLASS_CATEGORY(InputEventCategory | JoystickEventCatergory)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
JoystickEvent(int id) :
|
JoystickEvent(int id)
|
||||||
m_id(id) {}
|
: m_id(id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_id;
|
int m_id;
|
||||||
@@ -22,8 +24,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class JoystickConnectedEvent : public JoystickEvent {
|
class JoystickConnectedEvent : public JoystickEvent {
|
||||||
public:
|
public:
|
||||||
JoystickConnectedEvent(int id) :
|
JoystickConnectedEvent(int id)
|
||||||
JoystickEvent(id) {}
|
: JoystickEvent(id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -37,8 +41,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class JoystickDisconnectedEvent : public JoystickEvent {
|
class JoystickDisconnectedEvent : public JoystickEvent {
|
||||||
public:
|
public:
|
||||||
JoystickDisconnectedEvent(int id) :
|
JoystickDisconnectedEvent(int id)
|
||||||
JoystickEvent(id) {}
|
: JoystickEvent(id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ namespace Inferno {
|
|||||||
EVENT_CLASS_CATEGORY(InputEventCategory | KeyEventCategory)
|
EVENT_CLASS_CATEGORY(InputEventCategory | KeyEventCategory)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
KeyEvent(int key) :
|
KeyEvent(int key)
|
||||||
m_key(key) {}
|
: m_key(key)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_key;
|
int m_key;
|
||||||
@@ -22,8 +24,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class KeyPressEvent : public KeyEvent {
|
class KeyPressEvent : public KeyEvent {
|
||||||
public:
|
public:
|
||||||
KeyPressEvent(int key) :
|
KeyPressEvent(int key)
|
||||||
KeyEvent(key) {}
|
: KeyEvent(key)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -37,8 +41,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class KeyReleaseEvent : public KeyEvent {
|
class KeyReleaseEvent : public KeyEvent {
|
||||||
public:
|
public:
|
||||||
KeyReleaseEvent(int key) :
|
KeyReleaseEvent(int key)
|
||||||
KeyEvent(key) {}
|
: KeyEvent(key)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -52,8 +58,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class KeyRepeatEvent : public KeyEvent {
|
class KeyRepeatEvent : public KeyEvent {
|
||||||
public:
|
public:
|
||||||
KeyRepeatEvent(int key) :
|
KeyRepeatEvent(int key)
|
||||||
KeyEvent(key) {}
|
: KeyEvent(key)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ namespace Inferno {
|
|||||||
EVENT_CLASS_CATEGORY(InputEventCategory | MouseEventCategory | MouseButtonEventCategory)
|
EVENT_CLASS_CATEGORY(InputEventCategory | MouseEventCategory | MouseButtonEventCategory)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MouseButtonEvent(int button) :
|
MouseButtonEvent(int button)
|
||||||
m_button(button) {}
|
: m_button(button)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_button;
|
int m_button;
|
||||||
@@ -22,8 +24,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class MouseButtonPressEvent : public MouseButtonEvent {
|
class MouseButtonPressEvent : public MouseButtonEvent {
|
||||||
public:
|
public:
|
||||||
MouseButtonPressEvent(int button) :
|
MouseButtonPressEvent(int button)
|
||||||
MouseButtonEvent(button) {}
|
: MouseButtonEvent(button)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -37,8 +41,10 @@ namespace Inferno {
|
|||||||
|
|
||||||
class MouseButtonReleaseEvent : public MouseButtonEvent {
|
class MouseButtonReleaseEvent : public MouseButtonEvent {
|
||||||
public:
|
public:
|
||||||
MouseButtonReleaseEvent(int button) :
|
MouseButtonReleaseEvent(int button)
|
||||||
MouseButtonEvent(button) {}
|
: MouseButtonEvent(button)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -52,8 +58,11 @@ namespace Inferno {
|
|||||||
|
|
||||||
class MousePositionEvent : public Event {
|
class MousePositionEvent : public Event {
|
||||||
public:
|
public:
|
||||||
MousePositionEvent(float xPos, float yPos) :
|
MousePositionEvent(float xPos, float yPos)
|
||||||
m_xPos(xPos), m_yPos(yPos) {}
|
: m_xPos(xPos)
|
||||||
|
, m_yPos(yPos)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
@@ -77,8 +86,11 @@ namespace Inferno {
|
|||||||
|
|
||||||
class MouseScrollEvent : public Event {
|
class MouseScrollEvent : public Event {
|
||||||
public:
|
public:
|
||||||
MouseScrollEvent(float xOffset, float yOffset) :
|
MouseScrollEvent(float xOffset, float yOffset)
|
||||||
m_xOffset(xOffset), m_yOffset(yOffset) {}
|
: m_xOffset(xOffset)
|
||||||
|
, m_yOffset(yOffset)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual std::string toString() const override
|
virtual std::string toString() const override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -89,4 +89,4 @@ namespace Inferno {
|
|||||||
return glfwGetKeyScancode(key);
|
return glfwGetKeyScancode(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
+21
-5
@@ -85,13 +85,27 @@ namespace Inferno {
|
|||||||
class DebugLogStream final : public BufferedLogStream {
|
class DebugLogStream final : public BufferedLogStream {
|
||||||
public:
|
public:
|
||||||
DebugLogStream()
|
DebugLogStream()
|
||||||
: m_newline(true), m_type(Log::None) {}
|
: m_newline(true)
|
||||||
|
, m_type(Log::None)
|
||||||
|
{
|
||||||
|
}
|
||||||
DebugLogStream(bool newline)
|
DebugLogStream(bool newline)
|
||||||
: m_newline(newline), m_type(Log::None) {}
|
: m_newline(newline)
|
||||||
|
, m_type(Log::None)
|
||||||
|
{
|
||||||
|
}
|
||||||
DebugLogStream(Log type)
|
DebugLogStream(Log type)
|
||||||
: m_newline(true), m_type(type) { color(); }
|
: m_newline(true)
|
||||||
|
, m_type(type)
|
||||||
|
{
|
||||||
|
color();
|
||||||
|
}
|
||||||
DebugLogStream(Log type, bool newline)
|
DebugLogStream(Log type, bool newline)
|
||||||
: m_newline(newline), m_type(type) { color(); }
|
: m_newline(newline)
|
||||||
|
, m_type(type)
|
||||||
|
{
|
||||||
|
color();
|
||||||
|
}
|
||||||
virtual ~DebugLogStream() override;
|
virtual ~DebugLogStream() override;
|
||||||
|
|
||||||
void color() const;
|
void color() const;
|
||||||
@@ -106,7 +120,9 @@ namespace Inferno {
|
|||||||
class StringLogStream final : public BufferedLogStream {
|
class StringLogStream final : public BufferedLogStream {
|
||||||
public:
|
public:
|
||||||
StringLogStream(std::string* fill)
|
StringLogStream(std::string* fill)
|
||||||
: m_fill(fill) {}
|
: m_fill(fill)
|
||||||
|
{
|
||||||
|
}
|
||||||
virtual ~StringLogStream() override;
|
virtual ~StringLogStream() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
+170
-89
@@ -1,19 +1,19 @@
|
|||||||
#include "glad/glad.h"
|
#include "glad/glad.h"
|
||||||
|
|
||||||
#include "ruc/meta/assert.h"
|
|
||||||
#include "inferno/core.h"
|
#include "inferno/core.h"
|
||||||
#include "inferno/io/log.h"
|
#include "inferno/io/log.h"
|
||||||
#include "inferno/render/buffer.h"
|
#include "inferno/render/buffer.h"
|
||||||
|
#include "ruc/meta/assert.h"
|
||||||
|
|
||||||
namespace Inferno {
|
namespace Inferno {
|
||||||
|
|
||||||
// -----------------------------------------
|
// -----------------------------------------
|
||||||
|
|
||||||
BufferElement::BufferElement(BufferElementType type, std::string name, bool normalized) :
|
BufferElement::BufferElement(BufferElementType type, std::string name, bool normalized)
|
||||||
m_type(type),
|
: m_type(type)
|
||||||
m_name(name),
|
, m_name(name)
|
||||||
m_size(BufferElement::getTypeSize(type)),
|
, m_size(BufferElement::getTypeSize(type))
|
||||||
m_normalized(normalized)
|
, m_normalized(normalized)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,33 +35,60 @@ namespace Inferno {
|
|||||||
uint32_t BufferElement::getTypeSize(const BufferElementType type)
|
uint32_t BufferElement::getTypeSize(const BufferElementType type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case BufferElementType::None: return 0;
|
case BufferElementType::None:
|
||||||
case BufferElementType::Bool: return sizeof(bool);
|
return 0;
|
||||||
case BufferElementType::Bool2: return sizeof(bool) * 2;
|
case BufferElementType::Bool:
|
||||||
case BufferElementType::Bool3: return sizeof(bool) * 3;
|
return sizeof(bool);
|
||||||
case BufferElementType::Bool4: return sizeof(bool) * 4;
|
case BufferElementType::Bool2:
|
||||||
case BufferElementType::Int: return sizeof(int32_t);
|
return sizeof(bool) * 2;
|
||||||
case BufferElementType::Int2: return sizeof(int32_t) * 2;
|
case BufferElementType::Bool3:
|
||||||
case BufferElementType::Int3: return sizeof(int32_t) * 3;
|
return sizeof(bool) * 3;
|
||||||
case BufferElementType::Int4: return sizeof(int32_t) * 4;
|
case BufferElementType::Bool4:
|
||||||
case BufferElementType::Uint: return sizeof(uint32_t);
|
return sizeof(bool) * 4;
|
||||||
case BufferElementType::Uint2: return sizeof(uint32_t) * 2;
|
case BufferElementType::Int:
|
||||||
case BufferElementType::Uint3: return sizeof(uint32_t) * 3;
|
return sizeof(int32_t);
|
||||||
case BufferElementType::Uint4: return sizeof(uint32_t) * 4;
|
case BufferElementType::Int2:
|
||||||
case BufferElementType::Float: return sizeof(float);
|
return sizeof(int32_t) * 2;
|
||||||
case BufferElementType::Vec2: return sizeof(float) * 2;
|
case BufferElementType::Int3:
|
||||||
case BufferElementType::Vec3: return sizeof(float) * 3;
|
return sizeof(int32_t) * 3;
|
||||||
case BufferElementType::Vec4: return sizeof(float) * 4;
|
case BufferElementType::Int4:
|
||||||
case BufferElementType::Double: return sizeof(double);
|
return sizeof(int32_t) * 4;
|
||||||
case BufferElementType::Double2: return sizeof(double);
|
case BufferElementType::Uint:
|
||||||
case BufferElementType::Double3: return sizeof(double);
|
return sizeof(uint32_t);
|
||||||
case BufferElementType::Double4: return sizeof(double);
|
case BufferElementType::Uint2:
|
||||||
case BufferElementType::Mat2: return sizeof(float) * 2 * 2;
|
return sizeof(uint32_t) * 2;
|
||||||
case BufferElementType::Mat3: return sizeof(float) * 3 * 3;
|
case BufferElementType::Uint3:
|
||||||
case BufferElementType::Mat4: return sizeof(float) * 4 * 4;
|
return sizeof(uint32_t) * 3;
|
||||||
case BufferElementType::DoubleMat2: return sizeof(double) * 2 * 2;
|
case BufferElementType::Uint4:
|
||||||
case BufferElementType::DoubleMat3: return sizeof(double) * 3 * 3;
|
return sizeof(uint32_t) * 4;
|
||||||
case BufferElementType::DoubleMat4: return sizeof(double) * 4 * 4;
|
case BufferElementType::Float:
|
||||||
|
return sizeof(float);
|
||||||
|
case BufferElementType::Vec2:
|
||||||
|
return sizeof(float) * 2;
|
||||||
|
case BufferElementType::Vec3:
|
||||||
|
return sizeof(float) * 3;
|
||||||
|
case BufferElementType::Vec4:
|
||||||
|
return sizeof(float) * 4;
|
||||||
|
case BufferElementType::Double:
|
||||||
|
return sizeof(double);
|
||||||
|
case BufferElementType::Double2:
|
||||||
|
return sizeof(double);
|
||||||
|
case BufferElementType::Double3:
|
||||||
|
return sizeof(double);
|
||||||
|
case BufferElementType::Double4:
|
||||||
|
return sizeof(double);
|
||||||
|
case BufferElementType::Mat2:
|
||||||
|
return sizeof(float) * 2 * 2;
|
||||||
|
case BufferElementType::Mat3:
|
||||||
|
return sizeof(float) * 3 * 3;
|
||||||
|
case BufferElementType::Mat4:
|
||||||
|
return sizeof(float) * 4 * 4;
|
||||||
|
case BufferElementType::DoubleMat2:
|
||||||
|
return sizeof(double) * 2 * 2;
|
||||||
|
case BufferElementType::DoubleMat3:
|
||||||
|
return sizeof(double) * 3 * 3;
|
||||||
|
case BufferElementType::DoubleMat4:
|
||||||
|
return sizeof(double) * 4 * 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
VERIFY(false, "BufferElement unknown BufferElementType size!");
|
VERIFY(false, "BufferElement unknown BufferElementType size!");
|
||||||
@@ -71,33 +98,60 @@ namespace Inferno {
|
|||||||
uint32_t BufferElement::getTypeCount(const BufferElementType type)
|
uint32_t BufferElement::getTypeCount(const BufferElementType type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case BufferElementType::None: return 0;
|
case BufferElementType::None:
|
||||||
case BufferElementType::Bool: return 1;
|
return 0;
|
||||||
case BufferElementType::Bool2: return 2;
|
case BufferElementType::Bool:
|
||||||
case BufferElementType::Bool3: return 3;
|
return 1;
|
||||||
case BufferElementType::Bool4: return 4;
|
case BufferElementType::Bool2:
|
||||||
case BufferElementType::Int: return 1;
|
return 2;
|
||||||
case BufferElementType::Int2: return 2;
|
case BufferElementType::Bool3:
|
||||||
case BufferElementType::Int3: return 3;
|
return 3;
|
||||||
case BufferElementType::Int4: return 4;
|
case BufferElementType::Bool4:
|
||||||
case BufferElementType::Uint: return 1;
|
return 4;
|
||||||
case BufferElementType::Uint2: return 2;
|
case BufferElementType::Int:
|
||||||
case BufferElementType::Uint3: return 3;
|
return 1;
|
||||||
case BufferElementType::Uint4: return 4;
|
case BufferElementType::Int2:
|
||||||
case BufferElementType::Float: return 1;
|
return 2;
|
||||||
case BufferElementType::Vec2: return 2;
|
case BufferElementType::Int3:
|
||||||
case BufferElementType::Vec3: return 3;
|
return 3;
|
||||||
case BufferElementType::Vec4: return 4;
|
case BufferElementType::Int4:
|
||||||
case BufferElementType::Double: return 1;
|
return 4;
|
||||||
case BufferElementType::Double2: return 2;
|
case BufferElementType::Uint:
|
||||||
case BufferElementType::Double3: return 3;
|
return 1;
|
||||||
case BufferElementType::Double4: return 4;
|
case BufferElementType::Uint2:
|
||||||
case BufferElementType::Mat2: return 2 * 2;
|
return 2;
|
||||||
case BufferElementType::Mat3: return 3 * 3;
|
case BufferElementType::Uint3:
|
||||||
case BufferElementType::Mat4: return 4 * 4;
|
return 3;
|
||||||
case BufferElementType::DoubleMat2: return 2 * 2;
|
case BufferElementType::Uint4:
|
||||||
case BufferElementType::DoubleMat3: return 3 * 3;
|
return 4;
|
||||||
case BufferElementType::DoubleMat4: return 4 * 4;
|
case BufferElementType::Float:
|
||||||
|
return 1;
|
||||||
|
case BufferElementType::Vec2:
|
||||||
|
return 2;
|
||||||
|
case BufferElementType::Vec3:
|
||||||
|
return 3;
|
||||||
|
case BufferElementType::Vec4:
|
||||||
|
return 4;
|
||||||
|
case BufferElementType::Double:
|
||||||
|
return 1;
|
||||||
|
case BufferElementType::Double2:
|
||||||
|
return 2;
|
||||||
|
case BufferElementType::Double3:
|
||||||
|
return 3;
|
||||||
|
case BufferElementType::Double4:
|
||||||
|
return 4;
|
||||||
|
case BufferElementType::Mat2:
|
||||||
|
return 2 * 2;
|
||||||
|
case BufferElementType::Mat3:
|
||||||
|
return 3 * 3;
|
||||||
|
case BufferElementType::Mat4:
|
||||||
|
return 4 * 4;
|
||||||
|
case BufferElementType::DoubleMat2:
|
||||||
|
return 2 * 2;
|
||||||
|
case BufferElementType::DoubleMat3:
|
||||||
|
return 3 * 3;
|
||||||
|
case BufferElementType::DoubleMat4:
|
||||||
|
return 4 * 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
VERIFY(false, "BufferElement unknown BufferElementType count!");
|
VERIFY(false, "BufferElement unknown BufferElementType count!");
|
||||||
@@ -107,33 +161,60 @@ namespace Inferno {
|
|||||||
uint32_t BufferElement::getTypeGL(const BufferElementType type)
|
uint32_t BufferElement::getTypeGL(const BufferElementType type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case BufferElementType::None: return GL_NONE;
|
case BufferElementType::None:
|
||||||
case BufferElementType::Bool: return GL_BOOL;
|
return GL_NONE;
|
||||||
case BufferElementType::Bool2: return GL_BOOL;
|
case BufferElementType::Bool:
|
||||||
case BufferElementType::Bool3: return GL_BOOL;
|
return GL_BOOL;
|
||||||
case BufferElementType::Bool4: return GL_BOOL;
|
case BufferElementType::Bool2:
|
||||||
case BufferElementType::Int: return GL_INT;
|
return GL_BOOL;
|
||||||
case BufferElementType::Int2: return GL_INT;
|
case BufferElementType::Bool3:
|
||||||
case BufferElementType::Int3: return GL_INT;
|
return GL_BOOL;
|
||||||
case BufferElementType::Int4: return GL_INT;
|
case BufferElementType::Bool4:
|
||||||
case BufferElementType::Uint: return GL_UNSIGNED_INT;
|
return GL_BOOL;
|
||||||
case BufferElementType::Uint2: return GL_UNSIGNED_INT;
|
case BufferElementType::Int:
|
||||||
case BufferElementType::Uint3: return GL_UNSIGNED_INT;
|
return GL_INT;
|
||||||
case BufferElementType::Uint4: return GL_UNSIGNED_INT;
|
case BufferElementType::Int2:
|
||||||
case BufferElementType::Float: return GL_FLOAT;
|
return GL_INT;
|
||||||
case BufferElementType::Vec2: return GL_FLOAT;
|
case BufferElementType::Int3:
|
||||||
case BufferElementType::Vec3: return GL_FLOAT;
|
return GL_INT;
|
||||||
case BufferElementType::Vec4: return GL_FLOAT;
|
case BufferElementType::Int4:
|
||||||
case BufferElementType::Double: return GL_DOUBLE;
|
return GL_INT;
|
||||||
case BufferElementType::Double2: return GL_DOUBLE;
|
case BufferElementType::Uint:
|
||||||
case BufferElementType::Double3: return GL_DOUBLE;
|
return GL_UNSIGNED_INT;
|
||||||
case BufferElementType::Double4: return GL_DOUBLE;
|
case BufferElementType::Uint2:
|
||||||
case BufferElementType::Mat2: return GL_FLOAT;
|
return GL_UNSIGNED_INT;
|
||||||
case BufferElementType::Mat3: return GL_FLOAT;
|
case BufferElementType::Uint3:
|
||||||
case BufferElementType::Mat4: return GL_FLOAT;
|
return GL_UNSIGNED_INT;
|
||||||
case BufferElementType::DoubleMat2: return GL_DOUBLE;
|
case BufferElementType::Uint4:
|
||||||
case BufferElementType::DoubleMat3: return GL_DOUBLE;
|
return GL_UNSIGNED_INT;
|
||||||
case BufferElementType::DoubleMat4: return GL_DOUBLE;
|
case BufferElementType::Float:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Vec2:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Vec3:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Vec4:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Double:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::Double2:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::Double3:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::Double4:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::Mat2:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Mat3:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::Mat4:
|
||||||
|
return GL_FLOAT;
|
||||||
|
case BufferElementType::DoubleMat2:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::DoubleMat3:
|
||||||
|
return GL_DOUBLE;
|
||||||
|
case BufferElementType::DoubleMat4:
|
||||||
|
return GL_DOUBLE;
|
||||||
};
|
};
|
||||||
|
|
||||||
VERIFY(false, "BufferElement unknown BufferElementType GL!");
|
VERIFY(false, "BufferElement unknown BufferElementType GL!");
|
||||||
@@ -208,8 +289,8 @@ namespace Inferno {
|
|||||||
|
|
||||||
// -----------------------------------------
|
// -----------------------------------------
|
||||||
|
|
||||||
IndexBuffer::IndexBuffer(uint32_t* indices, size_t size) :
|
IndexBuffer::IndexBuffer(uint32_t* indices, size_t size)
|
||||||
m_count(size / sizeof(uint32_t))
|
: m_count(size / sizeof(uint32_t))
|
||||||
{
|
{
|
||||||
glCreateBuffers(1, &m_id);
|
glCreateBuffers(1, &m_id);
|
||||||
bind();
|
bind();
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
namespace Inferno {
|
namespace Inferno {
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
// https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)
|
// https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)
|
||||||
enum class BufferElementType {
|
enum class BufferElementType {
|
||||||
None = 0,
|
None = 0,
|
||||||
@@ -19,6 +20,7 @@ namespace Inferno {
|
|||||||
Mat2, Mat3, Mat4, // mat
|
Mat2, Mat3, Mat4, // mat
|
||||||
DoubleMat2, DoubleMat3, DoubleMat4, // dmat
|
DoubleMat2, DoubleMat3, DoubleMat4, // dmat
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
// -----------------------------------------
|
// -----------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "glad/glad.h"
|
|
||||||
#include "GLFW/glfw3.h"
|
#include "GLFW/glfw3.h"
|
||||||
|
#include "glad/glad.h"
|
||||||
#include "ruc/meta/assert.h"
|
#include "ruc/meta/assert.h"
|
||||||
|
|
||||||
#include "inferno/core.h"
|
#include "inferno/core.h"
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
namespace Inferno {
|
namespace Inferno {
|
||||||
|
|
||||||
Context::Context(GLFWwindow* window) :
|
Context::Context(GLFWwindow* window)
|
||||||
m_window(window)
|
: m_window(window)
|
||||||
{
|
{
|
||||||
VERIFY(window, "Context window is nullptr!");
|
VERIFY(window, "Context window is nullptr!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,7 @@ namespace Inferno {
|
|||||||
std::istringstream iss(font);
|
std::istringstream iss(font);
|
||||||
for (std::string line; std::getline(iss, line);) {
|
for (std::string line; std::getline(iss, line);) {
|
||||||
|
|
||||||
if (findAction(line).compare("info") != 0 &&
|
if (findAction(line).compare("info") != 0 && findAction(line).compare("char") != 0) {
|
||||||
findAction(line).compare("char") != 0) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,10 @@ namespace Inferno {
|
|||||||
}
|
}
|
||||||
|
|
||||||
constexpr glm::vec2 textureCoordinates[] = {
|
constexpr glm::vec2 textureCoordinates[] = {
|
||||||
{ 0.0f, 0.0f }, { 1.0f, 0.0f }, { 1.0f, 1.0f }, { 0.0f, 1.0f }
|
{ 0.0f, 0.0f },
|
||||||
|
{ 1.0f, 0.0f },
|
||||||
|
{ 1.0f, 1.0f },
|
||||||
|
{ 0.0f, 1.0f }
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t textureUnitIndex = addTextureUnit(texture);
|
uint32_t textureUnitIndex = addTextureUnit(texture);
|
||||||
@@ -439,4 +442,4 @@ namespace Inferno {
|
|||||||
startBatch();
|
startBatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -13,8 +13,8 @@
|
|||||||
namespace Inferno {
|
namespace Inferno {
|
||||||
|
|
||||||
Shader::Shader(const std::string& name)
|
Shader::Shader(const std::string& name)
|
||||||
: m_name(std::move(name)),
|
: m_name(std::move(name))
|
||||||
m_id(0)
|
, m_id(0)
|
||||||
{
|
{
|
||||||
// Get file contents
|
// Get file contents
|
||||||
std::string vertexSrc = File::read(name + ".vert");
|
std::string vertexSrc = File::read(name + ".vert");
|
||||||
@@ -29,8 +29,10 @@ namespace Inferno {
|
|||||||
m_id = linkShader(vertexID, fragmentID);
|
m_id = linkShader(vertexID, fragmentID);
|
||||||
}
|
}
|
||||||
// Clear resources
|
// Clear resources
|
||||||
else if (vertexID > 0) glDeleteShader(vertexID);
|
else if (vertexID > 0)
|
||||||
else if (fragmentID > 0) glDeleteShader(fragmentID);
|
glDeleteShader(vertexID);
|
||||||
|
else if (fragmentID > 0)
|
||||||
|
glDeleteShader(fragmentID);
|
||||||
}
|
}
|
||||||
|
|
||||||
Shader::~Shader()
|
Shader::~Shader()
|
||||||
|
|||||||
@@ -73,8 +73,10 @@ namespace Inferno {
|
|||||||
m_camera->pitch += yOffset;
|
m_camera->pitch += yOffset;
|
||||||
|
|
||||||
// Prevent gimbal lock
|
// Prevent gimbal lock
|
||||||
if (m_camera->pitch > 89.0f) m_camera->pitch = 89.0f;
|
if (m_camera->pitch > 89.0f)
|
||||||
if (m_camera->pitch < -89.0f) m_camera->pitch = -89.0f;
|
m_camera->pitch = 89.0f;
|
||||||
|
if (m_camera->pitch < -89.0f)
|
||||||
|
m_camera->pitch = -89.0f;
|
||||||
|
|
||||||
// Update camera rotation, by calculating direction vector via yaw and pitch
|
// Update camera rotation, by calculating direction vector via yaw and pitch
|
||||||
|
|
||||||
@@ -119,4 +121,4 @@ namespace Inferno {
|
|||||||
transform->translate.y -= cameraSpeed;
|
transform->translate.y -= cameraSpeed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
#include "glm/ext/matrix_transform.hpp" // glm::radians
|
||||||
#include "glm/ext/vector_float2.hpp" // glm::vec2
|
#include "glm/ext/vector_float2.hpp" // glm::vec2
|
||||||
#include "glm/ext/vector_float3.hpp" // glm::vec3
|
#include "glm/ext/vector_float3.hpp" // glm::vec3
|
||||||
#include "glm/ext/vector_float4.hpp" // glm::vec4
|
#include "glm/ext/vector_float4.hpp" // glm::vec4
|
||||||
#include "glm/ext/matrix_transform.hpp" // glm::radians
|
|
||||||
|
|
||||||
#include "inferno/component/cameracomponent.h"
|
#include "inferno/component/cameracomponent.h"
|
||||||
#include "inferno/component/spritecomponent.h"
|
#include "inferno/component/spritecomponent.h"
|
||||||
@@ -34,8 +34,7 @@ namespace Inferno {
|
|||||||
"__sub", subtraction<glm::vec2, float>(),
|
"__sub", subtraction<glm::vec2, float>(),
|
||||||
"__mul", multiplication<glm::vec2, float>(),
|
"__mul", multiplication<glm::vec2, float>(),
|
||||||
"__div", division<glm::vec2, float>(),
|
"__div", division<glm::vec2, float>(),
|
||||||
"__tostring", string<glm::vec2>
|
"__tostring", string<glm::vec2>);
|
||||||
);
|
|
||||||
|
|
||||||
auto vec3 = glm.new_usertype<glm::vec3>(
|
auto vec3 = glm.new_usertype<glm::vec3>(
|
||||||
"vec3",
|
"vec3",
|
||||||
@@ -47,8 +46,7 @@ namespace Inferno {
|
|||||||
"__sub", subtraction<glm::vec3, float>(),
|
"__sub", subtraction<glm::vec3, float>(),
|
||||||
"__mul", multiplication<glm::vec3, float>(),
|
"__mul", multiplication<glm::vec3, float>(),
|
||||||
"__div", division<glm::vec3, float>(),
|
"__div", division<glm::vec3, float>(),
|
||||||
"__tostring", string<glm::vec3>
|
"__tostring", string<glm::vec3>);
|
||||||
);
|
|
||||||
|
|
||||||
auto vec4 = glm.new_usertype<glm::vec4>(
|
auto vec4 = glm.new_usertype<glm::vec4>(
|
||||||
"vec4",
|
"vec4",
|
||||||
@@ -60,21 +58,18 @@ namespace Inferno {
|
|||||||
"__sub", subtraction<glm::vec4, float>(),
|
"__sub", subtraction<glm::vec4, float>(),
|
||||||
"__mul", multiplication<glm::vec4, float>(),
|
"__mul", multiplication<glm::vec4, float>(),
|
||||||
"__div", division<glm::vec4, float>(),
|
"__div", division<glm::vec4, float>(),
|
||||||
"__tostring", string<glm::vec4>
|
"__tostring", string<glm::vec4>);
|
||||||
);
|
|
||||||
|
|
||||||
glm.set_function("radians", sol::overload(
|
glm.set_function("radians", sol::overload(
|
||||||
[](float v) { return glm::radians(v); },
|
[](float v) { return glm::radians(v); },
|
||||||
[](const glm::vec2& v) { return glm::radians(v); },
|
[](const glm::vec2& v) { return glm::radians(v); },
|
||||||
[](const glm::vec3& v) { return glm::radians(v); },
|
[](const glm::vec3& v) { return glm::radians(v); },
|
||||||
[](const glm::vec4& v) { return glm::radians(v); }
|
[](const glm::vec4& v) { return glm::radians(v); }));
|
||||||
));
|
|
||||||
|
|
||||||
glm.set_function("normalize", sol::overload(
|
glm.set_function("normalize", sol::overload(
|
||||||
[](const glm::vec2& v) { return glm::normalize(v); },
|
[](const glm::vec2& v) { return glm::normalize(v); },
|
||||||
[](const glm::vec3& v) { return glm::normalize(v); },
|
[](const glm::vec3& v) { return glm::normalize(v); },
|
||||||
[](const glm::vec4& v) { return glm::normalize(v); }
|
[](const glm::vec4& v) { return glm::normalize(v); }));
|
||||||
));
|
|
||||||
|
|
||||||
glm.set_function("cross", [](const glm::vec3& x, const glm::vec3& y) { return glm::cross(x, y); });
|
glm.set_function("cross", [](const glm::vec3& x, const glm::vec3& y) { return glm::cross(x, y); });
|
||||||
}
|
}
|
||||||
@@ -119,4 +114,4 @@ namespace Inferno {
|
|||||||
input["getXOffset"] = &Input::getXOffset;
|
input["getXOffset"] = &Input::getXOffset;
|
||||||
input["getYOffset"] = &Input::getYOffset;
|
input["getYOffset"] = &Input::getYOffset;
|
||||||
}
|
}
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ namespace Inferno {
|
|||||||
return sol::overload(
|
return sol::overload(
|
||||||
[](const T& lhs, const T& rhs) { return lhs + rhs; },
|
[](const T& lhs, const T& rhs) { return lhs + rhs; },
|
||||||
[](const T& lhs, const V& rhs) { return lhs + rhs; },
|
[](const T& lhs, const V& rhs) { return lhs + rhs; },
|
||||||
[](const V& lhs, const T& rhs) { return lhs + rhs; }
|
[](const V& lhs, const T& rhs) { return lhs + rhs; });
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename V>
|
template<typename T, typename V>
|
||||||
@@ -32,8 +31,7 @@ namespace Inferno {
|
|||||||
return sol::overload(
|
return sol::overload(
|
||||||
[](const T& lhs, const T& rhs) { return lhs - rhs; },
|
[](const T& lhs, const T& rhs) { return lhs - rhs; },
|
||||||
[](const T& lhs, const V& rhs) { return lhs - rhs; },
|
[](const T& lhs, const V& rhs) { return lhs - rhs; },
|
||||||
[](const V& lhs, const T& rhs) { return lhs - rhs; }
|
[](const V& lhs, const T& rhs) { return lhs - rhs; });
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename V>
|
template<typename T, typename V>
|
||||||
@@ -42,8 +40,7 @@ namespace Inferno {
|
|||||||
return sol::overload(
|
return sol::overload(
|
||||||
[](const T& lhs, const T& rhs) { return lhs * rhs; },
|
[](const T& lhs, const T& rhs) { return lhs * rhs; },
|
||||||
[](const T& lhs, const V& rhs) { return lhs * rhs; },
|
[](const T& lhs, const V& rhs) { return lhs * rhs; },
|
||||||
[](const V& lhs, const T& rhs) { return lhs * rhs; }
|
[](const V& lhs, const T& rhs) { return lhs * rhs; });
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename V>
|
template<typename T, typename V>
|
||||||
@@ -52,8 +49,7 @@ namespace Inferno {
|
|||||||
return sol::overload(
|
return sol::overload(
|
||||||
[](const T& lhs, const T& rhs) { return lhs / rhs; },
|
[](const T& lhs, const T& rhs) { return lhs / rhs; },
|
||||||
[](const T& lhs, const V& rhs) { return lhs / rhs; },
|
[](const T& lhs, const V& rhs) { return lhs / rhs; },
|
||||||
[](const V& lhs, const T& rhs) { return lhs / rhs; }
|
[](const V& lhs, const T& rhs) { return lhs / rhs; });
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|||||||
@@ -58,8 +58,7 @@ namespace Inferno {
|
|||||||
|
|
||||||
// World space -> View space: view matrix
|
// World space -> View space: view matrix
|
||||||
transform.transform = {
|
transform.transform = {
|
||||||
glm::translate(glm::mat4(1.0f), transform.translate) *
|
glm::translate(glm::mat4(1.0f), transform.translate) * glm::rotate(glm::mat4(1.0f), glm::radians(transform.rotate.z), camera.rotateAxis)
|
||||||
glm::rotate(glm::mat4(1.0f), glm::radians(transform.rotate.z), camera.rotateAxis)
|
|
||||||
};
|
};
|
||||||
transform.transform = { glm::inverse(transform.transform) };
|
transform.transform = { glm::inverse(transform.transform) };
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ namespace Inferno {
|
|||||||
return static_cast<float>(glfwGetTime());
|
return static_cast<float>(glfwGetTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
@@ -254,8 +254,9 @@ namespace Inferno {
|
|||||||
glfwSetWindowShouldClose(m_window, close ? GL_TRUE : GL_FALSE);
|
glfwSetWindowShouldClose(m_window, close ? GL_TRUE : GL_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Window::shouldClose() const {
|
bool Window::shouldClose() const
|
||||||
|
{
|
||||||
return glfwWindowShouldClose(m_window);
|
return glfwWindowShouldClose(m_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Inferno
|
||||||
|
|||||||
Reference in New Issue
Block a user