ci: add static_analysis #2
					 28 changed files with 213 additions and 85 deletions
				
			
		|  | @ -239,7 +239,6 @@ misc-header-include-cycle, | |||
| misc-definitions-in-headers, | ||||
| misc-coroutine-hostile-raii, | ||||
| misc-const-correctness, | ||||
| misc-confusable-identifiers, | ||||
| 
 | ||||
| hicpp-signed-bitwise, | ||||
| hicpp-no-assembler, | ||||
|  |  | |||
							
								
								
									
										25
									
								
								.drone.yml
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								.drone.yml
									
										
									
									
									
								
							|  | @ -1,6 +1,9 @@ | |||
| kind: pipeline | ||||
| type: docker | ||||
| name: clang format | ||||
| clone: | ||||
|   recursive: true | ||||
|   submodule_update_remote: true | ||||
| 
 | ||||
| trigger: | ||||
|   branch: | ||||
|  | @ -24,3 +27,25 @@ steps: | |||
|       done | ||||
| 
 | ||||
|       echo "✅ All files are properly formatted" | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| kind: pipeline | ||||
| type: docker | ||||
| name: static analysis | ||||
| clone: | ||||
|   recursive: true | ||||
|   submodule_update_remote: true | ||||
| 
 | ||||
| trigger: | ||||
|   branch: | ||||
|   - main | ||||
| 
 | ||||
| steps: | ||||
| - name: static_analysis | ||||
|   image: static_analysis:latest | ||||
|   pull: if-not-exists | ||||
|   privileged: true | ||||
|   commands: | ||||
|     - git submodule update --init --recursive | ||||
|     - conan build . -s build_type=Release -o enable_static_analysis=True --build=missing | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| cmake_minimum_required(VERSION 4.0) | ||||
| cmake_minimum_required(VERSION 3.14) | ||||
| project(Light) | ||||
| set(CMAKE_CXX_STANDARD 23) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										3
									
								
								external/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								external/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -1,9 +1,6 @@ | |||
| # GLAD # | ||||
| add_subdirectory(./glad) | ||||
| 
 | ||||
| # IMGUI # | ||||
| cmake_minimum_required(VERSION 3.14) | ||||
| 
 | ||||
| set(MIRROR_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../modules/mirror/) | ||||
| set(DEPENDENCIES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/) | ||||
| 
 | ||||
|  |  | |||
|  | @ -52,7 +52,7 @@ Application::Application(): m_window(nullptr) | |||
| 
 | ||||
