Skip to content

Commit fb66033

Browse files
added svgalib backend : uses gl_setpixelrgb : need to speed up
1 parent 192e852 commit fb66033

File tree

7 files changed

+459
-23
lines changed

7 files changed

+459
-23
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ core
1010
*.mpg
1111
lib3d-output.*
1212
test_objects
13+
*.a
14+
*.so

install.sh

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
install lib3d.so /usr/local/lib/

lib3d.cbp

+125-22
Original file line numberDiff line numberDiff line change
@@ -11,59 +11,162 @@
1111
<Option object_output="obj/Debug/" />
1212
<Option type="1" />
1313
<Option compiler="gcc" />
14-
<Option parameters="test_objects/knoxS.obj" />
14+
<Option host_application="gksudo" />
15+
<Option run_host_application_in_terminal="0" />
1516
<Compiler>
1617
<Add option="-g" />
18+
<Add option="`sdl2-config --cflags` `pkg-config libavcodec libavformat libavutil libswscale MagickWand --cflags`" />
1719
</Compiler>
20+
<Linker>
21+
<Add option="`pkg-config libavcodec libavformat libavutil libswscale MagickWand --libs` `sdl2-config --libs`" />
22+
<Add library="aa" />
23+
<Add library="caca" />
24+
<Add library="vga" />
25+
<Add library="vgagl" />
26+
</Linker>
1827
</Target>
1928
<Target title="Release">
2029
<Option output="bin/Release/lib3d" prefix_auto="1" extension_auto="1" />
2130
<Option object_output="obj/Release/" />
2231
<Option type="1" />
2332
<Option compiler="gcc" />
33+
<Compiler>
34+
<Add option="-O3" />
35+
<Add option="`sdl2-config --cflags` `pkg-config libavcodec libavformat libavutil libswscale MagickWand --cflags`" />
36+
</Compiler>
37+
<Linker>
38+
<Add option="-s" />
39+
<Add option="`pkg-config libavcodec libavformat libavutil libswscale MagickWand --libs` `sdl2-config --libs`" />
40+
<Add library="aa" />
41+
<Add library="caca" />
42+
<Add library="vga" />
43+
<Add library="vgagl" />
44+
</Linker>
45+
</Target>
46+
<Target title="Release Library">
47+
<Option output="3d" imp_lib="lib3d.a" def_file="lib3d.def" prefix_auto="1" extension_auto="1" />
48+
<Option object_output="obj/Release-Library" />
49+
<Option type="3" />
50+
<Option compiler="gcc" />
51+
<Option createDefFile="1" />
52+
<Option createStaticLib="1" />
53+
<Compiler>
54+
<Add option="-O3" />
55+
<Add option="`sdl2-config --cflags` `pkg-config libavcodec libavformat libavutil libswscale MagickWand --cflags`" />
56+
</Compiler>
57+
<Linker>
58+
<Add option="`pkg-config libavcodec libavformat libavutil libswscale MagickWand --libs` `sdl2-config --libs`" />
59+
<Add library="aa" />
60+
<Add library="caca" />
61+
<Add library="vga" />
62+
<Add library="vgagl" />
63+
</Linker>
64+
</Target>
65+
<Target title="Library Test">
66+
<Option output="bin/Library-Test/lib3d" prefix_auto="1" extension_auto="1" />
67+
<Option object_output="obj/Library-Test/" />
68+
<Option external_deps="lib3d.so;" />
69+
<Option type="1" />
70+
<Option compiler="gcc" />
2471
<Compiler>
2572
<Add option="-O3" />
2673
</Compiler>
2774
<Linker>
2875
<Add option="-s" />
76+
<Add library="./lib3d.so" />
2977
</Linker>
3078
</Target>
3179
</Build>
3280
<Compiler>
3381
<Add option="-std=c++11" />
3482
<Add option="-Wall" />
35-
<Add option="-march=nocona -fexceptions -mfpmath=sse -funsafe-math-optimizations `sdl2-config --cflags`" />
36-
<Add option="`pkg-config libavcodec libavformat libavutil libswscale MagickWand --cflags`" />
83+
<Add option="-march=nocona -fexceptions -mfpmath=sse -funsafe-math-optimizations" />
3784
</Compiler>
38-
<Linker>
39-
<Add option="`pkg-config libavcodec libavformat libavutil libswscale MagickWand --libs`" />
40-
<Add option="`sdl2-config --libs`" />
41-
<Add library="aa" />
42-
<Add library="caca" />
43-
</Linker>
44-
<Unit filename="cacarenderer.cpp" />
45-
<Unit filename="cacarenderer.h" />
46-
<Unit filename="ffmpeg_renderer.cpp" />
85+
<Unit filename="cacarenderer.cpp">
86+
<Option target="Debug" />
87+
<Option target="Release" />
88+
<Option target="Release Library" />
89+
</Unit>
90+
<Unit filename="cacarenderer.h">
91+
<Option target="Debug" />
92+
<Option target="Release" />
93+
<Option target="Release Library" />
94+
</Unit>
95+
<Unit filename="ffmpeg_renderer.cpp">
96+
<Option target="Debug" />
97+
<Option target="Release" />
98+
<Option target="Release Library" />
99+
</Unit>
47100
<Unit filename="ffmpeg_renderer.h" />
48101
<Unit filename="generate.h" />
49-
<Unit filename="image.cpp" />
102+
<Unit filename="image.cpp">
103+
<Option target="Debug" />
104+
<Option target="Release" />
105+
<Option target="Release Library" />
106+
</Unit>
50107
<Unit filename="image.h" />
51-
<Unit filename="image_load_internal.cpp" />
52-
<Unit filename="image_load_internal.h" />
53-
<Unit filename="libaarenderer.cpp" />
54-
<Unit filename="libaarenderer.h" />
55-
<Unit filename="main.cpp" />
108+
<Unit filename="image_load_internal.cpp">
109+
<Option target="Debug" />
110+
<Option target="Release" />
111+
<Option target="Release Library" />
112+
</Unit>
113+
<Unit filename="image_load_internal.h">
114+
<Option target="Debug" />
115+
<Option target="Release" />
116+
<Option target="Release Library" />
117+
</Unit>
118+
<Unit filename="libaarenderer.cpp">
119+
<Option target="Debug" />
120+
<Option target="Release" />
121+
<Option target="Release Library" />
122+
</Unit>
123+
<Unit filename="libaarenderer.h">
124+
<Option target="Debug" />
125+
<Option target="Release" />
126+
<Option target="Release Library" />
127+
</Unit>
128+
<Unit filename="main.cpp">
129+
<Option target="Debug" />
130+
<Option target="Release" />
131+
<Option target="Library Test" />
132+
</Unit>
56133
<Unit filename="material.h" />
57134
<Unit filename="matrix.h" />
58135
<Unit filename="mesh.h" />
59-
<Unit filename="model.cpp" />
136+
<Unit filename="model.cpp">
137+
<Option target="Debug" />
138+
<Option target="Release" />
139+
<Option target="Release Library" />
140+
</Unit>
60141
<Unit filename="model.h" />
61-
<Unit filename="rawrenderer.cpp" />
142+
<Unit filename="rawrenderer.cpp">
143+
<Option target="Debug" />
144+
<Option target="Release" />
145+
<Option target="Release Library" />
146+
</Unit>
62147
<Unit filename="rawrenderer.h" />
63-
<Unit filename="render.cpp" />
148+
<Unit filename="render.cpp">
149+
<Option target="Debug" />
150+
<Option target="Release" />
151+
<Option target="Release Library" />
152+
</Unit>
64153
<Unit filename="renderer.h" />
65-
<Unit filename="softrender.cpp" />
154+
<Unit filename="softrender.cpp">
155+
<Option target="Debug" />
156+
<Option target="Release" />
157+
<Option target="Release Library" />
158+
</Unit>
66159
<Unit filename="softrender.h" />
160+
<Unit filename="svgarenderer.cpp">
161+
<Option target="Debug" />
162+
<Option target="Release" />
163+
<Option target="Release Library" />
164+
</Unit>
165+
<Unit filename="svgarenderer.h">
166+
<Option target="Debug" />
167+
<Option target="Release" />
168+
<Option target="Release Library" />
169+
</Unit>
67170
<Unit filename="triangle.h" />
68171
<Unit filename="vector.h" />
69172
<Extensions>

