FossilOrigin-Name: 4f4baa85c1fdb1d605305a137e9beb1aff7d09304d565d73f1ae5bdab3f49c34
75 lines
2.1 KiB
Objective-C
75 lines
2.1 KiB
Objective-C
/*
|
|
* Copyright (c) 2022 Jonathan Schleifer <js@nil.im>
|
|
*
|
|
* All rights reserved.
|
|
*
|
|
* This file is part of Obj3DEngine. It may be distributed under the terms of
|
|
* the Q Public License 1.0, which can be found in the file LICENSE.QPL
|
|
* included in the packaging of this file.
|
|
*
|
|
* Alternatively, it may be distributed under the terms of the GNU General
|
|
* Public License, either version 2 or 3, which can be found in the file
|
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of
|
|
* this file.
|
|
*/
|
|
|
|
#import <ObjFW/ObjFW.h>
|
|
|
|
#import "O3DEngine.h"
|
|
|
|
@interface TestsAppDelegate: OFObject <OFApplicationDelegate>
|
|
@end
|
|
|
|
OF_APPLICATION_DELEGATE(TestsAppDelegate)
|
|
|
|
@implementation TestsAppDelegate
|
|
- (void)applicationDidFinishLaunching: (OFNotification *)notification
|
|
{
|
|
Class <O3DRenderer> renderer =
|
|
[O3DEngine availableRenderers].firstObject;
|
|
O3DEngine *engine =
|
|
[[[O3DEngine alloc] initWithRenderer: renderer
|
|
options: nil] autorelease];
|
|
|
|
[OFStdOut writeFormat: @"Available resolutions: %@\n",
|
|
engine.renderer.availableResolutions];
|
|
|
|
O3DResolution resolution = [OFPair
|
|
pairWithFirstObject: [OFValue valueWithSize: OFMakeSize(800, 600)]
|
|
secondObject: [OFNumber numberWithFloat: 60]];
|
|
[engine.renderer createWithResolution: resolution];
|
|
|
|
O3DVertex values1[] = {
|
|
{ -1, -1 },
|
|
{ 0, 1 },
|
|
{ 1, -1 }
|
|
};
|
|
O3DVertex values2[] = {
|
|
{ -0.5, 0.5 },
|
|
{ 0, -0.5 },
|
|
{ 0.5, 0.5 }
|
|
};
|
|
OFData *vertices1 = [OFData
|
|
dataWithItemsNoCopy: values1
|
|
count: sizeof(values1) / sizeof(*values2)
|
|
itemSize: sizeof(O3DVertex)
|
|
freeWhenDone: false];
|
|
OFData *vertices2 = [OFData
|
|
dataWithItemsNoCopy: values2
|
|
count: sizeof(values2) / sizeof(*values2)
|
|
itemSize: sizeof(O3DVertex)
|
|
freeWhenDone: false];
|
|
|
|
OFDate *startDate = [OFDate date];
|
|
while (-startDate.timeIntervalSinceNow < 5) {
|
|
[engine.renderer beginFrame];
|
|
[engine.renderer setColor: [OFColor yellow]];
|
|
[engine.renderer drawVertices: vertices1];
|
|
[engine.renderer setColor: [OFColor red]];
|
|
[engine.renderer drawVertices: vertices2];
|
|
[engine.renderer endFrame];
|
|
}
|
|
|
|
[OFApplication terminate];
|
|
}
|
|
@end
|