mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2026-01-05 00:50:53 +00:00
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@151 b9cfdab3-6d41-4d17-bbe4-086880011989
407 lines
11 KiB
C
407 lines
11 KiB
C
/* $Id $ */
|
|
|
|
#include "mac.h"
|
|
#include "quickDraw.h"
|
|
#include <dlfcn.h>
|
|
|
|
void quickDrawBackendUserDataInit(mac_backend_userdata ud) {
|
|
void* carbonLib = dlopen("CarbonLib", RTLD_LAZY | RTLD_LOCAL);
|
|
|
|
ud = malloc(sizeof(struct mac_backend_userdata_t));
|
|
|
|
#define LOAD_QD_FUNC(name) ud->name = dlsym(carbonLib, #name)
|
|
|
|
LOAD_QD_FUNC(GetPortCustomXFerProc);
|
|
LOAD_QD_FUNC(SetPortCustomXFerProc);
|
|
LOAD_QD_FUNC(OpenCursorComponent);
|
|
LOAD_QD_FUNC(CloseCursorComponent);
|
|
LOAD_QD_FUNC(SetCursorComponent);
|
|
LOAD_QD_FUNC(CursorComponentChanged);
|
|
LOAD_QD_FUNC(CursorComponentSetData);
|
|
LOAD_QD_FUNC(IsValidPort);
|
|
LOAD_QD_FUNC(GetPortPixMap);
|
|
LOAD_QD_FUNC(GetPortBitMapForCopyBits);
|
|
LOAD_QD_FUNC(GetPortBounds);
|
|
LOAD_QD_FUNC(GetPortForeColor);
|
|
LOAD_QD_FUNC(GetPortBackColor);
|
|
LOAD_QD_FUNC(GetPortOpColor);
|
|
LOAD_QD_FUNC(GetPortHiliteColor);
|
|
LOAD_QD_FUNC(GetPortGrafProcs);
|
|
LOAD_QD_FUNC(GetPortTextFont);
|
|
LOAD_QD_FUNC(GetPortTextFace);
|
|
LOAD_QD_FUNC(GetPortTextMode);
|
|
LOAD_QD_FUNC(GetPortTextSize);
|
|
LOAD_QD_FUNC(GetPortChExtra);
|
|
LOAD_QD_FUNC(GetPortFracHPenLocation);
|
|
LOAD_QD_FUNC(GetPortSpExtra);
|
|
LOAD_QD_FUNC(GetPortPenVisibility);
|
|
LOAD_QD_FUNC(GetPortVisibleRegion);
|
|
LOAD_QD_FUNC(GetPortClipRegion);
|
|
LOAD_QD_FUNC(GetPortBackPixPat);
|
|
LOAD_QD_FUNC(GetPortPenPixPat);
|
|
LOAD_QD_FUNC(GetPortFillPixPat);
|
|
LOAD_QD_FUNC(GetPortPenSize);
|
|
LOAD_QD_FUNC(GetPortPenMode);
|
|
LOAD_QD_FUNC(GetPortPenLocation);
|
|
LOAD_QD_FUNC(IsPortRegionBeingDefined);
|
|
LOAD_QD_FUNC(IsPortPictureBeingDefined);
|
|
LOAD_QD_FUNC(IsPortPolyBeingDefined);
|
|
LOAD_QD_FUNC(IsPortOffscreen);
|
|
LOAD_QD_FUNC(IsPortColor);
|
|
LOAD_QD_FUNC(SetPortBounds);
|
|
LOAD_QD_FUNC(SetPortOpColor);
|
|
LOAD_QD_FUNC(SetPortGrafProcs);
|
|
LOAD_QD_FUNC(SetPortVisibleRegion);
|
|
LOAD_QD_FUNC(SetPortClipRegion);
|
|
LOAD_QD_FUNC(SetPortPenPixPat);
|
|
LOAD_QD_FUNC(SetPortFillPixPat);
|
|
LOAD_QD_FUNC(SetPortBackPixPat);
|
|
LOAD_QD_FUNC(SetPortPenSize);
|
|
LOAD_QD_FUNC(SetPortPenMode);
|
|
LOAD_QD_FUNC(SetPortFracHPenLocation);
|
|
LOAD_QD_FUNC(GetPixBounds);
|
|
LOAD_QD_FUNC(GetPixDepth);
|
|
LOAD_QD_FUNC(GetQDGlobalsRandomSeed);
|
|
LOAD_QD_FUNC(GetQDGlobalsScreenBits);
|
|
LOAD_QD_FUNC(GetQDGlobalsArrow);
|
|
LOAD_QD_FUNC(GetQDGlobalsDarkGray);
|
|
LOAD_QD_FUNC(GetQDGlobalsLightGray);
|
|
LOAD_QD_FUNC(GetQDGlobalsGray);
|
|
LOAD_QD_FUNC(GetQDGlobalsBlack);
|
|
LOAD_QD_FUNC(GetQDGlobalsWhite);
|
|
LOAD_QD_FUNC(GetQDGlobalsThePort);
|
|
LOAD_QD_FUNC(SetQDGlobalsRandomSeed);
|
|
LOAD_QD_FUNC(SetQDGlobalsArrow);
|
|
LOAD_QD_FUNC(GetRegionBounds);
|
|
LOAD_QD_FUNC(IsRegionRectangular);
|
|
LOAD_QD_FUNC(CreateNewPort);
|
|
LOAD_QD_FUNC(DisposePort);
|
|
LOAD_QD_FUNC(SetQDError);
|
|
LOAD_QD_FUNC(QDIsPortBuffered);
|
|
LOAD_QD_FUNC(QDIsPortBufferDirty);
|
|
LOAD_QD_FUNC(QDFlushPortBuffer);
|
|
LOAD_QD_FUNC(QDGetDirtyRegion);
|
|
LOAD_QD_FUNC(QDSetDirtyRegion);
|
|
LOAD_QD_FUNC(CreateCGContextForPort);
|
|
LOAD_QD_FUNC(ClipCGContextToRegion);
|
|
LOAD_QD_FUNC(SyncCGContextOriginWithPort);
|
|
LOAD_QD_FUNC(CreateNewPortForCGDisplayID);
|
|
LOAD_QD_FUNC(QDDisplayWaitCursor);
|
|
LOAD_QD_FUNC(QDSetPatternOrigin);
|
|
LOAD_QD_FUNC(QDGetPatternOrigin);
|
|
LOAD_QD_FUNC(LMGetScrVRes);
|
|
LOAD_QD_FUNC(LMSetScrVRes);
|
|
LOAD_QD_FUNC(LMGetScrHRes);
|
|
LOAD_QD_FUNC(LMSetScrHRes);
|
|
LOAD_QD_FUNC(LMGetMainDevice);
|
|
LOAD_QD_FUNC(LMSetMainDevice);
|
|
LOAD_QD_FUNC(LMGetDeviceList);
|
|
LOAD_QD_FUNC(LMSetDeviceList);
|
|
LOAD_QD_FUNC(LMGetQDColors);
|
|
LOAD_QD_FUNC(LMSetQDColors);
|
|
LOAD_QD_FUNC(LMGetWidthListHand);
|
|
LOAD_QD_FUNC(LMSetWidthListHand);
|
|
LOAD_QD_FUNC(LMGetHiliteMode);
|
|
LOAD_QD_FUNC(LMSetHiliteMode);
|
|
LOAD_QD_FUNC(LMGetWidthPtr);
|
|
LOAD_QD_FUNC(LMSetWidthPtr);
|
|
LOAD_QD_FUNC(LMGetWidthTabHandle);
|
|
LOAD_QD_FUNC(LMSetWidthTabHandle);
|
|
LOAD_QD_FUNC(LMGetLastSPExtra);
|
|
LOAD_QD_FUNC(LMSetLastSPExtra);
|
|
LOAD_QD_FUNC(LMGetLastFOND);
|
|
LOAD_QD_FUNC(LMSetLastFOND);
|
|
LOAD_QD_FUNC(LMGetFractEnable);
|
|
LOAD_QD_FUNC(LMSetFractEnable);
|
|
LOAD_QD_FUNC(LMGetTheGDevice);
|
|
LOAD_QD_FUNC(LMSetTheGDevice);
|
|
LOAD_QD_FUNC(LMGetHiliteRGB);
|
|
LOAD_QD_FUNC(LMSetHiliteRGB);
|
|
LOAD_QD_FUNC(LMGetCursorNew);
|
|
LOAD_QD_FUNC(LMSetCursorNew);
|
|
LOAD_QD_FUNC(QDRegionToRects);
|
|
LOAD_QD_FUNC(SetPort);
|
|
LOAD_QD_FUNC(GetPort);
|
|
LOAD_QD_FUNC(GrafDevice);
|
|
LOAD_QD_FUNC(SetPortBits);
|
|
LOAD_QD_FUNC(PortSize);
|
|
LOAD_QD_FUNC(MovePortTo);
|
|
LOAD_QD_FUNC(SetOrigin);
|
|
LOAD_QD_FUNC(SetClip);
|
|
LOAD_QD_FUNC(GetClip);
|
|
LOAD_QD_FUNC(ClipRect);
|
|
LOAD_QD_FUNC(BackPat);
|
|
LOAD_QD_FUNC(InitCursor);
|
|
LOAD_QD_FUNC(SetCursor);
|
|
LOAD_QD_FUNC(HideCursor);
|
|
LOAD_QD_FUNC(ShowCursor);
|
|
LOAD_QD_FUNC(ObscureCursor);
|
|
LOAD_QD_FUNC(HidePen);
|
|
LOAD_QD_FUNC(ShowPen);
|
|
LOAD_QD_FUNC(GetPen);
|
|
LOAD_QD_FUNC(GetPenState);
|
|
LOAD_QD_FUNC(SetPenState);
|
|
LOAD_QD_FUNC(PenSize);
|
|
LOAD_QD_FUNC(PenMode);
|
|
LOAD_QD_FUNC(PenPat);
|
|
LOAD_QD_FUNC(PenNormal);
|
|
LOAD_QD_FUNC(MoveTo);
|
|
LOAD_QD_FUNC(Move);
|
|
LOAD_QD_FUNC(LineTo);
|
|
LOAD_QD_FUNC(Line);
|
|
LOAD_QD_FUNC(ForeColor);
|
|
LOAD_QD_FUNC(BackColor);
|
|
LOAD_QD_FUNC(ColorBit);
|
|
LOAD_QD_FUNC(SetRect);
|
|
LOAD_QD_FUNC(OffsetRect);
|
|
LOAD_QD_FUNC(InsetRect);
|
|
LOAD_QD_FUNC(SectRect);
|
|
LOAD_QD_FUNC(UnionRect);
|
|
LOAD_QD_FUNC(EqualRect);
|
|
LOAD_QD_FUNC(EmptyRect);
|
|
LOAD_QD_FUNC(FrameRect);
|
|
LOAD_QD_FUNC(PaintRect);
|
|
LOAD_QD_FUNC(EraseRect);
|
|
LOAD_QD_FUNC(InvertRect);
|
|
LOAD_QD_FUNC(FillRect);
|
|
LOAD_QD_FUNC(FrameOval);
|
|
LOAD_QD_FUNC(PaintOval);
|
|
LOAD_QD_FUNC(EraseOval);
|
|
LOAD_QD_FUNC(InvertOval);
|
|
LOAD_QD_FUNC(FillOval);
|
|
LOAD_QD_FUNC(FrameRoundRect);
|
|
LOAD_QD_FUNC(PaintRoundRect);
|
|
LOAD_QD_FUNC(EraseRoundRect);
|
|
LOAD_QD_FUNC(InvertRoundRect);
|
|
LOAD_QD_FUNC(FillRoundRect);
|
|
LOAD_QD_FUNC(FrameArc);
|
|
LOAD_QD_FUNC(PaintArc);
|
|
LOAD_QD_FUNC(EraseArc);
|
|
LOAD_QD_FUNC(InvertArc);
|
|
LOAD_QD_FUNC(FillArc);
|
|
LOAD_QD_FUNC(NewRgn);
|
|
LOAD_QD_FUNC(OpenRgn);
|
|
LOAD_QD_FUNC(CloseRgn);
|
|
LOAD_QD_FUNC(BitMapToRegion);
|
|
LOAD_QD_FUNC(HandleToRgn);
|
|
LOAD_QD_FUNC(RgnToHandle);
|
|
LOAD_QD_FUNC(DisposeRgn);
|
|
LOAD_QD_FUNC(CopyRgn);
|
|
LOAD_QD_FUNC(SetEmptyRgn);
|
|
LOAD_QD_FUNC(SetRectRgn);
|
|
LOAD_QD_FUNC(RectRgn);
|
|
LOAD_QD_FUNC(OffsetRgn);
|
|
LOAD_QD_FUNC(InsetRgn);
|
|
LOAD_QD_FUNC(SectRgn);
|
|
LOAD_QD_FUNC(UnionRgn);
|
|
LOAD_QD_FUNC(DiffRgn);
|
|
LOAD_QD_FUNC(XorRgn);
|
|
LOAD_QD_FUNC(RectInRgn);
|
|
LOAD_QD_FUNC(EqualRgn);
|
|
LOAD_QD_FUNC(EmptyRgn);
|
|
LOAD_QD_FUNC(FrameRgn);
|
|
LOAD_QD_FUNC(PaintRgn);
|
|
LOAD_QD_FUNC(EraseRgn);
|
|
LOAD_QD_FUNC(InvertRgn);
|
|
LOAD_QD_FUNC(FillRgn);
|
|
LOAD_QD_FUNC(ScrollRect);
|
|
LOAD_QD_FUNC(CopyBits);
|
|
LOAD_QD_FUNC(SeedFill);
|
|
LOAD_QD_FUNC(CalcMask);
|
|
LOAD_QD_FUNC(CopyMask);
|
|
LOAD_QD_FUNC(OpenPicture);
|
|
LOAD_QD_FUNC(PicComment);
|
|
LOAD_QD_FUNC(ClosePicture);
|
|
LOAD_QD_FUNC(DrawPicture);
|
|
LOAD_QD_FUNC(KillPicture);
|
|
LOAD_QD_FUNC(OpenPoly);
|
|
LOAD_QD_FUNC(ClosePoly);
|
|
LOAD_QD_FUNC(KillPoly);
|
|
LOAD_QD_FUNC(OffsetPoly);
|
|
LOAD_QD_FUNC(FramePoly);
|
|
LOAD_QD_FUNC(PaintPoly);
|
|
LOAD_QD_FUNC(ErasePoly);
|
|
LOAD_QD_FUNC(InvertPoly);
|
|
LOAD_QD_FUNC(FillPoly);
|
|
LOAD_QD_FUNC(SetPt);
|
|
LOAD_QD_FUNC(LocalToGlobal);
|
|
LOAD_QD_FUNC(GlobalToLocal);
|
|
LOAD_QD_FUNC(Random);
|
|
LOAD_QD_FUNC(StuffHex);
|
|
LOAD_QD_FUNC(GetPixel);
|
|
LOAD_QD_FUNC(ScalePt);
|
|
LOAD_QD_FUNC(MapPt);
|
|
LOAD_QD_FUNC(MapRect);
|
|
LOAD_QD_FUNC(MapRgn);
|
|
LOAD_QD_FUNC(MapPoly);
|
|
LOAD_QD_FUNC(SetStdProcs);
|
|
LOAD_QD_FUNC(StdRect);
|
|
LOAD_QD_FUNC(StdRRect);
|
|
LOAD_QD_FUNC(StdOval);
|
|
LOAD_QD_FUNC(StdArc);
|
|
LOAD_QD_FUNC(StdPoly);
|
|
LOAD_QD_FUNC(StdRgn);
|
|
LOAD_QD_FUNC(StdBits);
|
|
LOAD_QD_FUNC(StdComment);
|
|
LOAD_QD_FUNC(StdGetPic);
|
|
LOAD_QD_FUNC(StdPutPic);
|
|
LOAD_QD_FUNC(StdOpcode);
|
|
LOAD_QD_FUNC(AddPt);
|
|
LOAD_QD_FUNC(EqualPt);
|
|
LOAD_QD_FUNC(PtInRect);
|
|
LOAD_QD_FUNC(Pt2Rect);
|
|
LOAD_QD_FUNC(PtToAngle);
|
|
LOAD_QD_FUNC(SubPt);
|
|
LOAD_QD_FUNC(PtInRgn);
|
|
LOAD_QD_FUNC(StdLine);
|
|
LOAD_QD_FUNC(NewPixMap);
|
|
LOAD_QD_FUNC(DisposePixMap);
|
|
LOAD_QD_FUNC(CopyPixMap);
|
|
LOAD_QD_FUNC(NewPixPat);
|
|
LOAD_QD_FUNC(DisposePixPat);
|
|
LOAD_QD_FUNC(CopyPixPat);
|
|
LOAD_QD_FUNC(PenPixPat);
|
|
LOAD_QD_FUNC(BackPixPat);
|
|
LOAD_QD_FUNC(GetPixPat);
|
|
LOAD_QD_FUNC(MakeRGBPat);
|
|
LOAD_QD_FUNC(FillCRect);
|
|
LOAD_QD_FUNC(FillCOval);
|
|
LOAD_QD_FUNC(FillCRoundRect);
|
|
LOAD_QD_FUNC(FillCArc);
|
|
LOAD_QD_FUNC(FillCRgn);
|
|
LOAD_QD_FUNC(FillCPoly);
|
|
LOAD_QD_FUNC(RGBForeColor);
|
|
LOAD_QD_FUNC(RGBBackColor);
|
|
LOAD_QD_FUNC(SetCPixel);
|
|
LOAD_QD_FUNC(SetPortPix);
|
|
LOAD_QD_FUNC(GetCPixel);
|
|
LOAD_QD_FUNC(GetForeColor);
|
|
LOAD_QD_FUNC(GetBackColor);
|
|
LOAD_QD_FUNC(SeedCFill);
|
|
LOAD_QD_FUNC(CalcCMask);
|
|
LOAD_QD_FUNC(OpenCPicture);
|
|
LOAD_QD_FUNC(OpColor);
|
|
LOAD_QD_FUNC(HiliteColor);
|
|
LOAD_QD_FUNC(DisposeCTable);
|
|
LOAD_QD_FUNC(GetCTable);
|
|
LOAD_QD_FUNC(GetCCursor);
|
|
LOAD_QD_FUNC(SetCCursor);
|
|
LOAD_QD_FUNC(AllocCursor);
|
|
LOAD_QD_FUNC(DisposeCCursor);
|
|
LOAD_QD_FUNC(SetStdCProcs);
|
|
LOAD_QD_FUNC(GetMaxDevice);
|
|
LOAD_QD_FUNC(GetCTSeed);
|
|
LOAD_QD_FUNC(GetDeviceList);
|
|
LOAD_QD_FUNC(GetMainDevice);
|
|
LOAD_QD_FUNC(GetNextDevice);
|
|
LOAD_QD_FUNC(TestDeviceAttribute);
|
|
LOAD_QD_FUNC(SetDeviceAttribute);
|
|
LOAD_QD_FUNC(InitGDevice);
|
|
LOAD_QD_FUNC(NewGDevice);
|
|
LOAD_QD_FUNC(DisposeGDevice);
|
|
LOAD_QD_FUNC(SetGDevice);
|
|
LOAD_QD_FUNC(GetGDevice);
|
|
LOAD_QD_FUNC(Color2Index);
|
|
LOAD_QD_FUNC(Index2Color);
|
|
LOAD_QD_FUNC(InvertColor);
|
|
LOAD_QD_FUNC(RealColor);
|
|
LOAD_QD_FUNC(GetSubTable);
|
|
LOAD_QD_FUNC(MakeITable);
|
|
LOAD_QD_FUNC(AddSearch);
|
|
LOAD_QD_FUNC(AddComp);
|
|
LOAD_QD_FUNC(DelSearch);
|
|
LOAD_QD_FUNC(DelComp);
|
|
LOAD_QD_FUNC(SetClientID);
|
|
LOAD_QD_FUNC(ProtectEntry);
|
|
LOAD_QD_FUNC(ReserveEntry);
|
|
LOAD_QD_FUNC(SetEntries);
|
|
LOAD_QD_FUNC(SaveEntries);
|
|
LOAD_QD_FUNC(RestoreEntries);
|
|
LOAD_QD_FUNC(QDError);
|
|
LOAD_QD_FUNC(CopyDeepMask);
|
|
LOAD_QD_FUNC(DeviceLoop);
|
|
LOAD_QD_FUNC(GetMaskTable);
|
|
LOAD_QD_FUNC(GetPattern);
|
|
LOAD_QD_FUNC(GetCursor);
|
|
LOAD_QD_FUNC(GetPicture);
|
|
LOAD_QD_FUNC(DeltaPoint);
|
|
LOAD_QD_FUNC(ShieldCursor);
|
|
LOAD_QD_FUNC(ScreenRes);
|
|
LOAD_QD_FUNC(GetIndPattern);
|
|
LOAD_QD_FUNC(deltapoint);
|
|
LOAD_QD_FUNC(PackBits);
|
|
LOAD_QD_FUNC(UnpackBits);
|
|
LOAD_QD_FUNC(SlopeFromAngle);
|
|
LOAD_QD_FUNC(AngleFromSlope);
|
|
|
|
#undef LOAD_QD_FUNC
|
|
}
|
|
|
|
static MwLL quickdraw_create(MwLL parent, int x, int y, int width, int height) {
|
|
return NULL;
|
|
};
|
|
static void quickdraw_destroy(MwLL handle) {
|
|
return;
|
|
};
|
|
static void quickdraw_polygon(MwLL handle, MwPoint* points, int points_count, MwLLColor color) {
|
|
return;
|
|
};
|
|
static MwLLColor quickdraw_allocColor(MwLL handle, int r, int g, int b) {
|
|
return NULL;
|
|
};
|
|
static void quickdraw_freeColor(MwLLColor color) {
|
|
return;
|
|
};
|
|
static void quickdraw_getXYWH(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) {
|
|
return;
|
|
};
|
|
static void quickdraw_setXY(MwLL handle, int x, int y) {
|
|
return;
|
|
};
|
|
static void quickdraw_setWH(MwLL handle, int w, int h) {
|
|
return;
|
|
};
|
|
static void quickdraw_setTitle(MwLL handle, const char* title) {
|
|
return;
|
|
};
|
|
static int quickdraw_pending(MwLL handle) {
|
|
return 0;
|
|
};
|
|
static void quickdraw_nextEvent(MwLL handle) {
|
|
return;
|
|
};
|
|
static MwLLPixmap quickdraw_createPixmap(MwLL handle, unsigned char* data, int width, int height) {
|
|
return NULL;
|
|
};
|
|
static void quickdraw_drawPixmap(MwLL handle, MwRect* rect, MwLLPixmap pixmap) {
|
|
return;
|
|
};
|
|
static void quickdraw_setIcon(MwLL handle, MwLLPixmap pixmap) {
|
|
return;
|
|
};
|
|
static void quickdraw_forceRender(MwLL handle) {
|
|
return;
|
|
};
|
|
|
|
static mac_backend quickdraw_backend = {
|
|
.create = quickdraw_create,
|
|
.destroy = quickdraw_destroy,
|
|
.polygon = quickdraw_polygon,
|
|
.allocColor = quickdraw_allocColor,
|
|
.freeColor = quickdraw_freeColor,
|
|
.getXYWH = quickdraw_getXYWH,
|
|
.setXY = quickdraw_setXY,
|
|
.setWH = quickdraw_setWH,
|
|
.setTitle = quickdraw_setTitle,
|
|
.pending = quickdraw_pending,
|
|
.nextEvent = quickdraw_nextEvent,
|
|
.createPixmap = quickdraw_createPixmap,
|
|
.drawPixmap = quickdraw_drawPixmap,
|
|
.setIcon = quickdraw_setIcon,
|
|
.forceRender = quickdraw_forceRender,
|
|
};
|
|
|
|
mac_backend getQuickDrawBackend(void) {
|
|
return quickdraw_backend;
|
|
};
|