Backport to Glide 2
Most games were using Glide 2, meaning there is more wrappers for Glide 2 available than for Glide 3. In particular, it seems there is no open source Glide 3 wrapper. FossilOrigin-Name: 16bb6bc399e5b4db4f5117199f6b534231c42072555575b70f40795651805648
This commit is contained in:
parent
c322610fe4
commit
4ea8389306
10 changed files with 255 additions and 543 deletions
|
@ -15,7 +15,7 @@
|
|||
|
||||
#import <ObjFW/ObjFW.h>
|
||||
|
||||
#import "O3DEngine.h"
|
||||
#import "O3DGlideRenderer.h"
|
||||
|
||||
@interface TestsAppDelegate: OFObject <OFApplicationDelegate>
|
||||
@end
|
||||
|
@ -25,49 +25,31 @@ 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];
|
||||
O3DGlideRenderer *renderer = [[[O3DGlideRenderer alloc]
|
||||
initWithResolution: OFMakeSize(640, 480)
|
||||
bitsPerPixel: 16
|
||||
refreshRate: 60
|
||||
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[] = {
|
||||
const O3DVertex outerTriangle[] = {
|
||||
{ -1, -1 },
|
||||
{ 0, 1 },
|
||||
{ 1, -1 }
|
||||
};
|
||||
O3DVertex values2[] = {
|
||||
const O3DVertex innerTriangle[] = {
|
||||
{ -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];
|
||||
[renderer beginFrame];
|
||||
[renderer setColor: [OFColor yellow]];
|
||||
[renderer drawPolygonVertices: outerTriangle count: 3];
|
||||
[renderer setColor: [OFColor red]];
|
||||
[renderer drawPolygonVertices: innerTriangle count: 3];
|
||||
[renderer endFrame];
|
||||
}
|
||||
|
||||
[OFApplication terminate];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue