FossilOrigin-Name: 6ca1c3b3060a245b3244e4b7f60d4fad266f52fc5802179e6ad8607c8b91a5d3
54 lines
1.4 KiB
Objective-C
54 lines
1.4 KiB
Objective-C
/*
|
|
* Copyright (c) 2022, 2023 Jonathan Schleifer <js@nil.im>
|
|
*
|
|
* All rights reserved.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify it
|
|
* under the terms of the GNU Lesser General Public License version 3.0 only,
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
* version 3.0 for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3.0 along with this program. If not, see
|
|
* <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#import <ObjFW/ObjFW.h>
|
|
|
|
OF_ASSUME_NONNULL_BEGIN
|
|
|
|
typedef struct OF_BOXABLE {
|
|
OFVector3D position;
|
|
struct {
|
|
float r, g, b;
|
|
} color;
|
|
} O3DVertex;
|
|
|
|
@protocol O3DRenderer <OFObject>
|
|
@property (nonatomic) bool syncsToVerticalBlank;
|
|
|
|
+ (unsigned int)numAvailableDevices;
|
|
|
|
- (instancetype)initWithResolution: (OFSize)resolution
|
|
bitsPerPixel: (uint8_t)bitsPerPixel
|
|
refreshRate: (float)refreshRate
|
|
options: (nullable OFDictionary *)options;
|
|
- (void)beginFrame;
|
|
- (void)drawPolygonWithVertices: (const O3DVertex *)vertices
|
|
count: (size_t)count;
|
|
- (void)endFrame;
|
|
@end
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern OFString *const O3DRendererDeviceIndex;
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
OF_ASSUME_NONNULL_END
|