Fri, 18 Apr 2025 20:13:01 +0200
create catch-all util for GL errors + refactors mesh creation
| 0 | 1 | # Copyright 2023 Mike Becker. All rights reserved. | 
| 2 | # | |
| 3 | # Redistribution and use in source and binary forms, with or without | |
| 4 | # modification, are permitted provided that the following conditions are met: | |
| 5 | # | |
| 6 | # 1. Redistributions of source code must retain the above copyright | |
| 7 | # notice, this list of conditions and the following disclaimer. | |
| 8 | # | |
| 9 | # 2. Redistributions in binary form must reproduce the above copyright | |
| 10 | # notice, this list of conditions and the following disclaimer in the | |
| 11 | # documentation and/or other materials provided with the distribution. | |
| 12 | # | |
| 13 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
| 14 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 15 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 16 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
| 17 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
| 18 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
| 19 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
| 20 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
| 21 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
| 22 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
| 23 | # POSSIBILITY OF SUCH DAMAGE. | |
| 24 | # | |
| 25 | ||
| 26 | include ../config.mk | |
| 27 | ||
| 28 | BUILD_DIR=../build/lib | |
| 29 | ||
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 30 | SRC = context.c glcontext.c error.c window.c shader.c font.c text.c \ | 
| 81 
84a546e282b7
create catch-all util for GL errors + refactors mesh creation
 Mike Becker <universe@uap-core.de> parents: 
78diff
changeset | 31 | texture.c scene.c camera.c primitives.c mesh.c | 
| 0 | 32 | |
| 33 | OBJ = $(SRC:%.c=$(BUILD_DIR)/%.o) | |
| 34 | ||
| 35 | all: $(BUILD_DIR)/libascension.a FORCE | |
| 6 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 36 | @echo "You have successfully ascended." | 
| 0 | 37 | |
| 38 | $(BUILD_DIR)/libascension.a: $(OBJ) | |
| 6 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 39 | @echo "Creating library..." | 
| 0 | 40 | $(AR) $(ARFLAGS) $@ $^ | 
| 41 | ||
| 42 | FORCE: | |
| 43 | ||
| 37 
8a8cc6725b48
add camera and render groups
 Mike Becker <universe@uap-core.de> parents: 
32diff
changeset | 44 | $(BUILD_DIR)/camera.o: camera.c ascension/camera.h ascension/datatypes.h | 
| 
8a8cc6725b48
add camera and render groups
 Mike Becker <universe@uap-core.de> parents: 
32diff
changeset | 45 | @echo "Compiling $<" | 
| 
8a8cc6725b48
add camera and render groups
 Mike Becker <universe@uap-core.de> parents: 
32diff
changeset | 46 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
8a8cc6725b48
add camera and render groups
 Mike Becker <universe@uap-core.de> parents: 
32diff
changeset | 47 | |
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 48 | $(BUILD_DIR)/context.o: context.c ascension/context.h \ | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 49 | ascension/datatypes.h ascension/window.h ascension/glcontext.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 50 | ascension/primitives.h ascension/mesh.h ascension/shader.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 51 | ascension/scene.h ascension/transform.h ascension/camera.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 52 | ascension/texture.h ascension/input.h ascension/ui/font.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 53 | ascension/error.h ascension/utils.h | 
| 6 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 54 | @echo "Compiling $<" | 
| 0 | 55 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 56 | ||
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 57 | $(BUILD_DIR)/error.o: error.c ascension/context.h ascension/datatypes.h \ | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 58 | ascension/window.h ascension/glcontext.h ascension/primitives.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 59 | ascension/mesh.h ascension/shader.h ascension/scene.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 60 | ascension/transform.h ascension/camera.h ascension/texture.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 61 | ascension/input.h ascension/ui/font.h ascension/error.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 62 | ascension/utils.h | 
| 15 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 63 | @echo "Compiling $<" | 
| 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 64 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 65 | |
| 48 | 66 | $(BUILD_DIR)/font.o: font.c ascension/ui/font.h ascension/context.h \ | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 67 | ascension/datatypes.h ascension/window.h ascension/glcontext.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 68 | ascension/primitives.h ascension/mesh.h ascension/shader.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 69 | ascension/scene.h ascension/transform.h ascension/camera.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 70 | ascension/texture.h ascension/input.h ascension/ui/font.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 71 | ascension/error.h | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 72 | @echo "Compiling $<" | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 73 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 74 | |
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 75 | $(BUILD_DIR)/glcontext.o: glcontext.c ascension/glcontext.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 76 | ascension/primitives.h ascension/mesh.h ascension/shader.h \ | 
| 78 
9bc544f4ce8f
go back to reading shader code from files
 Mike Becker <universe@uap-core.de> parents: 
77diff
changeset | 77 | ascension/error.h | 
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 78 | @echo "Compiling $<" | 
| 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 79 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 80 | |
| 81 
84a546e282b7
create catch-all util for GL errors + refactors mesh creation
 Mike Becker <universe@uap-core.de> parents: 
78diff
changeset | 81 | $(BUILD_DIR)/mesh.o: mesh.c ascension/mesh.h ascension/error.h | 
| 
84a546e282b7
create catch-all util for GL errors + refactors mesh creation
 Mike Becker <universe@uap-core.de> parents: 
78diff
changeset | 82 | @echo "Compiling $<" | 
| 
84a546e282b7
create catch-all util for GL errors + refactors mesh creation
 Mike Becker <universe@uap-core.de> parents: 
