Hello,

after watching Walters Talk about Component Programming ( link Bellow ) I was quite fond of his pipelining approach. I tried the following and had to realize that this way using UFCS isn't working ( or I do something wrong ).

// I want to write On Canvas1 | draw Shape1 | draw Shape2 | ... in code ( not working ):
canvas1.shape1.shape2.draw()

// Which in essence would be ( working ):
shape2( shape1( canvas1 ) ).draw()

// With these Classes

class Canvas  {
public:
        drawTarget()  {
                // activate as Draw Target
        }
}

class Shape  {
public:
        Shape opCall( Canvas canvas ) {
                canvas.drawTarget() ;
                return this ;
        }

        Shape opCall( Shape otherShape ) {
                otherShape.draw()
                return this ;
        }

        void draw() {
                // Draw yourself Draw calls
        }
}

FYI: Its OpenGL stuff, Canvas would be the Frambuffer or FBOs, and Shape abstrcted draw calls. I have some more building blocks which would nicely fit into this pipelining.

1. Is there any way that I could make my wish syntax work with D's current features ? 2. Is there a reason that this does not work with UFCS, besides "not implemented yet" ?
3. If not 1. Would this be a valid feature requst ?

Thanks for any insights,

Cheers, ParticlePeter !


Walters Talk:
https://www.youtube.com/watch?v=cQkBOCo8UrE

Reply via email to