mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-04-10 20:56:44 +00:00
3d:: a system for drawing transparent things, with sorting being the responsibility of HR
This commit is contained in:
parent
d3f17858e9
commit
a2c6a4e8b0
4
hyper.h
4
hyper.h
@ -2090,6 +2090,9 @@ enum class PPR {
|
||||
MINEMARK, ARROW,
|
||||
MOBILE_ARROW,
|
||||
LINE,
|
||||
// in depth tested models transparent surfaces need to be depth sorted by HyperRogue
|
||||
// and set to PPR::TRANSPARENT to draw them after all the opaque ones
|
||||
TRANSPARENT,
|
||||
// no depth testing for SUPERLINE and above
|
||||
SUPERLINE, TEXT, CIRCLE,
|
||||
MAX,
|
||||
@ -2832,6 +2835,7 @@ struct textureinfo {
|
||||
struct drawqueueitem {
|
||||
PPR prio;
|
||||
color_t color;
|
||||
int subprio;
|
||||
virtual void draw() = 0;
|
||||
virtual void draw_back() {}
|
||||
virtual void draw_pre() {}
|
||||
|
@ -1515,6 +1515,12 @@ void drawqueue() {
|
||||
< xintval(ap2.V * xpush0(.1));
|
||||
});
|
||||
|
||||
for(PPR p: {PPR::TRANSPARENT})
|
||||
sort(&ptds[qp0[int(p)]], &ptds[qp[int(p)]],
|
||||
[] (const unique_ptr<drawqueueitem>& p1, const unique_ptr<drawqueueitem>& p2) {
|
||||
return p1->subprio > p2->subprio;
|
||||
});
|
||||
|
||||
profile_stop(3);
|
||||
|
||||
#if CAP_SDL
|
||||
|
Loading…
x
Reference in New Issue
Block a user