mirror of
https://github.com/darlinghq/darling-cocotron.git
synced 2024-10-07 01:23:26 +00:00
Fix the build and review comments
This commit is contained in:
parent
b26bedb31c
commit
6453711d11
@ -601,7 +601,7 @@ static NSData *makeWindowIcon() {
|
||||
[_caContext renderSurface: surface];
|
||||
|
||||
glFlush();
|
||||
CGLSwapBuffers(_cglWindow);
|
||||
CGLFlushDrawable(_cglWindow);
|
||||
|
||||
CGLSetCurrentContext(prevContext);
|
||||
}
|
||||
|
@ -136,4 +136,34 @@ add_framework(CoreGraphics
|
||||
IOKit
|
||||
)
|
||||
|
||||
function(add_backend name)
|
||||
cmake_parse_arguments(BACKEND "" "INFO_PLIST" "SOURCES;DEPENDENCIES;RESOURCES" ${ARGN})
|
||||
set(path "/System/Library/Frameworks/CoreGraphics.framework/Versions/C/Resources/Backends/${name}.backend/Contents")
|
||||
set(DYLIB_INSTALL_NAME "${path}/MacOS/${name}")
|
||||
|
||||
add_darling_library(${name}_cgbackend SHARED ${BACKEND_SOURCES})
|
||||
set_target_properties(${name}_cgbackend PROPERTIES OUTPUT_NAME "${name}" SUFFIX "" PREFIX "")
|
||||
make_fat(${name}_cgbackend)
|
||||
|
||||
if (BACKEND_DEPENDENCIES)
|
||||
target_link_libraries(${name}_cgbackend PRIVATE ${BACKEND_DEPENDENCIES})
|
||||
endif (BACKEND_DEPENDENCIES)
|
||||
|
||||
install(TARGETS ${name}_cgbackend DESTINATION "libexec/darling${path}/MacOS")
|
||||
install(FILES ${BACKEND_INFO_PLIST} DESTINATION "libexec/darling${path}" RENAME Info.plist)
|
||||
|
||||
if (BACKEND_RESOURCES)
|
||||
while (BACKEND_RESOURCES)
|
||||
list(GET BACKEND_RESOURCES 0 res_install_path)
|
||||
list(GET BACKEND_RESOURCES 1 res_source_path)
|
||||
get_filename_component(res_install_dir ${res_install_path} DIRECTORY)
|
||||
get_filename_component(res_install_name ${res_install_path} NAME)
|
||||
install(FILES ${res_source_path}
|
||||
DESTINATION libexec/darling${path}/Resources/${res_install_dir}
|
||||
RENAME ${res_install_name})
|
||||
list(REMOVE_AT BACKEND_RESOURCES 0 1)
|
||||
endwhile (BACKEND_RESOURCES)
|
||||
endif (BACKEND_RESOURCES)
|
||||
endfunction(add_backend)
|
||||
|
||||
add_subdirectory(X11.backend)
|
||||
|
@ -1,33 +1,3 @@
|
||||
function(add_backend name)
|
||||
cmake_parse_arguments(BACKEND "" "INFO_PLIST" "SOURCES;DEPENDENCIES;RESOURCES" ${ARGN})
|
||||
set(path "/System/Library/Frameworks/CoreGraphics.framework/Versions/C/Resources/Backends/${name}.backend/Contents")
|
||||
set(DYLIB_INSTALL_NAME "${path}/MacOS/${name}")
|
||||
|
||||
add_darling_library(${name}_cgbackend SHARED ${BACKEND_SOURCES})
|
||||
set_target_properties(${name}_cgbackend PROPERTIES OUTPUT_NAME "${name}" SUFFIX "" PREFIX "")
|
||||
make_fat(${name}_cgbackend)
|
||||
|
||||
if (BACKEND_DEPENDENCIES)
|
||||
target_link_libraries(${name}_cgbackend PRIVATE ${BACKEND_DEPENDENCIES})
|
||||
endif (BACKEND_DEPENDENCIES)
|
||||
|
||||
install(TARGETS ${name}_cgbackend DESTINATION "libexec/darling${path}/MacOS")
|
||||
install(FILES ${BACKEND_INFO_PLIST} DESTINATION "libexec/darling${path}" RENAME Info.plist)
|
||||
|
||||
if (BACKEND_RESOURCES)
|
||||
while (BACKEND_RESOURCES)
|
||||
list(GET BACKEND_RESOURCES 0 res_install_path)
|
||||
list(GET BACKEND_RESOURCES 1 res_source_path)
|
||||
get_filename_component(res_install_dir ${res_install_path} DIRECTORY)
|
||||
get_filename_component(res_install_name ${res_install_path} NAME)
|
||||
install(FILES ${res_source_path}
|
||||
DESTINATION libexec/darling${path}/Resources/${res_install_dir}
|
||||
RENAME ${res_install_name})
|
||||
list(REMOVE_AT BACKEND_RESOURCES 0 1)
|
||||
endwhile (BACKEND_RESOURCES)
|
||||
endif (BACKEND_RESOURCES)
|
||||
endfunction(add_backend)
|
||||
|
||||
add_backend(X11
|
||||
SOURCES
|
||||
CGSConnectionX11.m
|
||||
@ -41,13 +11,10 @@ add_backend(X11
|
||||
system
|
||||
CoreFoundation
|
||||
Foundation
|
||||
AppKit
|
||||
Onyx2D
|
||||
CoreGraphics
|
||||
OpenGL
|
||||
QuartzCore
|
||||
# native libraries
|
||||
X11
|
||||
X11
|
||||
XRandR
|
||||
Xcursor
|
||||
fontconfig
|
||||
|
@ -20,16 +20,219 @@
|
||||
#ifndef _CGEVENTTYPES_H_
|
||||
#define _CGEVENTTYPES_H_
|
||||
|
||||
#include <CoreFoundation/CFAvailability.h>
|
||||
#include <CoreFoundation/CFBase.h>
|
||||
#include <CoreFoundation/CFAvailability.h>
|
||||
#include <CoreGraphics/CGBase.h>
|
||||
#include <CoreGraphics/CGRemoteOperation.h>
|
||||
|
||||
typedef CF_ENUM(uint32_t, CGEventTapLocation) {
|
||||
kCGHIDEventTap = 0,
|
||||
kCGSessionEventTap,
|
||||
kCGAnnotatedSessionEventTap
|
||||
typedef struct __CGEvent *CGEventRef;
|
||||
|
||||
typedef uint32_t CGMouseButton;
|
||||
enum {
|
||||
kCGMouseButtonLeft = 0,
|
||||
kCGMouseButtonRight = 1,
|
||||
kCGMouseButtonCenter = 2
|
||||
};
|
||||
|
||||
typedef uint32_t CGScrollEventUnit;
|
||||
enum {
|
||||
kCGScrollEventUnitPixel = 0,
|
||||
kCGScrollEventUnitLine = 1,
|
||||
};
|
||||
|
||||
typedef uint32_t CGMomentumScrollPhase;
|
||||
enum {
|
||||
kCGMomentumScrollPhaseNone = 0,
|
||||
kCGMomentumScrollPhaseBegin = 1,
|
||||
kCGMomentumScrollPhaseContinue = 2,
|
||||
kCGMomentumScrollPhaseEnd = 3
|
||||
};
|
||||
|
||||
typedef uint32_t CGScrollPhase;
|
||||
enum {
|
||||
kCGScrollPhaseBegan = 1,
|
||||
kCGScrollPhaseChanged = 2,
|
||||
kCGScrollPhaseEnded = 4,
|
||||
kCGScrollPhaseCancelled = 8,
|
||||
kCGScrollPhaseMayBegin = 128
|
||||
};
|
||||
|
||||
|
||||
typedef uint32_t CGGesturePhase;
|
||||
enum {
|
||||
kCGGesturePhaseNone = 0,
|
||||
kCGGesturePhaseBegan = 1,
|
||||
kCGGesturePhaseChanged = 2,
|
||||
kCGGesturePhaseEnded = 4,
|
||||
kCGGesturePhaseCancelled = 8,
|
||||
kCGGesturePhaseMayBegin = 128
|
||||
};
|
||||
|
||||
|
||||
typedef uint64_t CGEventFlags;
|
||||
enum {
|
||||
|
||||
kCGEventFlagMaskAlphaShift = 0x00010000,
|
||||
kCGEventFlagMaskShift = 0x00020000,
|
||||
kCGEventFlagMaskControl = 0x00040000,
|
||||
kCGEventFlagMaskAlternate = 0x00080000,
|
||||
kCGEventFlagMaskCommand = 0x00100000,
|
||||
kCGEventFlagMaskHelp = 0x00400000,
|
||||
kCGEventFlagMaskSecondaryFn = 0x00800000,
|
||||
kCGEventFlagMaskNumericPad = 0x00200000,
|
||||
kCGEventFlagMaskNonCoalesced = 0x00000100
|
||||
};
|
||||
|
||||
|
||||
typedef uint32_t CGEventType;
|
||||
enum {
|
||||
kCGEventNull = 0,
|
||||
kCGEventLeftMouseDown = 1,
|
||||
kCGEventLeftMouseUp = 2,
|
||||
kCGEventRightMouseDown = 3,
|
||||
kCGEventRightMouseUp = 4,
|
||||
kCGEventMouseMoved = 5,
|
||||
kCGEventLeftMouseDragged = 6,
|
||||
kCGEventRightMouseDragged = 7,
|
||||
kCGEventKeyDown = 10,
|
||||
kCGEventKeyUp = 11,
|
||||
kCGEventFlagsChanged = 12,
|
||||
kCGEventScrollWheel = 22,
|
||||
kCGEventTabletPointer = 23,
|
||||
kCGEventTabletProximity = 24,
|
||||
kCGEventOtherMouseDown = 25,
|
||||
kCGEventOtherMouseUp = 26,
|
||||
kCGEventOtherMouseDragged = 27,
|
||||
kCGEventTapDisabledByTimeout = 0xFFFFFFFE,
|
||||
kCGEventTapDisabledByUserInput = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
typedef uint64_t CGEventTimestamp;
|
||||
typedef uint32_t CGEventField;
|
||||
enum {
|
||||
kCGMouseEventNumber = 0,
|
||||
kCGMouseEventClickState = 1,
|
||||
kCGMouseEventPressure = 2,
|
||||
kCGMouseEventButtonNumber = 3,
|
||||
kCGMouseEventDeltaX = 4,
|
||||
kCGMouseEventDeltaY = 5,
|
||||
kCGMouseEventInstantMouser = 6,
|
||||
kCGMouseEventSubtype = 7,
|
||||
kCGKeyboardEventAutorepeat = 8,
|
||||
kCGKeyboardEventKeycode = 9,
|
||||
kCGKeyboardEventKeyboardType = 10,
|
||||
kCGScrollWheelEventDeltaAxis1 = 11,
|
||||
kCGScrollWheelEventDeltaAxis2 = 12,
|
||||
kCGScrollWheelEventDeltaAxis3 = 13,
|
||||
kCGScrollWheelEventFixedPtDeltaAxis1 = 93,
|
||||
kCGScrollWheelEventFixedPtDeltaAxis2 = 94,
|
||||
kCGScrollWheelEventFixedPtDeltaAxis3 = 95,
|
||||
kCGScrollWheelEventPointDeltaAxis1 = 96,
|
||||
kCGScrollWheelEventPointDeltaAxis2 = 97,
|
||||
kCGScrollWheelEventPointDeltaAxis3 = 98,
|
||||
kCGScrollWheelEventScrollPhase = 99,
|
||||
kCGScrollWheelEventScrollCount = 100,
|
||||
kCGScrollWheelEventMomentumPhase = 123,
|
||||
kCGScrollWheelEventInstantMouser = 14,
|
||||
kCGTabletEventPointX = 15,
|
||||
kCGTabletEventPointY = 16,
|
||||
kCGTabletEventPointZ = 17,
|
||||
kCGTabletEventPointButtons = 18,
|
||||
kCGTabletEventPointPressure = 19,
|
||||
kCGTabletEventTiltX = 20,
|
||||
kCGTabletEventTiltY = 21,
|
||||
kCGTabletEventRotation = 22,
|
||||
kCGTabletEventTangentialPressure = 23,
|
||||
kCGTabletEventDeviceID = 24,
|
||||
kCGTabletEventVendor1 = 25,
|
||||
kCGTabletEventVendor2 = 26,
|
||||
kCGTabletEventVendor3 = 27,
|
||||
kCGTabletProximityEventVendorID = 28,
|
||||
kCGTabletProximityEventTabletID = 29,
|
||||
kCGTabletProximityEventPointerID = 30,
|
||||
kCGTabletProximityEventDeviceID = 31,
|
||||
kCGTabletProximityEventSystemTabletID = 32,
|
||||
kCGTabletProximityEventVendorPointerType = 33,
|
||||
kCGTabletProximityEventVendorPointerSerialNumber = 34,
|
||||
kCGTabletProximityEventVendorUniqueID = 35,
|
||||
kCGTabletProximityEventCapabilityMask = 36,
|
||||
kCGTabletProximityEventPointerType = 37,
|
||||
kCGTabletProximityEventEnterProximity = 38,
|
||||
kCGEventTargetProcessSerialNumber = 39,
|
||||
kCGEventTargetUnixProcessID = 40,
|
||||
kCGEventSourceUnixProcessID = 41,
|
||||
kCGEventSourceUserData = 42,
|
||||
kCGEventSourceUserID = 43,
|
||||
kCGEventSourceGroupID = 44,
|
||||
kCGEventSourceStateID = 45,
|
||||
kCGScrollWheelEventIsContinuous = 88,
|
||||
kCGMouseEventWindowUnderMousePointer = 91,
|
||||
kCGMouseEventWindowUnderMousePointerThatCanHandleThisEvent = 92,
|
||||
kCGEventUnacceleratedPointerMovementX = 170,
|
||||
kCGEventUnacceleratedPointerMovementY = 171
|
||||
};
|
||||
|
||||
|
||||
typedef uint32_t CGEventMouseSubtype;
|
||||
enum {
|
||||
kCGEventMouseSubtypeDefault = 0,
|
||||
kCGEventMouseSubtypeTabletPoint = 1,
|
||||
kCGEventMouseSubtypeTabletProximity = 2
|
||||
};
|
||||
|
||||
|
||||
typedef uint32_t CGEventTapLocation;
|
||||
enum {
|
||||
kCGHIDEventTap = 0,
|
||||
kCGSessionEventTap,
|
||||
kCGAnnotatedSessionEventTap
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef uint32_t CGEventTapPlacement;
|
||||
enum {
|
||||
kCGHeadInsertEventTap = 0,
|
||||
kCGTailAppendEventTap
|
||||
};
|
||||
|
||||
typedef uint32_t CGEventTapOptions;
|
||||
enum {
|
||||
kCGEventTapOptionDefault = 0x00000000,
|
||||
kCGEventTapOptionListenOnly = 0x00000001
|
||||
};
|
||||
|
||||
typedef uint64_t CGEventMask;
|
||||
typedef struct __CGEventTapProxy *CGEventTapProxy;
|
||||
|
||||
typedef CGEventRef _Nullable (*CGEventTapCallBack)(CGEventTapProxy proxy,
|
||||
CGEventType type, CGEventRef event, void * _Nullable userInfo);
|
||||
struct __CGEventTapInformation {
|
||||
uint32_t eventTapID;
|
||||
CGEventTapLocation tapPoint;
|
||||
CGEventTapOptions options;
|
||||
CGEventMask eventsOfInterest;
|
||||
pid_t tappingProcess;
|
||||
pid_t processBeingTapped;
|
||||
bool enabled;
|
||||
float minUsecLatency;
|
||||
float avgUsecLatency;
|
||||
float maxUsecLatency;
|
||||
};
|
||||
typedef struct __CGEventTapInformation CGEventTapInformation;
|
||||
|
||||
|
||||
typedef struct __CGEventSource *CGEventSourceRef;
|
||||
|
||||
typedef int32_t CGEventSourceStateID;
|
||||
enum {
|
||||
kCGEventSourceStatePrivate = -1,
|
||||
kCGEventSourceStateCombinedSessionState = 0,
|
||||
kCGEventSourceStateHIDSystemState = 1
|
||||
};
|
||||
|
||||
typedef uint32_t CGEventSourceKeyboardType;
|
||||
|
||||
#define CGEventMaskBit(eventType) ((CGEventMask) 1 << (eventType))
|
||||
|
||||
#endif
|
||||
|
@ -21,7 +21,6 @@
|
||||
#import <Foundation/NSObject.h>
|
||||
#import <Foundation/NSDictionary.h>
|
||||
#include <CoreGraphics/CoreGraphicsPrivate.h>
|
||||
#include <CoreServices/UnicodeUtilities.h>
|
||||
#include <stdatomic.h>
|
||||
|
||||
@class CGSWindow;
|
||||
|
@ -20,10 +20,6 @@
|
||||
#include <CoreGraphics/CGEvent.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void CGEventPost(CGEventTapLocation tapLocation, CGEventRef event) {
|
||||
printf("STUB CGEventPost called\n");
|
||||
}
|
||||
|
||||
CGError CGPostMouseEvent(CGPoint mouseCursorPosition, boolean_t updateMouseCursorPosition, CGButtonCount buttonCount, boolean_t mouseButtonDown, ...) {
|
||||
printf("STUB CGPostMouseEvent called\n");
|
||||
}
|
||||
|
@ -431,7 +431,7 @@ static stbi_uc *bmp_load(int *x, int *y, int *comp, int req_comp) {
|
||||
}
|
||||
if (flip_vertically) {
|
||||
stbi_uc t;
|
||||
for (j = 0; j<(int) img_y> > 1; ++j) {
|
||||
for (j = 0; j<img_y; ++j) {
|
||||
stbi_uc *p1 = out + j * img_x * target;
|
||||
stbi_uc *p2 = out + (img_y - 1 - j) * img_x * target;
|
||||
for (i = 0; i < (int) img_x * target; ++i) {
|
||||
|
Loading…
Reference in New Issue
Block a user