public DrawingManager(DeviceManager deviceManager) { _device = deviceManager.Device; _context = deviceManager.Context; _vertexLayouts = deviceManager.VertexLayouts; var effect = deviceManager.Effect; _standardSmooth = effect.GetTechniqueByName("Standard|Smooth"); _standardFlat = effect.GetTechniqueByName("Standard|Flat"); _standardWireframe = effect.GetTechniqueByName("Standard|Wireframe"); _prelitSmooth = effect.GetTechniqueByName("Prelit|Smooth"); _prelitFlat = effect.GetTechniqueByName("Prelit|Flat"); _prelitWireframe = effect.GetTechniqueByName("Prelit|Wireframe"); _worldMatrix = effect.GetVariableByName("g_WorldMatrix").AsMatrix(); _postWorldMatrix = effect.GetVariableByName("g_PostWorldMatrix").AsMatrix(); _viewMatrix = effect.GetVariableByName("g_ViewMatrix").AsMatrix(); _projectionMatrix = effect.GetVariableByName("g_ProjectionMatrix").AsMatrix(); _color = effect.GetVariableByName("g_Color").AsVector(); _opacity = effect.GetVariableByName("g_Opacity").AsScalar(); _ambient = effect.GetVariableByName("g_Ambient").AsScalar(); _diffuse = effect.GetVariableByName("g_Diffuse").AsScalar(); _texture = effect.GetVariableByName("g_Texture").AsShaderResource(); _mask = effect.GetVariableByName("g_Mask").AsShaderResource(); _textureSampler = effect.GetVariableByName("g_TextureSampler").AsSampler(); _hasTexture = effect.GetVariableByName("g_HasTexture").AsScalar(); _hasMask = effect.GetVariableByName("g_HasMask").AsScalar(); _isInstanced = effect.GetVariableByName("g_IsInstanced").AsScalar(); _isColorTinted = effect.GetVariableByName("g_IsColorTinted").AsScalar(); _globalLight = effect.GetVariableByName("g_GlobalLight"); _lightViewProjectionMatrix = effect.GetVariableByName("g_LightViewProjectionMatrix").AsMatrix(); //Set the states to Unknown initially. _currentDrawingState = DrawingState.Unknown; _currentTopologyState = PrimitiveTopologyState.Unknown; //Set the default of the g_PostWorldMatrix to Identity, so it isn't required to be set. _postWorldMatrix.SetMatrix(Matrix.Identity); //Setup shadow map technique. var shadowEffect = deviceManager.ShadowEffect; _shadowMapStandard = shadowEffect.GetTechniqueByName("ShadowMapTechnique|Standard"); _shadowMapPrelit = shadowEffect.GetTechniqueByName("ShadowMapTechnique|Prelit"); _isShadowInstanced = shadowEffect.GetVariableByName("g_IsInstanced").AsScalar(); _shadowWorldMatrix = shadowEffect.GetVariableByName("g_WorldMatrix").AsMatrix(); _shadowHasMask = shadowEffect.GetVariableByName("g_HasMask").AsScalar(); _shadowMask = shadowEffect.GetVariableByName("g_Mask").AsShaderResource(); _shadowLightViewProjectionMatrix = shadowEffect.GetVariableByName("g_LightViewProjectionMatrix").AsMatrix(); }
private void InitializeRendererComponents() { Device = GetDevice(); Context = Device.ImmediateContext; SetupRenderTarget(Device); Effect = GetEffect(Device, Resources.effect); ShadowEffect = GetEffect(Device, Resources.effect_shadow); VertexLayouts = GetVertexLayouts(Device, Effect); using (var factory = SwapChain.GetParent<Factory>()) { factory.MakeWindowAssociation(_targetControl.Handle, WindowAssociationFlags.IgnoreAltEnter); } }