aboutsummaryrefslogtreecommitdiff
path: root/demos/graphics_experiments/1
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-11-29 15:23:01 +0800
committercrupest <crupest@outlook.com>2021-11-29 15:23:01 +0800
commit1bbd3e0c1817774335c97f4c59e0310b61949ece (patch)
tree76c4177c3f4891a14c5b995533363cd3c18808b0 /demos/graphics_experiments/1
parent80096172330bc0148320384f4b01f3ea62e52c92 (diff)
downloadcru-1bbd3e0c1817774335c97f4c59e0310b61949ece.tar.gz
cru-1bbd3e0c1817774335c97f4c59e0310b61949ece.tar.bz2
cru-1bbd3e0c1817774335c97f4c59e0310b61949ece.zip
...
Diffstat (limited to 'demos/graphics_experiments/1')
-rw-r--r--demos/graphics_experiments/1/main.cpp76
1 files changed, 0 insertions, 76 deletions
diff --git a/demos/graphics_experiments/1/main.cpp b/demos/graphics_experiments/1/main.cpp
deleted file mode 100644
index 926557e7..00000000
--- a/demos/graphics_experiments/1/main.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "cru/platform/Color.hpp"
-#include "cru/platform/bootstrap/Bootstrap.hpp"
-#include "cru/platform/graphics/Factory.hpp"
-#include "cru/platform/graphics/Painter.hpp"
-#include "cru/platform/gui/UiApplication.hpp"
-#include "cru/platform/gui/Window.hpp"
-
-#include <functional>
-
-void BresenhamDrawLine(int x1, int y1, int x2, int y2,
- const std::function<void(int, int)>& draw_pixel) {
- // calculating range for line between start and end point
- int dx = x2 - x1;
- int dy = y2 - y1;
-
- int x = x1;
- int y = y1;
-
- // this is the case when slope(m) < 1
- if (abs(dx) > abs(dy)) {
- draw_pixel(x, y); // this putpixel is for very first pixel of the line
- int pk = (2 * abs(dy)) - abs(dx);
-
- for (int i = 0; i < abs(dx); i++) {
- x = x + 1;
- if (pk < 0)
- pk = pk + (2 * abs(dy));
- else {
- y = y + 1;
- pk = pk + (2 * abs(dy)) - (2 * abs(dx));
- }
- draw_pixel(x, y);
- }
- } else {
- // this is the case when slope is greater than or equal to 1 i.e: m>=1
- draw_pixel(x, y); // this putpixel is for very first pixel of the line
- int pk = (2 * abs(dx)) - abs(dy);
-
- for (int i = 0; i < abs(dy); i++) {
- y = y + 1;
- if (pk < 0)
- pk = pk + (2 * abs(dx));
- else {
- x = x + 1;
- pk = pk + (2 * abs(dx)) - (2 * abs(dy));
- }
-
- draw_pixel(x, y); // display pixel at coordinate (x, y)
- }
- }
-}
-
-int main() {
- auto application = cru::platform::bootstrap::CreateUiApplication();
- auto window = application->CreateWindow();
-
- auto brush = application->GetGraphicsFactory()->CreateSolidColorBrush(
- cru::platform::colors::black);
-
- window->SetClientSize(cru::platform::Size(400, 200));
-
- window->PaintEvent()->AddHandler([window, &brush](nullptr_t) {
- auto painter = window->BeginPaint();
- auto draw_pixel = [&painter, &brush](int x, int y) {
- painter->FillRectangle({static_cast<float>(x) - 0.5f,
- static_cast<float>(y) - 0.5f, 1.0f, 1.0f},
- brush.get());
- };
- BresenhamDrawLine(50, 50, 100, 200, draw_pixel);
- BresenhamDrawLine(50, 50, 200, 100, draw_pixel);
- });
-
- window->SetVisibility(cru::platform::gui::WindowVisibilityType::Show);
-
- return application->Run();
-}