[aquaria] THE GUILY (was Unofficial PSP port)

Alec Holowka zaphire at gmail.com
Thu Jun 17 10:31:24 EDT 2010


dark layer uses a framebuffer to dark areas of the screen (e.g. in the
abyss)

however, there should be a version in the code that doesn't use a
framebuffer...

2010/6/17 Andrea Palmatè <andrea at amigasoft.net>

>  Here it is The Guilty..
>
>         if (darkLayer.isUsed() )
>         {
>             /*
>             if (i == darkLayer.getLayer())
>             {
>                 darkLayer.preRender();
>             }
>             */
>             if (i == darkLayer.getRenderLayer())
>             {
>                 darkLayer.render();
>             }
>
>             if (i == darkLayer.getLayer() && startLayer != i)
>             {
>                 continue;
>             }
>         }
>
> wrapping it into a fantastic #if 0 (it will be #ifndef __amigaos4__) allow
> the game to be playable in all ist charm! ;)
> Now my question is.. what is used for since if i remove it all seems like
> on Linux version?
>
> Il 17/06/2010 13.50, Andrew Church ha scritto:
>
>  I don't understand the strange effect that is present on the game (see
> my second screenshot). It seems like there is a "layer" on top of the
> game screen that avoid to show the game..
>
>
>  There are some "overlay" layers used for things like fadeouts and the
> "red-out" effect when Naija is low on health.  It's always possible that
> your GL implementation isn't processing alpha correctly for those quads.
>
>
>
>  Beyond that, you'll probably have to dive into the actual rendering code
> and insert some test GL calls to locate the problem.
>
>
>
>  But where? i'm trying to follow the flow that starts to ::addTexture but
> is not so simply..
>
>
>  The basic rendering flow goes like this:
>
> Core::render() {  // Called from main loop
>    for (r = each render layer) {  // See "enum Layers" in DSQ.h
>       for (pass = each pass in r) {  // Some layers have multiple passes
>          for (robj = each RenderObject in r) {
>             robj->render() {  // May be overridden, e.g. by Quad
>                if (this RenderObject is visible) {
>                   this->onRender();  // Virtual method for actual rendering
>                }
>             }
>          }
>       }
>    }
> }
>
> Most RenderObjects are also Quads, so you may want to drop some debugging
> code into Quad::onRender() and see what's going on.  You could also try
> disabling specific layers in Core::render() -- after this line:
>     int i = renderObjectLayerOrder[c];
> add something like
>     if (i == 67) continue;  // 67 == LR_OVERLAY (count lines from LR_ZERO)
> to disable a layer and see how that changes the output.
>
>   --Andrew Church
>     achurch at achurch.org
>     http://achurch.org/
> _______________________________________________
> aquaria mailing listaquaria at icculus.orghttp://icculus.org/mailman/listinfo/aquaria
>
>
> __________ Informazione NOD32 4812 (20100128) __________
>
> Questo messaggio  è stato controllato dal Sistema Antivirus NOD32http://www.nod32.it
>
>
>
>
>
> --
>
> *Andrea Palmatè*
> http://www.amigasoft.net
>
> _______________________________________________
> aquaria mailing list
> aquaria at icculus.org
> http://icculus.org/mailman/listinfo/aquaria
>
>


-- 
Alec Holowka
www.infiniteammo.ca
www.bit-blot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/aquaria/attachments/20100617/70bf235c/attachment.htm>


More information about the aquaria mailing list