Compare commits
	
		
			3 commits
		
	
	
		
			ae236efe2b
			...
			5bcb4cfdd3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5bcb4cfdd3 | |||
| 5748e0a496 | |||
| a88aa739b1 | 
					 7 changed files with 97 additions and 29 deletions
				
			
		
							
								
								
									
										48
									
								
								.drone.yml
									
										
									
									
									
								
							
							
						
						
									
										48
									
								
								.drone.yml
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -32,8 +32,43 @@ steps:
 | 
			
		|||
      fi
 | 
			
		||||
 | 
			
		||||
      exit ${has_fomatting_issues}
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
kind: pipeline
 | 
			
		||||
type: docker
 | 
			
		||||
name: unit tests
 | 
			
		||||
clone:
 | 
			
		||||
  recursive: true
 | 
			
		||||
  submodule_update_remote: true
 | 
			
		||||
 | 
			
		||||
trigger:
 | 
			
		||||
  branch:
 | 
			
		||||
  - main
 | 
			
		||||
 | 
			
		||||
steps:
 | 
			
		||||
- name: unit tests
 | 
			
		||||
  image: unit_tests:latest
 | 
			
		||||
  pull: if-not-exists
 | 
			
		||||
  commands:
 | 
			
		||||
    - |
 | 
			
		||||
      git submodule update --init --recursive
 | 
			
		||||
 | 
			
		||||
      conan build . \
 | 
			
		||||
        -c tools.system.package_manager:mode=install \
 | 
			
		||||
        -s build_type=Release \
 | 
			
		||||
        -o enable_static_analysis=False \
 | 
			
		||||
        -o enable_tests=True \
 | 
			
		||||
        --build=missing
 | 
			
		||||
 | 
			
		||||
      find ./build \
 | 
			
		||||
        -type f \
 | 
			
		||||
        -name '*_tests' \
 | 
			
		||||
        -executable \
 | 
			
		||||
        -exec sh -c \
 | 
			
		||||
        '{}' \
 | 
			
		||||
        \;
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
kind: pipeline
 | 
			
		||||
type: docker
 | 
			
		||||
name: static analysis
 | 
			
		||||
