Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Window {
- private Framebuffer* fb;
- private size_t startX;
- private size_t startY;
- private size_t _length;
- private size_t _height;
- private uint* _canvas;
- @property size_t length() { return _length; }
- @property size_t height() { return _height; }
- @property uint* canvas() { return _canvas; }
- this(Framebuffer* f, size_t sx, size_t sy, size_t l, size_t h) {
- fb = f;
- startX = sx;
- startY = sy;
- _length = l;
- _height = h;
- _canvas = newArray!(uint)(length * height);
- }
- ~this() {
- if (_canvas != null) {
- delArray(_canvas);
- }
- }
- void draw() {
- // Title bar.
- auto barStartY = startY - fontHeight;
- foreach (x; 0.._length) {
- foreach (y; 0..fontHeight) {
- fb.putPixel(startX + x, barStartY + y, windowBorder);
- }
- }
- plotString(fb, startX, barStartY, "Window", 0xFFFFFF);
- // Contents.
- foreach (x; 0.._length) {
- foreach (y; 0.._height) {
- fb.putPixel(startX + x, startY + y, canvas[x + length * y]);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement