[Done] Rendering opaque and transparent separately

If you found a bug in our library or on our website, please report it in this section. In this forum you can also make concrete suggestions or feature requests.

Moderators: CEGUI MVP, CEGUI Team

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sat Sep 03, 2016 10:28

Yea I know that, but I assumed the GeometryBuffers were not exposed, in which case it really would not matter. They are though, so we need to handle this.

We are hitting problems with ABI compatibility now fo shizzles, and I think we already do when we overloaded draw(). Would a move to v0 be a big change for you?
CrazyEddie: "I don't like GUIs"

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sat Sep 03, 2016 10:31

@Ident: Y should a move to branch "v0" require anything from @niello? The only problem I see with it is that it's perhaps less stable.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sat Sep 03, 2016 10:32

YaronCT wrote:@Ident: Y should a move to branch "v0" require anything from @niello? The only problem I see with it is that it's perhaps less stable.

The reason I asked niello is because I would prefer not to add the changes in v0-8 at all if we can move them to v0.
CrazyEddie: "I don't like GUIs"

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sat Sep 03, 2016 10:36

@Ident: I get that, but y would he refuse..

niello
Quite a regular
Quite a regular
Posts: 76
Joined: Tue May 24, 2011 05:54
Contact:

Re: Rendering opaque and transparent separately

Postby niello » Sat Sep 03, 2016 12:33

I can switch to v0 if it is not too different from v0-8. I just finished more-than-year rewriting of all my low-level graphics code and really don't want to reimplement my CEGUI renderer etc again right now. I still hope to write some actual game code until I get too old. :)

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sat Sep 03, 2016 12:37

@niello: Branch "v0" is fully API compatible with branch "v0-8", so (theoretically) u shouldn't need to change anything.

niello
Quite a regular
Quite a regular
Posts: 76
Joined: Tue May 24, 2011 05:54
Contact:

Re: Rendering opaque and transparent separately

Postby niello » Sat Sep 03, 2016 12:39

If so, I am completely OK with moving to it. I am happy with my local CEGUI version right now, all works as I want, but if you make some changes on drawMode I will get them from v0.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sat Sep 03, 2016 13:00

I am gonna implement this properly in v0 now.
CrazyEddie: "I don't like GUIs"

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sun Sep 04, 2016 21:06

@niello, try this which is based on v0: https://bitbucket.org/cegui/cegui/commi ... cd822b4a80


I am afraid this now breaks API too. Yaron, any idea what the rules on API breakage for protected functions and changing signature of them are? Especially if it is a function the subclasses have to implement and the class can be derived from?
CrazyEddie: "I don't like GUIs"

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sun Sep 04, 2016 21:48

@Ident: There's no need for "rules" - it's common sense.. ABI compatible means it'll work the same without rebuild, API compatible means it'll work the same with rebuild, that's all..

So, the answer is no, you're not allowed.. Tell me the names of the functions and we'll try to think of a work-around.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sun Sep 04, 2016 22:00

YaronCT wrote:So, the answer is no, you're not allowed.. Tell me the names of the functions and we'll try to think of a work-around.

The question though is, does it need to work the same if you rebuild for USING the API as in calling the functions or also for DERIVING from its classes, because if you say the latter is the case, well, then you could not add ANY function ever because someone might have added it in a subclass and then that wouldnt compile anymore, right? ;) It is not all black and white if you ask me and we just need to define where we draw the line or it will mean you cant do ANYTHING in v0 that you cant do in v0-8.
CrazyEddie: "I don't like GUIs"

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sun Sep 04, 2016 22:01

The functions are the draw functions in RenderingSurface, RenderingTarget, and GeometryBuffer. Especially the last one will definitely be derived in every renderer.
CrazyEddie: "I don't like GUIs"

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sun Sep 04, 2016 22:12

Ident wrote:
YaronCT wrote:So, the answer is no, you're not allowed.. Tell me the names of the functions and we'll try to think of a work-around.

The question though is, does it need to work the same if you rebuild for USING the API as in calling the functions or also for DERIVING from its classes, because if you say the latter is the case, well, then you could not add ANY function ever because someone might have added it in a subclass and then that wouldnt compile anymore, right? ;) It is not all black and white if you ask me and we just need to define where we draw the line or it will mean you cant do ANYTHING in v0 that you cant do in v0-8.


Y wouldn't it compile anymore?

YaronCT
CEGUI Team
Posts: 448
Joined: Fri Jun 19, 2015 12:18
Location: Kiryat-Bialik, Israel

Re: Rendering opaque and transparent separately

Postby YaronCT » Sun Sep 04, 2016 22:29

@Ident: Perhaps what u can do is add the new "draw" method and leave the old one too. The default implementation of the new 1 will simply call the old one, ignoring the draw-mode (and perhaps do "assert(drawModeMask == DrawModeMaskAll)").

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Rendering opaque and transparent separately

Postby Ident » Sun Sep 04, 2016 22:32

YaronCT wrote:
Ident wrote:
YaronCT wrote:So, the answer is no, you're not allowed.. Tell me the names of the functions and we'll try to think of a work-around.

The question though is, does it need to work the same if you rebuild for USING the API as in calling the functions or also for DERIVING from its classes, because if you say the latter is the case, well, then you could not add ANY function ever because someone might have added it in a subclass and then that wouldnt compile anymore, right? ;) It is not all black and white if you ask me and we just need to define where we draw the line or it will mean you cant do ANYTHING in v0 that you cant do in v0-8.


Y wouldn't it compile anymore?

Oh well I guess you are right about already existing user-functions, they will just be overriding the base function in the virtual case but then you at least can be pretty sure they wont work as expected, as it is unlikely the user does the expected thing there.

But for member variables you definitely clash.
CrazyEddie: "I don't like GUIs"


Return to “Bug Reports, Suggestions, Feature Requests”

Who is online

Users browsing this forum: No registered users and 12 guests