[quake3-bugzilla] [Bug 4358] Assorted renderer changes patch (VBO, GLSL, "modern" techniques etc.)

bugzilla-daemon at icculus.org bugzilla-daemon at icculus.org
Sat Mar 10 14:38:59 EST 2012


https://bugzilla.icculus.org/show_bug.cgi?id=4358

q3urt.undead at gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |q3urt.undead at gmail.com

--- Comment #66 from q3urt.undead at gmail.com 2012-03-10 14:38:54 EST ---
Hi James,

I think there is a problem with this patch and RAVENMD4.  OA 0.8.8 defines
RAVENMD4 so when you use this patch, it gives warnings/errors about data type
mismatches.

I merged OpenArena 0.8.8 client/server with r2224 of ioquake3 and split the OA
changes off into a separate renderer.  I made a branch of that which includes
your opengl2 renderer.  Do you have any interest in helping get this working in
OA?  I think there is interest in the OA community with having another
renderer.  In the end, this will probably result in a third renderer which is a
merge of yours and the OA since it has features not found in yours.

Thanks for your patch as it applies cleanly against r2224.  I made a few
changes though that I think upstream may want to consider.  One of the problems
with the modular renderer is that the files all reference common headers like
tr_local.h.  In practice, each renderer will have its own tr_local.h.  It's
difficult to reuse the common *.c files when they all reference their own
tr_local.h

I noticed you made a copy of all the files except for the tr_image_*.c files
which you modified to remove the tr_local.h references.  I ran into the same
thing with the OA renderer which changes even less files.  Unless I modify the
code/renderer files, I have to dump them into code/renderer_oa even though OA
doesn't modify them.

The way I fixed this was to introduce a tr_config.h in each renderer and to
modify all of the renderer files to use TR_CONFIG_H and TR_LOCAL_H etc.  It's
then passed in as a compiler option in the Makefile to define TR_CONFIG_H to be
the correct location which in turn defines all of the other TR_*_H locations.

As you can see from the OA renderer which touches less files, there are only a
handful of files needed in the code/renderer_oa directory.  I was able to
remove a few files from your code/renderergl2 as well: tr_font.c, tr_image_*.c,
tr_noise.c and tr_shadows.c.  Long term, I think this will be a lot easier to
maintain renderers.  After I made those changes, your patch only touches
Makefile, q_math.c and code/renderergl2/*.

The changes are at:

https://github.com/undeadzy/openarena_engine

and the branch is called opengl2_renderer.

-- 
Configure bugmail: https://bugzilla.icculus.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the quake3-bugzilla mailing list