| 
						 | 
				
			
			@ -51,5 +86,12 @@ steps:
 | 
			
		|||
  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
 | 
			
		||||
    - |
 | 
			
		||||
      git submodule update --init --recursive
 | 
			
		||||
 | 
			
		||||
      conan build . \
 | 
			
		||||
        -c tools.system.package_manager:mode=install \
 | 
			
		||||
        -s build_type=Release \
 | 
			
		||||
        -o enable_static_analysis=True \
 | 
			
		||||
        -o enable_tests=True \
 | 
			
		||||
        --build=missing
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ namespace lt {
 | 
			
		|||
 | 
			
		||||
//==================== CONSTANT_BUFFER ====================//
 | 
			
		||||
glConstantBuffer::glConstantBuffer(ConstantBufferIndex index, unsigned int size)
 | 
			
		||||
    : m_buffer_id(NULL)
 | 
			
		||||
    : m_buffer_id()
 | 
			
		||||
    , m_index(static_cast<int>(index))
 | 
			
		||||
{
 | 
			
		||||
	glCreateBuffers(1, &m_buffer_id);
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +40,7 @@ void glConstantBuffer::un_map()
 | 
			
		|||
 | 
			
		||||
//==================== VERTEX_BUFFER ====================//
 | 
			
		||||
glVertexBuffer::glVertexBuffer(float *vertices, unsigned int stride, unsigned int count)
 | 
			
		||||
    : m_buffer_id(NULL)
 | 
			
		||||
    : m_buffer_id()
 | 
			
		||||
{
 | 
			
		||||
	glCreateBuffers(1, &m_buffer_id);
 | 
			
		||||
	glNamedBufferData(
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ void glVertexBuffer::bind()
 | 
			
		|||
 | 
			
		||||
void glVertexBuffer::un_bind()
 | 
			
		||||
{
 | 
			
		||||
	glBindBuffer(GL_ARRAY_BUFFER, NULL);
 | 
			
		||||
	glBindBuffer(GL_ARRAY_BUFFER, {});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
auto glVertexBuffer::map() -> void *
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +78,7 @@ void glVertexBuffer::un_map()
 | 
			
		|||
//==================== VERTEX_BUFFER ====================//
 | 
			
		||||
 | 
			
		||||
//==================== INDEX_BUFFER ====================//
 | 
			
		||||
glIndexBuffer::glIndexBuffer(unsigned int *indices, unsigned int count): m_buffer_id(NULL)
 | 
			
		||||
glIndexBuffer::glIndexBuffer(unsigned int *indices, unsigned int count): m_buffer_id()
 | 
			
		||||
{
 | 
			
		||||
	// generate indices if not provided
 | 
			
		||||
	auto hasIndices = !!indices;
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +132,7 @@ void glIndexBuffer::bind()
 | 
			
		|||
 | 
			
		||||
void glIndexBuffer::un_bind()
 | 
			
		||||
{
 | 
			
		||||
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, NULL);
 | 
			
		||||
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, {});
 | 
			
		||||
}
 | 
			
		||||
//==================== INDEX_BUFFER ====================//
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,9 +6,9 @@ namespace lt {
 | 
			
		|||
 | 
			
		||||
glFramebuffer::glFramebuffer(const FramebufferSpecification &specification)
 | 
			
		||||
    : m_specification(specification)
 | 
			
		||||
    , m_buffer_id(NULL)
 | 
			
		||||
    , m_color_attachment_id(NULL)
 | 
			
		||||
    , m_depth_stencil_attachment_id(NULL)
 | 
			
		||||
    , m_buffer_id()
 | 
			
		||||
    , m_color_attachment_id()
 | 
			
		||||
    , m_depth_stencil_attachment_id()
 | 
			
		||||
{
 | 
			
		||||
	resize({ specification.width, specification.height });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ void glFramebuffer::resize(const glm::uvec2 &size)
 | 
			
		|||
	    GL_RGBA8,
 | 
			
		||||
	    m_specification.width,
 | 
			
		||||
	    m_specification.height,
 | 
			
		||||
	    NULL,
 | 
			
		||||
	    {},
 | 
			
		||||
	    GL_RGBA,
 | 
			
		||||
	    GL_UNSIGNED_BYTE,
 | 
			
		||||
	    nullptr
 | 
			
		||||
| 
						 | 
				
			
			@ -74,17 +74,6 @@ void glFramebuffer::resize(const glm::uvec2 &size)
 | 
			
		|||
	    0
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	// glTextureStorage2D(m_color_attachment_id, 0, GL_RGBA8, m_specification.width,
 | 
			
		||||
	// m_specification.height);
 | 
			
		||||
 | 
			
		||||
	//	glCreateTextures(GL_TEXTURE_2D, 1, &m_depth_stencil_attachment_id);
 | 
			
		||||
	//	glBindTexture(GL_TEXTURE_2D, m_depth_stencil_attachment_id);
 | 
			
		||||
	//	glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_specification.width,
 | 
			
		||||
	// m_specification.height, NULL, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr);
 | 
			
		||||
	//	// glTextureStorage2D(m_depth_stencil_attachment_id, 0, GL_DEPTH24_STENCIL8,
 | 
			
		||||
	// m_specification.width, m_specification.height); 	glFramebufferTexture2D(GL_FRAMEBUFFER,
 | 
			
		||||
	// GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_depth_stencil_attachment_id, 0);
 | 
			
		||||
 | 
			
		||||
	ensure(
 | 
			
		||||
	    (glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE),
 | 
			
		||||
	    "Framebuffer is incomplete"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,7 @@ void glRenderCommand::draw_indexed(unsigned int count)
 | 
			
		|||
 | 
			
		||||
void glRenderCommand::default_target_framebuffer()
 | 
			
		||||
{
 | 
			
		||||
	glBindFramebuffer(GL_FRAMEBUFFER, NULL);
 | 
			
		||||
	glBindFramebuffer(GL_FRAMEBUFFER, {});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void glRenderCommand::set_viewport(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ void glShader::bind()
 | 
			
		|||
 | 
			
		||||
void glShader::un_bind()
 | 
			
		||||
{
 | 
			
		||||
	glUseProgram(NULL);
 | 
			
		||||
	glUseProgram({});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
auto glShader::compile_shader(const std::string &source, Shader::Stage stage) -> unsigned int
 | 
			
		||||
| 
						 | 
				
			
			@ -67,7 +67,7 @@ auto glShader::compile_shader(const std::string &source, Shader::Stage stage) ->
 | 
			
		|||
	    stage == Shader::Stage::vertex   ? GL_VERTEX_SHADER :
 | 
			
		||||
	    stage == Shader::Stage::pixel    ? GL_FRAGMENT_SHADER :
 | 
			
		||||
	    stage == Shader::Stage::geometry ? GL_GEOMETRY_SHADER :
 | 
			
		||||
	                                       NULL
 | 
			
		||||
	                                       0
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	// compile
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +91,7 @@ auto glShader::compile_shader(const std::string &source, Shader::Stage stage) ->
 | 
			
		|||
		    errorLog
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		return NULL;
 | 
			
		||||
		return {};
 | 
			
		||||
	}
 | 
			
		||||
#define LIGHT_OPENGL_ENABLE_SHADER_INFO_LOG
 | 
			
		||||
#ifdef LIGHT_OPENGL_ENABLE_SHADER_INFO_LOG
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ glVertexLayout::glVertexLayout(
 | 
			
		|||
    const Ref<VertexBuffer> &buffer,
 | 
			
		||||
    const std::vector<std::pair<std::string, VertexElementType>> &elements
 | 
			
		||||
)
 | 
			
		||||
    : m_array_id(NULL)
 | 
			
		||||
    : m_array_id()
 | 
			
		||||
{
 | 
			
		||||
	// check
 | 
			
		||||
	ensure(
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ void glVertexLayout::bind()
 | 
			
		|||
 | 
			
		||||
void glVertexLayout::un_bind()
 | 
			
		||||
{
 | 
			
		||||
	glBindVertexArray(NULL);
 | 
			
		||||
	glBindVertexArray({});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
auto glVertexLayout::get_element_desc(VertexElementType type, unsigned int offset)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										37
									
								
								tools/ci/images/unit_tests/Dockerfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								tools/ci/images/unit_tests/Dockerfile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
FROM alpine:latest
 | 
			
		||||
 | 
			
		||||
RUN apk add --no-cache \
 | 
			
		||||
    bash \
 | 
			
		||||
    clang \
 | 
			
		||||
    llvm \
 | 
			
		||||
    cmake \
 | 
			
		||||
    git \
 | 
			
		||||
    make \
 | 
			
		||||
    g++ \
 | 
			
		||||
    python3 \
 | 
			
		||||
    py3-pip \
 | 
			
		||||
    mesa-dev \
 | 
			
		||||
    mesa-gl \
 | 
			
		||||
    pkgconf
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
RUN git clone 'https://git.light7734.com/light7734/light.git' --recursive \
 | 
			
		||||
    && cd light \
 | 
			
		||||
    && conan install . \
 | 
			
		||||
        -s build_type=Debug \
 | 
			
		||||
        -c tools.system.package_manager:mode=install \
 | 
			
		||||
        --build=missing \
 | 
			
		||||
    && conan install . \
 | 
			
		||||
        -s build_type=Release \
 | 
			
		||||
        -c tools.system.package_manager:mode=install \
 | 
			
		||||
        --build=missing
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue