29 #include <objgfx40/objgfx40.h>
30 #include <objgfx40/defpal.inc>
48 biosCall(0x10, 0x4F02, mode, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0);
55 pal =
new ogRGBA8[256];
56 attributes =
new ogAttributes();
66 biosCall(0x10, 0x4F01, 0x0, mode, 0x0, 0x0, 0x0, 0x1120, 0x0);
75 biosCall(0x10, 0x4F00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1100, 0x0);
82 if ((_xRes == 320) && (_yRes == 200) && (_BPP == 8))
90 for (mode = 0x100; mode < 0x1FF; mode++) {
101 uint32_t size = 0x0, count = 0x0, i = 0x0;
112 redFieldPosition = 0;
113 greenFieldPosition = 0;
114 blueFieldPosition = 0;
115 alphaFieldPosition = 0;
120 alphaFieldPosition = 0;
142 bytesPerPix = (BPP + 7) >> 3;
144 redFieldPosition =
modeInfo->redFieldPosition;
145 greenFieldPosition =
modeInfo->greenFieldPosition;
146 blueFieldPosition =
modeInfo->blueFieldPosition;
147 alphaFieldPosition =
modeInfo->alphaFieldPosition;
149 if (bytesPerPix == 4) {
151 while ((alphaFieldPosition == redFieldPosition) || (alphaFieldPosition == greenFieldPosition) || (alphaFieldPosition == blueFieldPosition))
152 alphaFieldPosition += 8;
155 redShifter = 8 -
modeInfo->redMaskSize;
156 greenShifter = 8 -
modeInfo->greenMaskSize;
157 blueShifter = 8 -
modeInfo->blueMaskSize;
158 alphaShifter = 8 -
modeInfo->alphaMaskSize;
161 alphaMasker = ~(OG_MASKS[
modeInfo->alphaMaskSize] << alphaFieldPosition);
168 for (i = 0x0; i < ((size) / 4096); i++) {
170 kpanic(
"Error: vmm_remapPage failed\n");
174 dataState = ogAliasing;
178 if ((lineOfs !=
NULL) && (lSize != 0))
187 for (count = 1; count < yRes; count++)
188 lineOfs[count] = lineOfs[count - 1] + xRes;
190 if (1 == bytesPerPix) {
191 pixFmtID = 0x08080808;
194 pixFmtID = (redFieldPosition) | (greenFieldPosition << 8) | (blueFieldPosition << 16) | (alphaFieldPosition << 24);
197 ogSetAntiAliasing(BPP > 8);
199 pal =
new ogRGBA8[256];
206 ogSurface::ogSetPalette(newPal);
212 if (bytesPerPix != 1)
215 for (
uint32_t c = 0; c < 256; c++) {
224 ogSetLastError(ogNoAliasing);
234 mode =
FindMode(_xRes, _yRes, _pixFormat.BPP);
235 if ((mode == 0) && ((_pixFormat.BPP == 24) || (_pixFormat.BPP == 32))) {
236 if (_pixFormat.BPP == 24)
240 mode =
FindMode(_xRes, _yRes, _pixFormat.BPP);
249 ogSetLastError(ogNoCloning);
254 ogSurface::ogCopyPalette(SrcObject);
261 if ((result = ogSurface::ogLoadPalette(palfile)) ==
true)
269 ogSurface::ogSetPalette(colour, red, green, blue);
282 ogSurface::ogSetPalette(colour, red, green, blue, alpha);