summaryrefslogtreecommitdiff
path: root/amiga/plotters.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2012-08-05 11:28:48 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2012-08-05 11:28:48 +0100
commitd577a48bb7cce5f88904e86499906ade86809d8a (patch)
tree577bf9093d802823541c0830b242eefbd60cd3a1 /amiga/plotters.c
parent337b0f6724144800b9d226e1f949642ec200b511 (diff)
downloadnetsurf-d577a48bb7cce5f88904e86499906ade86809d8a.tar.gz
netsurf-d577a48bb7cce5f88904e86499906ade86809d8a.tar.bz2
Abstract pen obtain/release and structure so we can add these to a physical browser window's list
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);
}
}