//------------------------------------------------------ // Loading //------------------------------------------------------ // Factory workers to create effects private T createEffect <T>(ProgramLoader pLoader, string resource_folder_name) where T : RenderEffect { T temp_effect = (T)Activator.CreateInstance(typeof(T), pLoader, resource_folder_name, _resolution); _effects.Add(temp_effect); return(temp_effect); }
public RenderDriver( ProgramLoader pLoader, StaticImageLoader tLoader, Resolution resolution) { _resolution = resolution; _enable_debug_views = false; // Render UBOs _ubo_game_config = new UniformBuffer(BufferStorageFlags.DynamicStorageBit, 0, new EngineHelper.size[] { EngineHelper.size.vec4, EngineHelper.size.f }); _ubo_camera = new UniformBuffer(BufferStorageFlags.DynamicStorageBit, 1, new EngineHelper.size[] { EngineHelper.size.mat4, EngineHelper.size.mat4, EngineHelper.size.mat4, EngineHelper.size.mat4, EngineHelper.size.mat4, EngineHelper.size.vec3, EngineHelper.size.vec3 }); // Render FX List _effects = new List <RenderEffect>(); // Render FXs _fxQuad = createEffect <fx_Quad>(pLoader, "common/"); _fxTest = createEffect <fx_Test>(pLoader, "test/"); _fxCrosshair = createEffect <fx_Crosshair>(pLoader, tLoader, "crosshair/"); _fxSpecial = createEffect <fx_Special>(pLoader, "special/"); _fxFinal = createEffect <fx_Final>(pLoader, "final/"); _fxGBuffer = createEffect <fx_gBuffer>(pLoader, tLoader, "gBuffer/"); _fxVXGI = createEffect <fx_VXGI>(pLoader, "vxgi/"); _fxShadow = createEffect <fx_Shadow>(pLoader, "shadow/"); _fxSkyBox = createEffect <fx_SkyBox>(pLoader, tLoader, "skybox/"); _fxHDR = createEffect <fx_HDR>(pLoader, "hdr/"); _fxLens = createEffect <fx_Lens>(pLoader, tLoader, "lens/"); _fxDepthOfField = createEffect <fx_DepthOfField>(pLoader, tLoader, "dof/"); _fxMotionBlur = createEffect <fx_MotionBlur>(pLoader, "motion_blur/"); _fxAtmosphericScattering = createEffect <fx_AtmosphericScattering>(pLoader, "ats/"); }