| 	m_renderer = Renderer::create( | ||||
| 	    (GLFWwindow *)m_window->get_handle(), | ||||
| 	    m_graphics_context->get_shared_context(), | ||||
| 	    lt::GraphicsContext::get_shared_context(), | ||||
| 	    Renderer::CreateInfo { | ||||
| 	        .quad_renderer_shader = AssetManager::get_shader("LT_ENGINE_RESOURCES_QUAD_SHADER"), | ||||
| 	        .texture_renderer_shader = AssetManager::get_shader( | ||||
|  | @ -68,7 +68,7 @@ Application::Application(): m_window(nullptr) | |||
| 
 | ||||
| 	m_user_interface = UserInterface::create( | ||||
| 	    (GLFWwindow *)m_window->get_handle(), | ||||
| 	    m_graphics_context->get_shared_context() | ||||
| 	    lt::GraphicsContext::get_shared_context() | ||||
| 	); | ||||
| 
 | ||||
| 	m_layer_stack = create_scope<LayerStack>(); | ||||
|  |  | |||
|  | @ -131,7 +131,7 @@ public: | |||
| 		return "TextLoader"; | ||||
| 	} | ||||
| 
 | ||||
| 	[[nodiscard]] auto load(std::filesystem::path file_path) const -> Assets::TextAsset::PackageData | ||||
| 	[[nodiscard]] auto load(const std::filesystem::path& file_path) const -> Assets::TextAsset::PackageData | ||||
| 	{ | ||||
| 		auto stream = std::ifstream { file_path, std::ios::binary }; | ||||
| 		if (!stream.good()) | ||||
|  |  | |||
|  | @ -35,19 +35,19 @@ public: | |||
| 
 | ||||
| 	void set_viewport_size(unsigned int width, unsigned int height); | ||||
| 
 | ||||
| 	void set_projection_type(ProjectionType projectionType); | ||||
| 	void set_projection_type(ProjectionType projection_type); | ||||
| 
 | ||||
| 	void set_orthographic_size(float size); | ||||
| 
 | ||||
| 	void set_orthographic_far_plane(float farPlane); | ||||
| 	void set_orthographic_far_plane(float far_plane); | ||||
| 
 | ||||
| 	void set_orthographic_near_plane(float nearPlane); | ||||
| 	void set_orthographic_near_plane(float near_plane); | ||||
| 
 | ||||
| 	void set_perspective_vertical_fov(float verticalFov); | ||||
| 	void set_perspective_vertical_fov(float vertical_fov); | ||||
| 
 | ||||
| 	void set_perspective_far_plane(float farPlane); | ||||
| 	void set_perspective_far_plane(float far_plane); | ||||
| 
 | ||||
| 	void set_perspective_near_plane(float nearPlane); | ||||
| 	void set_perspective_near_plane(float near_plane); | ||||
| 
 | ||||
| 	[[nodiscard]] auto get_orthographic_size() const -> float | ||||
| 	{ | ||||
|  |  | |||
|  | @ -24,9 +24,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(SetChar); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::SetChar; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | KeyboardEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | KeyboardEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const unsigned int m_character; | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| namespace lt { | ||||
| 
 | ||||
| enum class EventType | ||||
| enum class EventType : uint8_t | ||||
| { | ||||
| 	None = 0, | ||||
| 
 | ||||
|  | @ -24,7 +24,7 @@ enum class EventType | |||
| 	WindowGainFocus, | ||||
| }; | ||||
| 
 | ||||
| enum EventCategory | ||||
| enum EventCategory : uint8_t | ||||
| { | ||||
| 	None = 0, | ||||
| 
 | ||||
|  | @ -34,18 +34,6 @@ enum EventCategory | |||
| 	MouseEventCategory = bit(3), | ||||
| }; | ||||
| 
 | ||||
| #define event_type(type)                      \ | ||||
| 	EventType get_event_type() const override \ | ||||
| 	{                                         \ | ||||
| 		return ::lt::EventType::type;         \ | ||||
| 	} | ||||
| 
 | ||||
| #define event_category(eCategory)                                   \ | ||||
| 	inline bool has_category(EventCategory category) const override \ | ||||
| 	{                                                               \ | ||||
| 		return (eCategory) & category;                              \ | ||||
| 	} | ||||
| 
 | ||||
| class Event | ||||
| { | ||||
| public: | ||||
|  |  | |||
|  | @ -24,9 +24,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(KeyPressed); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::KeyPressed; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | KeyboardEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | KeyboardEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const int m_key; | ||||
|  | @ -51,9 +57,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(KeyRepeated); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::KeyRepeated; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | KeyboardEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | KeyboardEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const int m_key; | ||||
|  | @ -78,9 +90,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(KeyReleased); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::KeyReleased; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | KeyboardEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | KeyboardEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const int m_key; | ||||
|  |  | |||
|  | @ -35,9 +35,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(MouseMoved); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::MouseMoved; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | MouseEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | MouseEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const glm::vec2 m_position; | ||||
|  | @ -62,9 +68,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WheelScrolled); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WheelScrolled; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | MouseEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | MouseEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const float m_offset; | ||||
|  | @ -89,9 +101,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(ButtonPressed); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::ButtonPressed; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | MouseEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | MouseEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const int m_button; | ||||
|  | @ -116,9 +134,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(ButtonReleased); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::ButtonReleased; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(InputEventCategory | MouseEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(InputEventCategory | MouseEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const int m_button; | ||||
|  |  | |||
|  | @ -14,9 +14,15 @@ public: | |||
| 		return "WindowClosedEvent"; | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WindowClosed); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WindowClosed; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(WindowEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(WindowEventCategory) & category; | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| class WindowMovedEvent: public Event | ||||
|  | @ -39,9 +45,15 @@ public: | |||
| 		; | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WindowMoved); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WindowMoved; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(WindowEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(WindowEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const glm::ivec2 m_position; | ||||
|  | @ -66,9 +78,15 @@ public: | |||
| 		return ss.str(); | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WindowResized); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WindowResized; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(WindowEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(WindowEventCategory) & category; | ||||
| 	} | ||||
| 
 | ||||
| private: | ||||
| 	const glm::uvec2 m_size; | ||||
|  | @ -82,9 +100,15 @@ public: | |||
| 		return "WindowLostFocus"; | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WindowLostFocus); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WindowLostFocus; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(WindowEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(WindowEventCategory) & category; | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| class WindowGainFocusEvent: public Event | ||||
|  | @ -95,9 +119,15 @@ public: | |||
| 		return "WindowGainFocus"; | ||||
| 	} | ||||
| 
 | ||||
| 	event_type(WindowGainFocus); | ||||
| 	[[nodiscard]] auto get_event_type() const -> EventType override | ||||
| 	{ | ||||
| 		return ::lt::EventType::WindowGainFocus; | ||||
| 	} | ||||
| 
 | ||||
| 	event_category(WindowEventCategory); | ||||
| 	[[nodiscard]] auto has_category(EventCategory category) const -> bool override | ||||
| 	{ | ||||
| 		return static_cast<uint8_t>(WindowEventCategory) & category; | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| } // namespace lt
 | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ namespace lt { | |||
| class glBlender: public Blender | ||||
| { | ||||
| public: | ||||
| 	virtual ~glBlender() = default; | ||||
| 	~glBlender() override = default; | ||||
| 	glBlender(); | ||||
| 
 | ||||
| 	void enable(BlendFactor srcFactor, BlendFactor dstFactor) override; | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ class glConstantBuffer: public ConstantBuffer | |||
| public: | ||||
| 	glConstantBuffer(ConstantBufferIndex index, unsigned int size); | ||||
| 
 | ||||
| 	virtual ~glConstantBuffer(); | ||||
| 	~glConstantBuffer() override; | ||||
| 
 | ||||
| 	void bind() override; | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ class glFramebuffer: public Framebuffer | |||
| public: | ||||
| 	glFramebuffer(const FramebufferSpecification &specification); | ||||
| 
 | ||||
| 	virtual ~glFramebuffer(); | ||||
| 	~glFramebuffer() override; | ||||
| 
 | ||||
| 	void bind_as_target(const glm::vec4 &clearColor) override; | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ class Shader; | |||
| class QuadRendererProgram: RendererProgram | ||||
| { | ||||
| public: | ||||
| 	virtual ~QuadRendererProgram() = default; | ||||
| 	~QuadRendererProgram() override = default; | ||||
| 	struct QuadVertexData | ||||
| 	{ | ||||
| 		glm::vec4 position; | ||||
|  | @ -25,7 +25,7 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	QuadRendererProgram( | ||||
| 	    unsigned int maxVertices, | ||||
| 	    unsigned int max_vertices, | ||||
| 	    const Ref<SharedContext> &shared_context, | ||||
| 	    Ref<Shader> shader | ||||
| 	); | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	TextureRendererProgram( | ||||
| 	    unsigned int maxVertices, | ||||
| 	    unsigned int max_vertices, | ||||
| 	    const Ref<SharedContext> &shared_context, | ||||
| 	    Ref<Shader> shader | ||||
| 	); | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ class SharedContext; | |||
| class TintedTextureRendererProgram: RendererProgram | ||||
| { | ||||
| public: | ||||
| 	virtual ~TintedTextureRendererProgram() = default; | ||||
| 	~TintedTextureRendererProgram() override = default; | ||||
| 	struct TintedTextureVertexData | ||||
| 	{ | ||||
| 		glm::vec4 position; | ||||
|  | @ -27,8 +27,8 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	TintedTextureRendererProgram( | ||||
| 	    unsigned int maxVertices, | ||||
| 	    const Ref<SharedContext> &sharedContext, | ||||
| 	    unsigned int max_vertices, | ||||
| 	    const Ref<SharedContext> &shared_context, | ||||
| 	    Ref<Shader> shader | ||||
| 	); | ||||
| 
 | ||||
|  |  | |||
|  | @ -42,8 +42,8 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	static auto create( | ||||
| 	    GLFWwindow *window_handle, | ||||
| 	    Ref<SharedContext> shared_context, | ||||
| 	    GLFWwindow *windowHandle, | ||||
| 	    Ref<SharedContext> sharedContext, | ||||
| 	    CreateInfo create_info | ||||
| 	) -> Scope<Renderer>; | ||||
| 
 | ||||
|  | @ -67,9 +67,13 @@ public: | |||
| 		s_context->draw_quad_impl(position, size, std::move(texture)); | ||||
| 	} | ||||
| 
 | ||||
| 	static void draw_quad(const glm::mat4 &transform, const glm::vec4 &tint, Ref<Texture> texture) | ||||
| 	static void draw_quad( | ||||
| 	    const glm::mat4 &transform, | ||||
| 	    const glm::vec4 &tint, | ||||
| 	    const Ref<Texture> &texture | ||||
| 	) | ||||
| 	{ | ||||
| 		s_context->draw_quad_impl(transform, tint, std::move(texture)); | ||||
| 		s_context->draw_quad_impl(transform, tint, texture); | ||||
| 	} | ||||
| 
 | ||||
| 	static void draw_quad(const glm::mat4 &transform, const glm::vec4 &tint) | ||||
|  | @ -77,9 +81,9 @@ public: | |||
| 		s_context->draw_quad_impl(transform, tint); | ||||
| 	} | ||||
| 
 | ||||
| 	static void draw_quad(const glm::mat4 &transform, Ref<Texture> texture) | ||||
| 	static void draw_quad(const glm::mat4 &transform, const Ref<Texture> &texture) | ||||
| 	{ | ||||
| 		s_context->draw_quad_impl(transform, std::move(texture)); | ||||
| 		s_context->draw_quad_impl(transform, texture); | ||||
| 	} | ||||
| 
 | ||||
| 	static void begin_scene( | ||||
|  | @ -123,7 +127,11 @@ private: | |||
| 
 | ||||
| 	bool m_should_clear_backbuffer { false }; | ||||
| 
 | ||||
| 	Renderer(GLFWwindow *windowHandle, Ref<SharedContext> sharedContext, CreateInfo create_info); | ||||
| 	Renderer( | ||||
| 	    GLFWwindow *window_handle, | ||||
| 	    const Ref<SharedContext> &shared_context, | ||||
| 	    CreateInfo create_info | ||||
| 	); | ||||
| 
 | ||||
| 	void draw_quad_impl( | ||||
| 	    const glm::vec3 &position, | ||||
|  |  | |||
|  | @ -25,8 +25,8 @@ public: | |||
| 	}; | ||||
| 
 | ||||
| 	static auto create( | ||||
| 	    Ref<Assets::TextAsset> vertex_asset, | ||||
| 	    Ref<Assets::TextAsset> pixel_asset, | ||||
| 	    const Ref<Assets::TextAsset>& vertex_asset, | ||||
| 	    const Ref<Assets::TextAsset>& pixel_asset, | ||||
| 	    const Ref<SharedContext> &shared_context | ||||
| 	) -> Ref<Shader>; | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ class Texture | |||
| { | ||||
| public: | ||||
| 	static Ref<Texture> create( | ||||
| 	    Ref<Assets::TextureAsset> asset, | ||||
| 	    const Ref<Assets::TextureAsset>& asset, | ||||
| 	    const Ref<SharedContext> &shared_context | ||||
| 	); | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ Renderer *Renderer::s_context = nullptr; | |||
| 
 | ||||
| Renderer::Renderer( | ||||
|     GLFWwindow *window_handle, | ||||
|     Ref<SharedContext> shared_context, | ||||
|     const Ref<SharedContext>& shared_context, | ||||
|     CreateInfo create_info | ||||
| ) | ||||
|     : m_quad_renderer( | ||||
|  |  | |||
|  | @ -12,8 +12,8 @@ | |||
| namespace lt { | ||||
| 
 | ||||
| /* static */ auto Shader::create( | ||||
|     Ref<Assets::TextAsset> vertex_asset, | ||||
|     Ref<Assets::TextAsset> pixel_asset, | ||||
|     const Ref<Assets::TextAsset>& vertex_asset, | ||||
|     const Ref<Assets::TextAsset>& pixel_asset, | ||||
|     const Ref<SharedContext> &shared_context | ||||
| ) -> Ref<Shader> | ||||
| { | ||||
|  |  | |||
|  | @ -12,8 +12,8 @@ | |||
| namespace lt { | ||||
| 
 | ||||
| /* static */ auto Texture::create( | ||||
|     Ref<Assets::TextureAsset> asset, | ||||
|     const Ref<SharedContext> &shared_context | ||||
|     const Ref<Assets::TextureAsset>& asset, | ||||
|     const Ref<SharedContext> & /*shared_context*/ | ||||
| ) -> Ref<Texture> | ||||
| { | ||||
| 	switch (GraphicsContext::get_graphics_api()) | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ class SharedContext; | |||
| class UserInterface | ||||
| { | ||||
| public: | ||||
| 	static auto create(GLFWwindow *window_handle, Ref<SharedContext> shared_context) | ||||
| 	static auto create(GLFWwindow *windowHandle, Ref<SharedContext> sharedContext) | ||||
| 	    -> Scope<UserInterface>; | ||||
| 
 | ||||
| 	static void dockspace_begin(); | ||||
|  | @ -25,7 +25,7 @@ public: | |||
| 
 | ||||
| 	virtual ~UserInterface() = default; | ||||
| 
 | ||||
| 	void init(GLFWwindow *window_handle, Ref<SharedContext> sharedContext); | ||||
| 	void init(GLFWwindow *windowHandle, Ref<SharedContext> sharedContext); | ||||
| 
 | ||||
| 	virtual void platform_implementation( | ||||
| 	    GLFWwindow *window_handle, | ||||
|  |  | |||
|  | @ -9,8 +9,7 @@ | |||
| namespace lt { | ||||
| 
 | ||||
| Window::~Window() | ||||
| { | ||||
| } | ||||
| = default; | ||||
| 
 | ||||
| auto Window::create(const std::function<void(Event &)> &callback) -> Scope<Window> | ||||
| { | ||||
|  | @ -18,7 +17,7 @@ auto Window::create(const std::function<void(Event &)> &callback) -> Scope<Windo | |||
| } | ||||
| 
 | ||||
| lWindow::lWindow(std::function<void(Event &)> callback) | ||||
|     : m_event_callback(std::move(std::move(callback))) | ||||
|     : m_handle(glfwCreateWindow(1u, 1u, "", nullptr, nullptr)), m_event_callback(std::move(std::move(callback))) | ||||
| { | ||||
| 	// init glfw
 | ||||
| 	ensure(glfwInit(), "lWindow::lWindow: failed to initialize 'glfw'"); | ||||
|  | @ -29,7 +28,7 @@ lWindow::lWindow(std::function<void(Event &)> callback) | |||
| 	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); | ||||
| 	glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); | ||||
| 
 | ||||
| 	m_handle = glfwCreateWindow(1u, 1u, "", nullptr, nullptr); | ||||
| 	 | ||||
| 	ensure(m_handle, "lWindow::lWindow: failed to create 'GLFWwindow'"); | ||||
| 
 | ||||
| 	glfwSetWindowUserPointer(m_handle, &m_event_callback); | ||||
|  |  | |||
|  | @ -6,5 +6,4 @@ RUN apk add --no-cache \ | |||
|     findutils \ | ||||
|     git \ | ||||
|     libc6-compat \ | ||||
|     tar \ | ||||
|     clang-extra-tools  | ||||
|  |  | |||
							
								
								
									
										35
									
								
								tools/ci/images/static_analysis/Dockerfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tools/ci/images/static_analysis/Dockerfile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | |||
| FROM alpine:latest | ||||
| 
 | ||||
| RUN apk add --no-cache \ | ||||
|     bash \ | ||||
|     clang \ | ||||
|     llvm \ | ||||
|     cmake \ | ||||
|     git \ | ||||
|     make \ | ||||
|     g++ \ | ||||
|     python3 \ | ||||
|     py3-pip \ | ||||
|     mesa-dev \ | ||||
|     mesa-gl \ | ||||
|     pkgconf \ | ||||
|     clang-extra-tools  | ||||
| 
 | ||||
| 
 | ||||
| RUN pip install --no-cache-dir --break-system-packages conan gitpython \ | ||||
|     && conan profile detect | ||||
| 
 | ||||
| RUN clang --version  \ | ||||
|     && conan --version \ | ||||
|     && pip --version \ | ||||
|     && cmake --version \ | ||||
|     && clang --version \ | ||||
|     && clang-tidy --version | ||||
| 
 | ||||
| 
 | ||||
| RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \ | ||||
|     && cd light \ | ||||
|     && conan install . \ | ||||
|         -c tools.system.package_manager:mode=install \ | ||||
|         -o enable_static_analysis=True \ | ||||
|         --build=missing | ||||
		Loading…
	
	Add table
		
		Reference in a new issue