blob: 6b055bc6654d8edecb6256408758025c4497a574 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
//
// LLOpenGLView.h
// SecondLife
//
// Created by Geenz on 10/2/12.
//
//
#import <Cocoa/Cocoa.h>
#include "llwindowmacosx-objc.h"
// Some nasty shovelling of LLOpenGLView from LLNativeBindings to prevent any C++ <-> Obj-C interop oddities.
// Redraw callback handling removed (for now) due to being unneeded in the patch that preceeds this addition.
@interface LLOpenGLView : NSOpenGLView
{
NSPoint mousePos;
ResizeCallback mResizeCallback;
}
- (id) initWithFrame:(NSRect)frame withSamples:(NSUInteger)samples andVsync:(BOOL)vsync;
// rebuildContext
// Destroys and recreates a context with the view's internal format set via setPixelFormat;
// Use this in event of needing to rebuild a context for whatever reason, without needing to assign a new pixel format.
- (BOOL) rebuildContext;
// rebuildContextWithFormat
// Destroys and recreates a context with the specified pixel format.
- (BOOL) rebuildContextWithFormat:(NSOpenGLPixelFormat *)format;
// These are mostly just for C++ <-> Obj-C interop. We can manipulate the CGLContext from C++ without reprecussions.
- (CGLContextObj) getCGLContextObj;
- (CGLPixelFormatObj*)getCGLPixelFormatObj;
- (void) registerResizeCallback:(ResizeCallback)callback;
@end
@interface LLNSWindow : NSWindow {
float mMousePos[2];
unsigned int mModifiers;
KeyCallback mKeyDownCallback;
KeyCallback mKeyUpCallback;
UnicodeCallback mUnicodeCallback;
ModifierCallback mModifierCallback;
MouseCallback mMouseDownCallback;
MouseCallback mMouseUpCallback;
MouseCallback mMouseDoubleClickCallback;
MouseCallback mRightMouseDownCallback;
MouseCallback mRightMouseUpCallback;
MouseCallback mMouseMovedCallback;
ScrollWheelCallback mScrollWhellCallback;
VoidCallback mMouseExitCallback;
MouseCallback mDeltaUpdateCallback;
}
- (void) registerKeyDownCallback:(KeyCallback)callback;
- (void) registerKeyUpCallback:(KeyCallback)callback;
- (void) registerUnicodeCallback:(UnicodeCallback)callback;
- (void) registerModifierCallback:(ModifierCallback)callback;
- (void) registerMouseDownCallback:(MouseCallback)callback;
- (void) registerMouseUpCallback:(MouseCallback)callback;
- (void) registerRightMouseDownCallback:(MouseCallback)callback;
- (void) registerRightMouseUpCallback:(MouseCallback)callback;
- (void) registerDoubleClickCallback:(MouseCallback)callback;
- (void) registerMouseMovedCallback:(MouseCallback)callback;
- (void) registerScrollCallback:(ScrollWheelCallback)callback;
- (void) registerMouseExitCallback:(VoidCallback)callback;
- (void) registerDeltaUpdateCallback:(MouseCallback)callback;
@end
void setLLNSWindowRef(LLNSWindow* window);
void setLLOpenGLViewRef(LLOpenGLView* view);
LLNSWindow* winRef;
LLOpenGLView* glviewRef;
|