summaryrefslogtreecommitdiff
path: root/amiga/plotters.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/plotters.c')
-rwxr-xr-xamiga/plotters.c44
1 files changed, 24 insertions, 20 deletions
diff --git a/amiga/plotters.c b/amiga/plotters.c
index 348e66e94..34f596474 100755
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -227,6 +227,26 @@ void ami_clearclipreg(struct gui_globals *gg)
gg->rect.MaxY = scrn->Height-1;
}
+ULONG ami_plot_obtain_pen(struct MinList *shared_pens, ULONG colour)
+{
+ ULONG pen = ObtainBestPenA(scrn->ViewPort.ColorMap,
+ (colour & 0x000000ff) << 24,
+ (colour & 0x0000ff00) << 16,
+ (colour & 0x00ff0000) << 8,
+ NULL);
+
+ if(pen == -1) LOG(("WARNING: Cannot allocate pen for ABGR:%lx", colour));
+
+ /* TODO: add allocated pen to list */
+
+ return pen;
+}
+
+void ami_plot_release_pens(struct MinList *shared_pens)
+{
+ /* TODO: trawl through list releasing pens */
+}
+
void ami_plot_setapen(ULONG colour)
{
if(palette_mapped == false) {
@@ -234,16 +254,8 @@ void ami_plot_setapen(ULONG colour)
p96EncodeColor(RGBFF_A8B8G8R8, colour),
TAG_DONE);
} else {
- ULONG pen = ObtainBestPenA(scrn->ViewPort.ColorMap,
- (colour & 0x000000ff) << 24,
- (colour & 0x0000ff00) << 16,
- (colour & 0x00ff0000) << 8,
- NULL);
-
- if(pen == -1) LOG(("WARNING: Cannot allocate pen for ABGR:%lx", colour));
-
- SetAPen(glob->rp, pen);
- /* TODO: Add pen to a list for later release */
+ ULONG pen = ami_plot_obtain_pen(gg->shared_pens, colour);
+ if(pen != -1) SetAPen(glob->rp, pen);
}
}
@@ -254,16 +266,8 @@ void ami_plot_setopen(ULONG colour)
p96EncodeColor(RGBFF_A8B8G8R8, colour),
TAG_DONE);
} else {
- ULONG pen = ObtainBestPenA(scrn->ViewPort.ColorMap,
- (colour & 0x000000ff) << 24,
- (colour & 0x0000ff00) << 16,
- (colour & 0x00ff0000) << 8,
- NULL);
-
- if(pen == -1) LOG(("WARNING: Cannot allocate pen for ABGR:%lx", colour));
-
- SetOPen(glob->rp, pen);
- /* TODO: Add pen to a list for later release */
+ ULONG pen = ami_plot_obtain_pen(gg->shared_pens, colour);
+ if(pen != -1) SetOPen(glob->rp, pen);
}
}