Vuo  2.0.0
VuoGraphicsWindow.h
Go to the documentation of this file.
1 
10 #import "module.h"
11 #import "VuoDragEvent.h"
12 #import "VuoRenderedLayers.h"
13 #import "VuoWindow.h"
14 #import "VuoWindowRecorder.h"
15 
16 #ifndef NS_RETURNS_INNER_POINTER
17 #define NS_RETURNS_INNER_POINTER
18 #endif
19 #import <AppKit/AppKit.h>
20 
21 extern const int VuoGraphicsWindowMinSize;
22 
23 typedef void (*VuoGraphicsWindowInitCallback)(void *userData, float backingScaleFactor);
24 typedef void (*VuoGraphicsWindowUpdateBackingCallback)(void *userData, float backingScaleFactor);
25 typedef void (*VuoGraphicsWindowResizeCallback)(void *userData, unsigned int, unsigned int);
26 typedef VuoIoSurface (*VuoGraphicsWindowDrawCallback)(void *userData);
31 
32 extern dispatch_semaphore_t VuoGraphicsWindow_fullScreenTransitionSemaphore;
33 
37 @interface VuoGraphicsWindow : NSWindow
38 @property(atomic) NSRect contentRectCached;
39 @property(atomic) float backingScaleFactorCached;
40 @property(retain) NSMenu *oldMenu;
41 @property BOOL isClosed;
42 @property(atomic,assign) VuoWindowRecorder *recorder;
43 @property(retain) NSURL *temporaryMovieURL;
46 @property bool userResizedWindow;
47 @property BOOL isInMacFullScreenMode;
48 @property VuoCursor cursor;
50 @property(retain) NSString *titleBackup;
51 @property NSUInteger styleMaskWhenWindowed;
52 @property NSRect contentRectWhenWindowed;
53 @property uint64_t compositionUid;
54 
55 @property void *dragEntered;
56 @property void *dragMovedTo;
57 @property void *dragCompleted;
58 @property void *dragExited;
59 
63 
64 - (instancetype)initWithInitCallback:(VuoGraphicsWindowInitCallback)initCallback
65  updateBackingCallback:(VuoGraphicsWindowUpdateBackingCallback)updateBackingCallback
66  resizeCallback:(VuoGraphicsWindowResizeCallback)resizeCallback
67  drawCallback:(VuoGraphicsWindowDrawCallback)drawCallback
68  userData:(void *)userData;
69 - (void)draw;
70 - (bool)isFullScreen;
72 
73 - (void)enableUpdatedWindowTrigger:(VuoGraphicsWindowUpdatedWindowCallback)updatedWindow;
74 - (void)enableShowedWindowTrigger:(VuoGraphicsWindowShowedWindowCallback)showedWindow requestedFrameTrigger:(VuoGraphicsWindowRequestedFrameCallback)requestedFrame;
75 - (void)disableTriggers;
76 
77 - (void)setProperties:(VuoList_VuoWindowProperty)properties;
78 
79 - (void)setAspectRatioToWidth:(unsigned int)pixelsWide height:(unsigned int)pixelsHigh;
80 - (void)unlockAspectRatio;
81 
82 @end