main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ int main(int argc, char **argv)
148148
#else
149149
if(model)
150150
{
151-
float scaleFactor = 1 / max(0.001f, modelContainingSphereRadius);
151+
float scaleFactor = 30 / max(0.001f, modelContainingSphereRadius);
152152
model->render(renderer, Matrix::translate(0, 0, -1.2 * scaleFactor * modelContainingSphereRadius), (Matrix::rotateY((time - startTime) / 5 * M_PI)).concat(Matrix::rotateX((time - startTime) / 15 * M_PI)).concat(Matrix::scale(scaleFactor)), Light(VectorF(1, 1, 1)));
153153
}
154154
else

render.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "cacarenderer.h"
55
#include "ffmpeg_renderer.h"
66
#include "rawrenderer.h"
7+
#include "svgarenderer.h"
78
#include <SDL.h>
89
#include <stdexcept>
910
#include <cstdlib>
@@ -1161,6 +1162,7 @@ const Driver drivers[] =
11611162
Driver("sdl", []()->shared_ptr<WindowRenderer>{return make_shared<SDLWindowRenderer>();}, makeSoftwareImageRenderer),
11621163
Driver("caca", makeCacaRenderer, makeSoftwareImageRenderer),
11631164
Driver("aalib", makeLibAARenderer, makeSoftwareImageRenderer),
1165+
Driver("svga", makeSVGARenderer, makeSoftwareImageRenderer),
11641166
Driver("null", []()->shared_ptr<WindowRenderer>{return make_shared<NullWindowRenderer>();}, makeSoftwareImageRenderer),
11651167
Driver("ffmpeg", makeFFmpegOpenGLRenderer, makeOpenGLImageRenderer),
11661168
Driver("ffmpeg-no-opengl", makeFFmpegNoOpenGLRenderer, makeSoftwareImageRenderer),

0 commit comments

Comments
 (0)