/* * Copyright (c) 2022 Jonathan Schleifer * * 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 "O3DEngine.h" #import "O3DGlide3Renderer.h" @implementation O3DEngine @synthesize renderer = _renderer; + (OFArray OF_GENERIC(Class ) *)availableRenderers { return [OFArray arrayWithObject: [O3DGlide3Renderer class]]; } - (instancetype) initWithRenderer: (Class )renderer options: (OFDictionary OF_GENERIC(OFString *, id) *)options { self = [super init]; @try { _renderer = [[renderer alloc] initWithOptions: options]; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { [_renderer release]; [super dealloc]; } @end