Zack Middleton
20573bce43
Don't link to libGL at compile time
...
Get all OpenGL functions using SDL_GL_GetProcAddress(). This makes it
easier to cross-arch compile on Linux and add support for OpenGL ES
in the future.
Users still have to supply their own libSDL2 for cross-arch compiling
on Linux. But now the user does not have to re-install libgl1-mesa-dev
package for i386 or amd64 on Debian when switching between compiling
ioquake3 for x86 and x86_64.
2017-10-01 23:07:33 -05:00
Zack Middleton
6f0736ce9a
Fix loading renderer DLLs on Windows x86
...
After 'Fix floating point precision loss in renderer', Windows x86
client won't load the renderer DLLs. The problem is a 64 bit modulus.
I couldn't find any reports of this online. However, client with
built-in renderer worked with the 64 bit modulus.
Only tested with mingw-w64.
2017-09-07 20:42:31 -05:00
SmileTheory
9d1c6748f5
OpenGL2: Force VAO usage on OpenGL 3.0+
2017-08-08 20:20:11 -07:00
SmileTheory
3f415abe61
OpenGL2: Use extension functions with OpenGL versions before 3.0.
2017-08-07 18:00:00 -07:00
Zack Middleton
59b1262b82
Fix floating point precision loss in renderer [part 2]
...
Fix floatTime using float precision instead of double using GCC.
Fix R_BindAnimatedImage to be in sync with function table.
Fix vertexDeform bulge, vertexDeform normals, noise wave function
at high level time.
Revert unnecessary float -> double conversions.
2017-08-03 00:14:22 -05:00
Zack Middleton
30fdd88c9f
Fix floating point precision loss in renderer [part 1]
...
Patch for https://bugzilla.icculus.org/show_bug.cgi?id=5931 by
Eugene C. from 2013 plus recent fix for tcMod rotate.
I merged the changes into the OpenGL2 renderer though the fix for
tcMod turb doesn't translate.
2017-08-02 23:44:44 -05:00
Zack Middleton
e62941396d
Remove unused imgFlag_t value IMGFLAG_SRGB
2017-07-30 15:39:32 -05:00
Zack Middleton
6693465336
Don't try to remove non-existant command 'shaderstate'
...
Remove commands in the order they are added because the different
orders is annoying.
2017-07-27 18:58:46 -05:00
SmileTheory
356ae10ef6
OpenGL2: Don't use initialized arrays in glsl shaders.
...
Unsupported in GLSL 1.20 (Mac OS X 10.6)
2017-07-24 16:29:04 -07:00
SmileTheory
786f6fc525
whoops, left a bit of debugging enabled
2017-07-14 16:26:41 -07:00
SmileTheory
6f1712dafe
OpenGL2: "Fix" cg_shadows 4.
2017-07-14 16:15:02 -07:00
SmileTheory
6a77f4e363
OpenGL2: Don't do MSAA resolve/shadow mask/SSAO on shadow views.
2017-07-14 15:42:41 -07:00
SmileTheory
a4c09236b1
OpenGL2: Remove GLSL_ValidateProgram().
...
https://stackoverflow.com/questions/39761456/why-does-glvalidateprogram-fail-when-no-vao-is-bound
2017-07-13 12:10:09 -07:00
SmileTheory
d549b642bc
OpenGL2: Use an OpenGL 3.2 core context if available.
2017-07-13 12:03:10 -07:00
Zack Middleton
dd73e19546
Improve warning for too many skin surfaces
2017-07-04 15:36:26 -05:00
Zack Middleton
904bbc1a8f
Allow more than 32 surfaces in skin files
...
Models don't have a surface limit; skins shouldn't either. Some player
models require more than 32 surfaces since vanilla Quake 3 did not
enforce the limit.
Skins are now limited to 256 surfaces because having no limit would
require parsing the skin file twice. The skin surfaces are dynamically
allocated so it doesn't increase memory usage when less surfaces
are used.
2017-07-04 14:06:09 -05:00
Zack Middleton
4dffc52c1d
Add warnings for animMap and videoMap shader keywords
2017-07-02 17:00:07 -05:00
Zack Middleton
5aa7fb39c2
OpenGL2: Remove two unused cvars and update readme
2017-07-02 16:47:55 -05:00
Zack Middleton
e77153766a
OpenGL2: Draw sun shadows for first person IQM player models
...
This makes IQM have the same behavior as MD3 and MDR.
2017-06-30 14:07:26 -05:00
Zack Middleton
102c79eb49
OpenGL2: Fix black planar projection shadows (cg_shadows 3)
...
Restore MD3 code for cg_shadows 2 and 3 like other model formats.
Fix planar projection shadow deform (cg_shadows 3) to use correct
light direction. I fixed light direction for stencil shadows
(cg_shadows 2) but it's still broken.
2017-06-30 14:06:13 -05:00
Zack Middleton
09a23e0417
OpenGL2: Fix checking r_shadowCascadeZFar pointer instead of value
2017-06-29 21:36:04 -05:00
SmileTheory
e03cdf444c
OpenGL2: Remove SF_VAO_MESH.
2017-06-16 16:52:53 -07:00
Zack Middleton
66fec1b059
Remove unneeded code from OpenGL2's RB_RenderDrawSurfList
...
Make it more similar to OpenGL1.
2017-06-03 14:03:09 -05: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
468da0fabc
OpenGL2: Generate less shaders when r_sunlightMode is disabled.
...
Original patch by https://github.com/inolen in https://github.com/ioquake/ioq3/pull/36
2017-01-26 19:58:28 -08:00
SmileTheory
0238810f34
OpenGL2: Render dlights only when r_lightmap is 0.
...
https://github.com/ioquake/ioq3/issues/246
2017-01-24 20:17:06 -08:00
SmileTheory
294109628d
OpenGL2: Fix bug in generating normal maps for non-square textures.
2016-12-12 15:33:54 -08:00
SmileTheory
06b47ad2a9
GLimp_HaveExtension() -> SDL_GL_ExtensionSupported()
2016-12-10 00:35:17 -08:00
SmileTheory
0672905ef1
OpenGL2: Detect Intel graphics and avoid/use certain operations there.
...
Also use qglCopyTextureSubImage2DEXT instead of qglCopyTextureImage2DEXT.
2016-12-07 22:30:55 -08:00
SmileTheory
730207817e
OpenGL2: Don't bind null framebuffers when not using framebuffers.
2016-12-07 14:13:29 -08:00
SmileTheory
ab8bcf5c5b
OpenGL2: glGetIntegerv -> qglGetIntegerv
...
Thanks Cyrax for pointing this out.
2016-11-25 02:13:03 -08:00
SmileTheory
93066d2e05
OpenGL2: Don't draw viewmodels in portal views.
...
Thanks Cyrax for pointing out, should fix https://bugzilla.icculus.org/show_bug.cgi?id=6363 .
2016-11-25 01:30:21 -08:00
SmileTheory
2349ef038e
OpenGL2: Don't interleave texCoords and lightCoords in tess.
2016-11-25 01:17:46 -08:00
SmileTheory
f7711a8119
OpenGL2: Add more ambient to lightmapped materials.
2016-10-27 02:12:32 -07:00
SmileTheory
8955752457
OpenGL2: Prioritize loading .png images over all others besides .dds.
2016-10-27 02:11:29 -07:00
SmileTheory
ffcec94f50
OpenGL2: Load images with "_nh" suffix as parallax normalmaps.
2016-10-27 02:10:40 -07:00
SmileTheory
89701a1a45
OpenGL2: Faster mipmap generation.
2016-10-21 19:48:02 -07:00
SmileTheory
ba59df8c8c
OpenGL2: Remove check for GL_ARB_texture_non_power_of_two.
...
Core in OpenGL 2.0.
2016-10-21 16:58:42 -07:00
SmileTheory
41ae7815c9
OpenGL2: Remove half float support.
...
Not enough accuracy for textures larger than 1024x1024, such as merged lightmaps.
2016-10-20 20:09:12 -07:00
SmileTheory
863adfcfc2
OpenGL2: Fix fog color.
2016-10-12 23:17:19 -07: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
239f539702
OpenGL2: Non-square merged lightmaps.
2016-10-10 03:06:03 -07:00
SmileTheory
1cfa16674c
OpenGL2: Some tr_image refactoring/cleanup.
2016-09-22 23:04:13 -07:00
SmileTheory
8417c184b4
OpenGL2: Clamp entity lighting to more resemble OpenGL1.
2016-09-14 04:19:46 -07:00
SmileTheory
8749d62bbd
OpenGL2: Remove per fragment tangent space calculation code.
2016-09-14 03:57:51 -07:00
SmileTheory
4faf1008a0
OpenGL2: Remove map color scaling and r_forceSunMapLightScale.
...
Also simplify overbright code in ComputeShaderColors().
2016-09-14 02:59:54 -07:00
Tim Angus
bd062f713a
Merge pull request #216 from tkoeppe/abs
...
[renderergl2/tr_main.c] Use floating-point fabsf() for floating-point values
2016-09-13 10:34:48 +01: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