Zack Middleton
11337c9fa2
OpenGL2: Add GPU vertex skinning for IQM models
...
Using GPU vertex skinning is significantly faster than CPU vertex
skinning. Especially since OpenGL2 has to run R_VaoPackNormal() and
R_VaoPackTangent() each vertex each frame which causes CPU vertex
skinning to be significantly slower than OpenGL1 renderer.
2018-07-27 17:40:25 -05:00
Simon McVittie
5909b9a1cf
Isolate the Altivec code so non-Altivec PPC targets can use the same binary.
...
Moved all the code using Altivec intrinsics to separate files. This
means we can optionally use GCC's -maltivec on just these files, which
are chosen at runtime if the CPU supports Altivec, and compile the rest
without it, making a single binary that has Altivec optimizations but
can still work on G3.
Unlike SSE and similar extensions on x86, there does not seem to be
a way to enable conditional, targeted use of Altivec based on runtime
detection (which is what ioquake3 wants to do) without also giving the
compiler permission to use Altivec in code generation; so to not crash
on CPUs that do not implement Altivec, we'll have to turn it off
altogether, except in translation units that are only entered when
runtime Altivec detection is successful.
This has been tested on Linux PPC (on an Altivec-enabled CPU),
but we may need further work after testing trickles out to other
PowerPC devices and ancient Mac OS X builds.
I did a little work on this patch, but the majority of the effort belongs
to Simon McVittie (thanks!).
2018-05-12 14:14:47 -04:00
SmileTheory
d549b642bc
OpenGL2: Use an OpenGL 3.2 core context if available.
2017-07-13 12:03:10 -07:00
SmileTheory
e03cdf444c
OpenGL2: Remove SF_VAO_MESH.
2017-06-16 16:52:53 -07:00
SmileTheory
c65d2c2657
Add vao cache for static surfaces.
...
Remove support for draw range elements, multi draw arrays, world vao creation, surface merging.
2017-04-28 02:13:25 -07:00
SmileTheory
2349ef038e
OpenGL2: Don't interleave texCoords and lightCoords in tess.
2016-11-25 01:17:46 -08:00
SmileTheory
ad819edcc4
OpenGL2: Workaround for multiple deforms on MD3 mesh.
...
https://github.com/ioquake/ioq3/issues/122
2016-10-11 04:18:41 -07:00
SmileTheory
aa79738c50
OpenGL2: Store vertex colors and hdr lightmaps/lightgrid as RGBA16.
2016-10-11 03:28:20 -07:00
SmileTheory
8749d62bbd
OpenGL2: Remove per fragment tangent space calculation code.
2016-09-14 03:57:51 -07:00
SmileTheory
bbc9e263f0
OpenGL2: Fix more reversed VectorCopy4() usage.
2016-09-13 01:41:46 -07:00
SmileTheory
ec3779988c
OpenGL2: Fix reversed VectorCopy4() usage.
2016-09-11 16:08:18 -07:00
SmileTheory
dfbaf50324
OpenGL2: Store normals/tangents as int16_t[4].
2016-09-06 00:57:15 -07:00
SmileTheory
251c983681
OpenGL2: Require OpenGL 2.0.
2016-07-24 21:29:13 -07:00
Victor Roemer
398dea397c
Fix Makefile for OSX
...
Bump base SDK from 10.5 -> 10.7
Just use the builtin __APPLE__
2016-06-12 17:17:33 -04:00
SmileTheory
275317fefb
OpenGL2: Direct state access, part 1: Texture binds
2016-01-18 04:46:01 -08:00
SmileTheory
fd23249357
OpenGL2: Ensure tess VAO is bound before using it.
2014-11-21 16:12:53 -08:00
Zack Middleton
60d28722ef
Remove unfinished OpenGL display list code
...
It seems unlikely anyone is going to do anything with this aside from stub
it out in OpenGLES ports.
2014-11-16 14:57:13 -06:00
SmileTheory
943259f6b4
OpenGL2: Support half floats for texcoords and vertex colors.
2014-11-03 19:10:35 -08:00
SmileTheory
3765652778
OpenGL2: Fix corrupt models.
2014-10-23 16:51:10 -07:00
SmileTheory
4f5ebf8349
OpenGL2: Bit of multidraw optimization.
2014-10-16 00:32:20 -07:00
SmileTheory
03ac9649ea
Fix a bug in previous commit.
2014-10-15 20:28:26 -07:00
SmileTheory
e34972b110
OpenGL2: Fix missing surfaces with r_mergeMultidraws 2.
2014-10-15 20:00:54 -07:00
SmileTheory
0578b70f38
OpenGL2: Reduce redundant GL calls.
2014-10-14 06:15:06 -07:00
SmileTheory
84206c8598
OpenGL2: Vertex array object support.
2014-10-14 01:50:44 -07:00
SmileTheory
873a02bd3c
OpenGL2: VBO cleanup.
2014-10-13 21:57:06 -07:00
Zack Middleton
cc9072d098
Check for buffer overflow for rail/lightning surfaces
2014-01-25 21:15:36 -06:00
SmileTheory
f6f3a19f73
OpenGL2: Support GL_ARB_vertex_type_2_10_10_10_rev for normals/tangents/lightdirs
2013-12-09 17:33:54 -08:00
SmileTheory
6f3edb20b8
#6069 : Remove md4 model support.
2013-11-29 16:13:47 -08:00
Zack Middleton
2044bcb12d
Silence warnings about unused static functions in opengl2
2013-11-25 15:27:09 -06:00
SmileTheory
c350963bf2
OpenGL2: Match glsl data type names: matrix_t -> mat4_t, vec*i_t -> ivec*_t
2013-11-19 03:23:50 -08:00
SmileTheory
6e5f8cc918
OpenGL2: Calculate bitangent in shader, and store normal/tangent as normalized byte arrays.
2013-11-12 19:21:51 -08:00
SmileTheory
ae57eebf52
Merge branch 'glindex_size_fixes' of https://github.com/inolen/ioq3 into inolen-glindex_size_fixes
2013-11-08 22:19:32 -08:00
SmileTheory
ef9fe17dd5
OpenGL2: Remove srfTriangle_t, and use glIndex_t instead.
2013-11-08 01:46:17 -08:00
SmileTheory
535d0ea70e
OpenGL2: Merge bsp surface structs into a single struct, and more cleanup.
2013-10-15 01:19:16 -07:00
SmileTheory
08fcecc829
OpenGL2: Clean up texmod calculations, and improve vertex animation handling.
2013-10-14 01:55:54 -07:00
SmileTheory
7e875c6941
#5979 : Cubemap support for opengl2.
2013-09-16 00:54:26 -07:00
Anthony Pesch
b0f0376a4f
Misc fixes to IBO code to correctly use sizeof(glIndex_t)
2013-07-19 14:16:49 -07:00
Zack Middleton
6c4d010f29
Fix null model axis disappearing if sky is in view
2013-05-31 01:07:49 -05:00
/dev/humancontroller
9d626b6a12
drop some useless return statements
2013-05-30 15:43:21 -05:00
SmileTheory
8b23985358
Make all GLSL shaders use the same set of uniforms.
2013-03-20 22:53:30 -07:00
Tim Angus
ecd50f01c2
Remove RAVENMD4 #define
2013-03-18 19:05:51 +00:00
SmileTheory
fbe56e4fa1
Some minor cleanup.
2013-03-06 02:02:01 -08:00
Tim Angus
f6fb9eb602
renderer -> renderergl1, rend2 -> renderergl2
2013-02-15 23:46:37 +00:00