summaryrefslogtreecommitdiff
path: root/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx
diff options
context:
space:
mode:
authormaxim nikonov <maxim.nikonov@hqo.co>2026-02-05 15:21:34 +0500
committermaxim nikonov <maxim.nikonov@hqo.co>2026-02-05 15:21:34 +0500
commitdb214d1145e46d527a46d1fc2519548d2c4d23f1 (patch)
treecf0fd9922e4d54f6beb63888f9b28c8e2a787bdf /src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx
parent75fc94d6c71fe686f6dde5b41ad91cba2f6bdd6f (diff)
wip: fork
Diffstat (limited to 'src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx')
-rw-r--r--src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx231
1 files changed, 0 insertions, 231 deletions
diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx
deleted file mode 100644
index e469bb11b..000000000
--- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx
+++ /dev/null
@@ -1,231 +0,0 @@
-//
-// Portable drawing routines for the Fast Light Tool Kit (FLTK).
-//
-// Copyright 1998-2018 by Bill Spitzak and others.
-//
-// This library is free software. Distribution and use rights are outlined in
-// the file "COPYING" which should have been included with this file. If this
-// file is missing or damaged, see the license at:
-//
-// https://www.fltk.org/COPYING.php
-//
-// Please see the following page on how to report bugs and issues:
-//
-// https://www.fltk.org/bugs.php
-//
-
-/**
- \file Fl_GDI_Graphics_Driver_vertex.cxx
-
- \brief Portable drawing code for drawing arbitrary shapes with
- simple 2D transformations, implemented for Windows GDI.
-*/
-
-#include "Fl_GDI_Graphics_Driver.H"
-
-#include <FL/fl_draw.H>
-#include <FL/platform.H>
-#include <FL/math.h>
-
-
-void Fl_GDI_Graphics_Driver::end_points() {
- for (int i=0; i<n; i++) SetPixel(gc_, long_point[i].x, long_point[i].y, fl_RGB());
-}
-
-void Fl_GDI_Graphics_Driver::end_line() {
- if (n < 2) {
- end_points();
- return;
- }
- if (n>1) Polyline(gc_, long_point, n);
-}
-
-void Fl_GDI_Graphics_Driver::end_loop() {
- fixloop();
- if (n>2) transformed_vertex0(float(long_point[0].x), float(long_point[0].y));
- end_line();
-}
-
-void Fl_GDI_Graphics_Driver::end_polygon() {
- fixloop();
- if (n < 3) {
- end_line();
- return;
- }
- if (n>2) {
- SelectObject(gc_, fl_brush());
- Polygon(gc_, long_point, n);
- }
-}
-
-void Fl_GDI_Graphics_Driver::begin_complex_polygon() {
- Fl_Graphics_Driver::begin_complex_polygon();
- numcount = 0;
-}
-
-void Fl_GDI_Graphics_Driver::gap() {
- while (n>gap_+2 && long_point[n-1].x == long_point[gap_].x && long_point[n-1].y == long_point[gap_].y) n--;
- if (n > gap_+2) {
- transformed_vertex0(float(long_point[gap_].x), float(long_point[gap_].y));
- counts[numcount++] = n-gap_;
- gap_ = n;
- } else {
- n = gap_;
- }
-}
-
-void Fl_GDI_Graphics_Driver::end_complex_polygon() {
- gap();
- if (n < 3) {
- end_line();
- return;
- }
- if (n>2) {
- SelectObject(gc_, fl_brush());
- PolyPolygon(gc_, long_point, counts, numcount);
- }
-}
-
-void Fl_GDI_Graphics_Driver::ellipse_unscaled(double xt, double yt, double rx, double ry) {
- int llx = (int)rint(xt-rx);
- int w = (int)rint(xt+rx)-llx;
- int lly = (int)rint(yt-ry);
- int h = (int)rint(yt+ry)-lly;
-
- if (what==POLYGON) {
- SelectObject(gc_, fl_brush());
- Pie(gc_, llx, lly, llx+w, lly+h, 0,0, 0,0);
- } else
- Arc(gc_, llx, lly, llx+w, lly+h, 0,0, 0,0);
-}
-
-#if USE_GDIPLUS
-
-void Fl_GDIplus_Graphics_Driver::transformed_vertex(double xf, double yf) {
- if (!active) return Fl_Scalable_Graphics_Driver::transformed_vertex(xf, yf);
- transformed_vertex0(float(xf) , float(yf) );
-}
-
-void Fl_GDIplus_Graphics_Driver::vertex(double x,double y) {
- if (!active) return Fl_Scalable_Graphics_Driver::vertex(x, y);
- transformed_vertex0(float(x*m.a + y*m.c + m.x) , float(x*m.b + y*m.d + m.y) );
-}
-
-void Fl_GDIplus_Graphics_Driver::end_points() {
- if (!active) return Fl_GDI_Graphics_Driver::end_points();
- for (int i = 0; i < n; i++) point(long_point[i].x, long_point[i].y);
-}
-
-void Fl_GDIplus_Graphics_Driver::end_line() {
- if (!active) return Fl_GDI_Graphics_Driver::end_line();
- if (n < 2) {
- end_points();
- return;
- }
- if (n>1) {
- Gdiplus::GraphicsPath path;
- Gdiplus::Point *gdi2_p = new Gdiplus::Point[n];
- for (int i = 0; i < n; i++) {
- gdi2_p[i] = Gdiplus::Point(long_point[i].x, long_point[i].y);
- }
- path.AddLines(gdi2_p, n);
- delete[] gdi2_p;
- Gdiplus::Graphics graphics_(gc_);
- graphics_.ScaleTransform(scale(), scale());
- graphics_.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- pen_->SetColor(gdiplus_color_);
- graphics_.DrawPath(pen_, &path);
- }
-}
-
-void Fl_GDIplus_Graphics_Driver::end_loop() {
- if (!active) return Fl_GDI_Graphics_Driver::end_loop();
- fixloop();
- if (n >= 2) {
- Gdiplus::GraphicsPath path;
- Gdiplus::Point *gdi2_p = new Gdiplus::Point[n];
- for (int i = 0; i < n; i++) {
- gdi2_p[i] = Gdiplus::Point(long_point[i].x, long_point[i].y);
- }
- path.AddLines(gdi2_p, n);
- path.CloseFigure();
- delete[] gdi2_p;
- Gdiplus::Graphics graphics_(gc_);
- graphics_.ScaleTransform(scale(), scale());
- graphics_.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- pen_->SetColor(gdiplus_color_);
- graphics_.DrawPath(pen_, &path);
- }
-}
-
-void Fl_GDIplus_Graphics_Driver::end_polygon() {
- if (!active) return Fl_GDI_Graphics_Driver::end_polygon();
- fixloop();
- if (n < 3) {
- end_line();
- return;
- }
- if (n>2) {
- Gdiplus::GraphicsPath path;
- Gdiplus::Point *gdi2_p = new Gdiplus::Point[n];
- for (int i = 0; i < n; i++) {
- gdi2_p[i] = Gdiplus::Point(long_point[i].x, long_point[i].y);
- }
- path.AddPolygon(gdi2_p, n);
- delete[] gdi2_p;
- path.CloseFigure();
- Gdiplus::Graphics graphics_(gc_);
- graphics_.ScaleTransform(scale(), scale());
- graphics_.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- brush_->SetColor(gdiplus_color_);
- graphics_.FillPath(brush_, &path);
- }
-}
-
-void Fl_GDIplus_Graphics_Driver::end_complex_polygon() {
- if (!active) return Fl_GDI_Graphics_Driver::end_complex_polygon();
- gap();
- if (n < 3) {
- end_line();
- return;
- }
- if (n>2) {
- Gdiplus::GraphicsPath path;
- Gdiplus::Point *gdi2_p = new Gdiplus::Point[n];
- for (int i = 0; i < n; i++) {
- gdi2_p[i] = Gdiplus::Point(long_point[i].x, long_point[i].y);
- }
- path.AddPolygon(gdi2_p, n);
- delete[] gdi2_p;
- path.CloseFigure();
- Gdiplus::Graphics graphics_(gc_);
- graphics_.ScaleTransform(scale(), scale());
- graphics_.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- brush_->SetColor(gdiplus_color_);
- graphics_.FillPath(brush_, &path);
- }
-}
-
-void Fl_GDIplus_Graphics_Driver::circle(double x, double y, double r) {
- if (!active) return Fl_Scalable_Graphics_Driver::circle(x, y, r);
- double xt = transform_x(x,y);
- double yt = transform_y(x,y);
- double rx = r * (m.c ? sqrt(m.a*m.a+m.c*m.c) : fabs(m.a));
- double ry = r * (m.b ? sqrt(m.b*m.b+m.d*m.d) : fabs(m.d));
- int llx = (int)rint(xt-rx);
- int w = (int)rint(xt+rx)-llx;
- int lly = (int)rint(yt-ry);
- int h = (int)rint(yt+ry)-lly;
- Gdiplus::Graphics graphics_(gc_);
- graphics_.ScaleTransform(scale(), scale());
- graphics_.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- if (what==POLYGON) {
- brush_->SetColor(gdiplus_color_);
- graphics_.FillPie(brush_, llx, lly, w, h, 0, 360);
- } else {
- pen_->SetColor(gdiplus_color_);
- graphics_.DrawArc(pen_, llx, lly, w, h, 0, 360);
- }
-}
-#endif
-