aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* more improvements in builds setupvimene2026-02-151-0/+61
| | | | | | | | | | | | | | | | | | | | - moved slang shaders to spvshaders to separate software and hardware shaders - split Makefile.am into Makefile.am, src/Makefile.am and src/spvshaders/Makefile.am - build shaders as DATA primary, instead of both PROGRAMS and SCRIPTS, which greatly simplifies building. Before that, we had to first build them as PROGRAMS, and then copy them as SCRIPTS to remove executable extensions (i.e. ".exe" for Windows) - changed final executable dir from enginedir to bindir, which makes automake see it as an exec instead of data - compute relative paths from C++, which makes it possible to change dirs arbitrarily when running make while still having a relocatable executable - updated README.md to reflect changes in dirs - use AX_COMPARE_VERSION() to simplify checking if Vulkan headers version is correct - factored out most of paths computation in engine::path_utils::Paths
* added back windows cross-compilationvimene2026-02-051-55/+0
| | | | | | | | | | | | | | | | | | | | | | | Makefile.am is too ugly, but I don't have a better solution right now. - fused Makefile.am and src/Makefile.am - adding back windows cross-compilation - improved README.md a lot - added configure option to enable debug, which greatly simplifies development when writing shaders - removed dependency on LunarG's Vulkan SDK by having dependency only on Vulkan headers, library and slangc - removed print C++ header because I have an old MinGW which doesn't support it. It will be restored in the future - make every assets path relative to be able to build anywhere and run elsewhere - moved stb_image.h inside source directory instead of making it a dependency, which is more aligned with stb philosophy - moved assets inside source code to make it easy to compile and run the engine - improved configure.ac by checking Vulkan headers version directly in the configure script instead of within C code, which allows us to also do theses checks when cross-compiling
* added mipmaps for the hw renderer, improvementsvimene2026-02-031-1/+3
| | | | | | | | | | | | | This commit add mipmaps, but for now, mipmaps are generated on the gpu at runtime. We should generate them in advance. - added mipmaps for the hardware renderer - renamed stb_image.c to stb_image.cpp - add compiler flag to stb_image.cpp to prevent warning - added pipe notation for various objects to have all clipping functions be left to right. We need this for the time being because dot notation would considerably complicate the current implementation - small improvements
* improved software shadersvimene2026-01-171-4/+7
| | | | | | | | - unified terminal and graphical software renderer shaders - added vertex shaders for software renderers - removed VertexData - moved shaders from frame buffers to their own class - added FrameBufferConcept and ShadersConcept
* rewrote entirely the triangle clipping algorithmvimene2026-01-151-1/+2
| | | | | | | | | | | | | | | | | | | There is still a lot of work needed to refactor it properly. - use the Sutherland–Hodgman algorithm, with some minor changes - made clipping more general, allowing clipping of any coordinate, before and after division by w - compute the z coordinate only at the fragment stage instead of each time clipping creates / moves a vertex, in addition to the fragment stage - added VectorCoords to choose at compile-time different coordinates based on a template argument - added transpose struct to allow shuffling of vectors coordinates - added math::utils::lerp which interpolate linearly a float - added Vector{2,3,4}::map() which maps a vector from one range to another - added template parameter to DerivedVertex (and therefore TriangleDerived) to allow choosing which dimension to use
* added textures for the hardware renderervimene2026-01-131-0/+1
| | | | | | | | | | | | | | | | | - removed "using" directive in .hpp - reverse order of arguments for quaternion rotation, i.e. q.rot(v) instead of v.rot(q), where q is a quaterinon and v a vector - pass the inverse of the view matrix to render_and_present_frame, to allow light calculation in shaders (we used to just pass the matrix of the quaternion of the transformation, i.e. discard scaling and translations) - added another mesh and texture (viking_room) for testing purposes - added transparent background option - added Quaternion::look_towards(), which is the equivalent of Matrix4::look_at() but only for rotations - various improvement to .obj parsing - load texture coordinates from .obj file - merged duplicate vertices in Mesh::linearize_indices()
* started working on implementing texturesvimene2025-12-261-1/+7
|
* added STBI libraryvimene2025-12-261-10/+3
|
* create present queue and lots of code refactoringvimene2025-12-201-0/+1
| | | | | | | | | | | | | - wait idle on present queue instead of graphics queue - assume only one bit of VkDebugUtilsMessageSeverityFlagBitsEXT is set; it seems to be always the case - rename every _create_info to _ci - print less debug information, by reducing debug output to warning and up, and by removing printing of all of devices properties - make as much blocks and lambdas as possible to contain every variable to a small scope - use designator lists everywhere - rename device to physical_device, and logical_device to device
* added basic graphics pipeline and shadersvimene2025-12-181-20/+30
|
* removed old header filevimene2025-12-131-1/+1
|
* renamed .h to .hppvimene2025-12-101-20/+20
|
* improved autotools usagevimene2025-12-101-0/+38
|
* improved file structure for autotoolsvimene2023-11-201-2/+0
|
* started switching to autotoolsvimene2023-11-191-0/+2