mirror of https://github.com/OpenRCT2/OpenRCT2.git
Use ScreenLine on gfx_draw_line_software
This commit is contained in:
parent
85c59b88be
commit
cd9873a78d
|
@ -104,7 +104,7 @@ public:
|
|||
void Clear(uint8_t paletteIndex) override;
|
||||
void FillRect(uint32_t colour, int32_t x, int32_t y, int32_t w, int32_t h) override;
|
||||
void FilterRect(FilterPaletteID palette, int32_t left, int32_t top, int32_t right, int32_t bottom) override;
|
||||
void DrawLine(uint32_t colour, int32_t x1, int32_t y1, int32_t x2, int32_t y2) override;
|
||||
void DrawLine(uint32_t colour, const ScreenLine& line) override;
|
||||
void DrawSprite(uint32_t image, int32_t x, int32_t y, uint32_t tertiaryColour) override;
|
||||
void DrawSpriteRawMasked(int32_t x, int32_t y, uint32_t maskImage, uint32_t colourImage) override;
|
||||
void DrawSpriteSolid(uint32_t image, int32_t x, int32_t y, uint8_t colour) override;
|
||||
|
@ -165,7 +165,7 @@ public:
|
|||
int32_t pixelX = xPixelOffset % dpi->width;
|
||||
int32_t pixelY = (xPixelOffset / dpi->width) % dpi->height;
|
||||
|
||||
_drawingContext->DrawLine(patternPixel, pixelX, pixelY, pixelX + 1, pixelY + 1);
|
||||
_drawingContext->DrawLine(patternPixel, { { pixelX, pixelY }, { pixelX + 1, pixelY + 1 } });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -598,17 +598,12 @@ void OpenGLDrawingContext::FilterRect(FilterPaletteID palette, int32_t left, int
|
|||
command.depth = _drawCount++;
|
||||
}
|
||||
|
||||
void OpenGLDrawingContext::DrawLine(uint32_t colour, int32_t x1, int32_t y1, int32_t x2, int32_t y2)
|
||||
void OpenGLDrawingContext::DrawLine(uint32_t colour, const ScreenLine& line)
|
||||
{
|
||||
x1 += _offsetX;
|
||||
y1 += _offsetY;
|
||||
x2 += _offsetX;
|
||||
y2 += _offsetY;
|
||||
|
||||
DrawLineCommand& command = _commandBuffers.lines.allocate();
|
||||
|
||||
command.clip = { _clipLeft, _clipTop, _clipRight, _clipBottom };
|
||||
command.bounds = { x1, y1, x2, y2 };
|
||||
command.bounds = { line.GetX1() + _offsetX, line.GetY1() + _offsetY, line.GetX2() + _offsetX, line.GetY2() + _offsetY };
|
||||
command.colour = colour & 0xFF;
|
||||
command.depth = _drawCount++;
|
||||
}
|
||||
|
|
|
@ -688,7 +688,7 @@ void gfx_draw_pickedup_peep(rct_drawpixelinfo* dpi);
|
|||
|
||||
// line
|
||||
void gfx_draw_line(rct_drawpixelinfo* dpi, const ScreenLine& line, int32_t colour);
|
||||
void gfx_draw_line_software(rct_drawpixelinfo* dpi, int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t colour);
|
||||
void gfx_draw_line_software(rct_drawpixelinfo* dpi, const ScreenLine& line, int32_t colour);
|
||||
void gfx_draw_dashed_line(
|
||||
rct_drawpixelinfo* dpi, const ScreenLine& screenLine, const int32_t dashedLineSegmentLength, const int32_t color);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace OpenRCT2::Drawing
|
|||
virtual void Clear(uint8_t paletteIndex) abstract;
|
||||
virtual void FillRect(uint32_t colour, int32_t left, int32_t top, int32_t right, int32_t bottom) abstract;
|
||||
virtual void FilterRect(FilterPaletteID palette, int32_t left, int32_t top, int32_t right, int32_t bottom) abstract;
|
||||
virtual void DrawLine(uint32_t colour, int32_t x1, int32_t y1, int32_t x2, int32_t y2) abstract;
|
||||
virtual void DrawLine(uint32_t colour, const ScreenLine& line) abstract;
|
||||
virtual void DrawSprite(uint32_t image, int32_t x, int32_t y, uint32_t tertiaryColour) abstract;
|
||||
virtual void DrawSpriteRawMasked(int32_t x, int32_t y, uint32_t maskImage, uint32_t colourImage) abstract;
|
||||
virtual void DrawSpriteSolid(uint32_t image, int32_t x, int32_t y, uint8_t colour) abstract;
|
||||
|
|
|
@ -72,8 +72,13 @@ static void gfx_draw_line_on_buffer(rct_drawpixelinfo* dpi, char colour, int32_t
|
|||
* y2 (dx)
|
||||
* colour (ebp)
|
||||
*/
|
||||
void gfx_draw_line_software(rct_drawpixelinfo* dpi, int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t colour)
|
||||
|
||||
void gfx_draw_line_software(rct_drawpixelinfo* dpi, const ScreenLine& line, int32_t colour)
|
||||
{
|
||||
int32_t x1 = line.GetX1();
|
||||
int32_t x2 = line.GetX2();
|
||||
int32_t y1 = line.GetY1();
|
||||
int32_t y2 = line.GetY2();
|
||||
// Check to make sure the line is within the drawing area
|
||||
if ((x1 < dpi->x) && (x2 < dpi->x))
|
||||
{
|
||||
|
|
|
@ -208,7 +208,7 @@ void gfx_draw_line(rct_drawpixelinfo* dpi, const ScreenLine& line, int32_t colou
|
|||
if (drawingEngine != nullptr)
|
||||
{
|
||||
IDrawingContext* dc = drawingEngine->GetDrawingContext(dpi);
|
||||
dc->DrawLine(colour, line.GetX1(), line.GetY1(), line.GetX2(), line.GetY2());
|
||||
dc->DrawLine(colour, line);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ void gfx_draw_dashed_line(
|
|||
{
|
||||
x = screenLine.GetX1() + dxPrecise * i * 2 / precisionFactor;
|
||||
y = screenLine.GetY1() + dyPrecise * i * 2 / precisionFactor;
|
||||
dc->DrawLine(color, x, y, x + dxPrecise / precisionFactor, y + dyPrecise / precisionFactor);
|
||||
dc->DrawLine(color, { { x, y }, { x + dxPrecise / precisionFactor, y + dyPrecise / precisionFactor } });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -721,9 +721,9 @@ void X8DrawingContext::FilterRect(FilterPaletteID palette, int32_t left, int32_t
|
|||
}
|
||||
}
|
||||
|
||||
void X8DrawingContext::DrawLine(uint32_t colour, int32_t x1, int32_t y1, int32_t x2, int32_t y2)
|
||||
void X8DrawingContext::DrawLine(uint32_t colour, const ScreenLine& line)
|
||||
{
|
||||
gfx_draw_line_software(_dpi, x1, y1, x2, y2, colour);
|
||||
gfx_draw_line_software(_dpi, line, colour);
|
||||
}
|
||||
|
||||
void X8DrawingContext::DrawSprite(uint32_t image, int32_t x, int32_t y, uint32_t tertiaryColour)
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace OpenRCT2
|
|||
void Clear(uint8_t paletteIndex) override;
|
||||
void FillRect(uint32_t colour, int32_t x, int32_t y, int32_t w, int32_t h) override;
|
||||
void FilterRect(FilterPaletteID palette, int32_t left, int32_t top, int32_t right, int32_t bottom) override;
|
||||
void DrawLine(uint32_t colour, int32_t x1, int32_t y1, int32_t x2, int32_t y2) override;
|
||||
void DrawLine(uint32_t colour, const ScreenLine& line) override;
|
||||
void DrawSprite(uint32_t image, int32_t x, int32_t y, uint32_t tertiaryColour) override;
|
||||
void DrawSpriteRawMasked(int32_t x, int32_t y, uint32_t maskImage, uint32_t colourImage) override;
|
||||
void DrawSpriteSolid(uint32_t image, int32_t x, int32_t y, uint8_t colour) override;
|
||||
|
|
Loading…
Reference in New Issue