/** * Retrograde Engine * * Authors: * Mike Bierlee, m.bierlee@lostmoment.com * Copyright: 2014-2021 Mike Bierlee * License: * This software is licensed under the terms of the MIT license. * The full terms of the license can be found in the LICENSE.txt file. */ module retrograde.model; import retrograde.entity; import std.exception; interface Model { void loadIntoVram(); void unloadFromVram(); bool isLoadedIntoVram(); void draw(); } class ModelLoadException : Exception { mixin basicExceptionCtors; } class ModelComponent : EntityComponent { mixin EntityComponentIdentity!"ModelComponent"; private Model _model; public @property Model model() { return _model; } this(Model model) { _model = model; } } class RenderableModelComponent : EntityComponent { mixin EntityComponentIdentity!"RenderableModelComponent"; }