public Menu(Device device, ShaderCache shaderCache, TrackedDeviceBufferManager trackedDeviceBufferManager, ControllerManager controllerManager, IMenuLevel rootLevel) { model = new MenuModel(rootLevel); controller = new MenuController(model, controllerManager); visualRenderer = new MenuView(device, model); renderer = new MenuRenderer(device, shaderCache, trackedDeviceBufferManager, controllerManager, visualRenderer.TextureView); }
public FramePreparer(IArchiveDirectory dataDir, Device device, ShaderCache shaderCache, StandardSamplers standardSamplers, Size2 targetSize) { this.standardSamplers = standardSamplers; deferredContext = new DeviceContext(device); viewProjectionTransformBufferManager = new ViewProjectionConstantBufferManager(device); passController = new RenderPassController(device, shaderCache, targetSize); masker = new HiddenAreaMasker(device, shaderCache); trackedDeviceBufferManager = new TrackedDeviceBufferManager(device); controllerManager = new ControllerManager(); scene = new Scene(dataDir, device, shaderCache, standardSamplers, trackedDeviceBufferManager, controllerManager); }
public RenderModelRenderer(Device device, ShaderCache shaderCache, TrackedDeviceBufferManager trackedDeviceBufferManager) { this.trackedDeviceBufferManager = trackedDeviceBufferManager; this.cache = new RenderModelCache(device, new BasicSpecularMaterial.Factory(device, shaderCache)); var vertexShaderWithBytecode = shaderCache.GetVertexShader <RenderModelRenderer>("game/render-models/RenderModelVertex"); vertexShader = vertexShaderWithBytecode; inputLayout = new InputLayout(device, vertexShaderWithBytecode.Bytecode, InputElements); this.componentSpaceToObjectTransformBufferManager = new CoordinateNormalMatrixPairConstantBufferManager(device); }
public MenuRenderer(Device device, ShaderCache shaderCache, TrackedDeviceBufferManager trackedDeviceBufferManager, ControllerManager controllerManager, ShaderResourceView menuViewTexture) { this.trackedDeviceBufferManager = trackedDeviceBufferManager; this.controllerManager = controllerManager; this.menuViewTexture = menuViewTexture; vertexShader = shaderCache.GetVertexShader <MenuRenderer>("menu/renderer/Menu"); companionWindowVertexShader = shaderCache.GetVertexShader <MenuRenderer>("menu/renderer/CompanionWindowMenu"); pixelShader = shaderCache.GetPixelShader <MenuRenderer>("menu/renderer/Menu"); menuToControllerSpaceTransform = new CoordinateNormalMatrixPairConstantBufferManager(device); Matrix menuToControllerTransform = Matrix.Scaling(0.10f) * Matrix.Translation(0, 0, 0f) * Matrix.RotationX(MathUtil.PiOverTwo); menuToControllerSpaceTransform.Update(device.ImmediateContext, menuToControllerTransform); }
public Scene(IArchiveDirectory dataDir, Device device, ShaderCache shaderCache, StandardSamplers standardSamplers, TrackedDeviceBufferManager trackedDeviceBufferManager, ControllerManager controllerManager) { var textureCache = new TextureCache(device); toneMappingSettings = new ToneMappingSettings(); iblEnvironment = new ImageBasedLightingEnvironment(device, standardSamplers, dataDir, InitialSettings.Environment, InitialSettings.EnvironmentRotation); backdrop = new Backdrop(device, shaderCache); floor = new PlayspaceFloor(device, shaderCache); renderModelRenderer = new RenderModelRenderer(device, shaderCache, trackedDeviceBufferManager); primitiveRenderer = new MeshRenderer(device, shaderCache, Matrix.Translation(0, 1.25f, 0), GeometricPrimitiveFactory.MakeSphere(0.5f, 100).AsTriMesh()); var shapeNormalsLoader = new ShapeNormalsLoader(dataDir, device, textureCache); var figureRendererLoader = new FigureRendererLoader(dataDir, device, shaderCache, textureCache); var figureLoader = new FigureLoader(dataDir, device, shaderCache, shapeNormalsLoader, figureRendererLoader); actor = Actor.Load(dataDir, device, shaderCache, controllerManager, figureLoader); var iblMenu = LightingEnvironmentMenu.MakeMenuLevel(dataDir, iblEnvironment); var toneMappingMenuLevel = new ToneMappingMenuLevel(toneMappingSettings); var renderSettingsMenuLevel = new StaticMenuLevel( new SubLevelMenuItem("Lighting Enviroment", iblMenu), new SubLevelMenuItem("Tone Mapping", toneMappingMenuLevel), new FloorVisibilityToggleMenuItem(floor) ); var scenePersistenceMenuLevel = ScenePersistenceMenuLevel.Make(this); var appMenuLevel = new StaticMenuLevel( new SubLevelMenuItem("Save/Load", scenePersistenceMenuLevel), new SubLevelMenuItem("Render Settings", renderSettingsMenuLevel) ); var rootMenuLevel = new CombinedMenuLevel(appMenuLevel, actor.MenuLevel); menu = new Menu(device, shaderCache, trackedDeviceBufferManager, controllerManager, rootMenuLevel); }