78diff
changeset | 83 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
84a546e282b7
create catch-all util for GL errors + refactors mesh creation
 Mike Becker <universe@uap-core.de> parents: 
78diff
changeset | 84 | |
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 85 | $(BUILD_DIR)/primitives.o: primitives.c ascension/primitives.h \ | 
| 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 86 | ascension/mesh.h ascension/error.h ascension/context.h \ | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 87 | ascension/datatypes.h ascension/window.h ascension/glcontext.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 88 | ascension/primitives.h ascension/shader.h ascension/scene.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 89 | ascension/transform.h ascension/camera.h ascension/texture.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 90 | ascension/input.h ascension/ui/font.h | 
| 6 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 91 | @echo "Compiling $<" | 
| 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 92 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
302971e8599b
move window related stuff to its own unit
 Mike Becker <universe@uap-core.de> parents: 
3diff
changeset | 93 | |
| 37 
8a8cc6725b48
add camera and render groups
 Mike Becker <universe@uap-core.de> parents: 
32diff
changeset | 94 | $(BUILD_DIR)/scene.o: scene.c ascension/scene.h ascension/datatypes.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 95 | ascension/transform.h ascension/camera.h ascension/texture.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 96 | ascension/context.h ascension/window.h ascension/glcontext.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 97 | ascension/primitives.h ascension/mesh.h ascension/shader.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 98 | ascension/scene.h ascension/input.h ascension/ui/font.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 99 | ascension/utils.h ascension/shader.h | 
| 21 
1a47c57666f5
add first draft of a scene graph structure
 Mike Becker <universe@uap-core.de> parents: 
16diff
changeset | 100 | @echo "Compiling $<" | 
| 
1a47c57666f5
add first draft of a scene graph structure
 Mike Becker <universe@uap-core.de> parents: 
16diff
changeset | 101 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
1a47c57666f5
add first draft of a scene graph structure
 Mike Becker <universe@uap-core.de> parents: 
16diff
changeset | 102 | |
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 103 | $(BUILD_DIR)/shader.o: shader.c ascension/shader.h ascension/error.h | 
| 15 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 104 | @echo "Compiling $<" | 
| 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 105 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
362b7659dc76
add shader loading and unloading
 Mike Becker <universe@uap-core.de> parents: 
11diff
changeset | 106 | |
| 48 | 107 | $(BUILD_DIR)/text.o: text.c ascension/ui/text.h ascension/ui/font.h \ | 
| 108 | ascension/ui/../scene.h ascension/ui/../datatypes.h \ | |
| 50 | 109 | ascension/ui/../transform.h ascension/ui/../camera.h \ | 
| 61 
b7954818a6b7
merge different bools of AscSceneNode into flags
 Mike Becker <universe@uap-core.de> parents: 
50diff
changeset | 110 | ascension/ui/../texture.h ascension/ui/../utils.h ascension/context.h \ | 
| 
b7954818a6b7
merge different bools of AscSceneNode into flags
 Mike Becker <universe@uap-core.de> parents: 
50diff
changeset | 111 | ascension/datatypes.h ascension/window.h ascension/glcontext.h \ | 
| 
b7954818a6b7
merge different bools of AscSceneNode into flags
 Mike Becker <universe@uap-core.de> parents: 
50diff
changeset | 112 | ascension/primitives.h ascension/mesh.h ascension/shader.h \ | 
| 66 
8297afa1c29c
replaces broken font cache with improved cache - fixes #387
 Mike Becker <universe@uap-core.de> parents: 
61diff
changeset | 113 | ascension/scene.h ascension/input.h ascension/ui/font.h \ | 
| 
8297afa1c29c
replaces broken font cache with improved cache - fixes #387
 Mike Becker <universe@uap-core.de> parents: 
61diff
changeset | 114 | ascension/error.h ascension/shader.h | 
| 50 | 115 | @echo "Compiling $<" | 
| 116 | $(CC) -o $@ $(CFLAGS) -c $< | |
| 117 | ||
| 118 | $(BUILD_DIR)/texture.o: texture.c ascension/texture.h ascension/error.h | |
| 7 | 119 | @echo "Compiling $<" | 
| 120 | $(CC) -o $@ $(CFLAGS) -c $< | |
| 121 | ||
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 122 | $(BUILD_DIR)/window.o: window.c ascension/window.h ascension/datatypes.h \ | 
| 44 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 123 | ascension/glcontext.h ascension/primitives.h ascension/mesh.h \ | 
| 
b3da4096c607
create own compilation unit for GL context - fixes shader not being created per context
 Mike Becker <universe@uap-core.de> parents: 
37diff
changeset | 124 | ascension/shader.h ascension/scene.h ascension/transform.h \ | 
| 77 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 125 | ascension/camera.h ascension/texture.h ascension/context.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 126 | ascension/window.h ascension/input.h ascension/ui/font.h \ | 
| 
2187a732f4d7
prepare code for embedding shader sources with c23 #embed
 Mike Becker <universe@uap-core.de> parents: 
66diff
changeset | 127 | ascension/error.h ascension/utils.h | 
| 16 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 128 | @echo "Compiling $<" | 
| 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 129 | $(CC) -o $@ $(CFLAGS) -c $< | 
| 
c5dde81b6fb2
add text rendering and demo FPS counter
 Mike Becker <universe@uap-core.de> parents: 
15diff
changeset | 130 |