protected ResourceProvider( IResourceProviderStreamSource source, RenderCoordinator coordinator, bool enableThreadedPreload, bool enableThreadedCreate ) { if (coordinator == null) { throw new ArgumentNullException("A render coordinator is required", "coordinator"); } StreamSource = source; Coordinator = coordinator; EnableThreadedPreload = enableThreadedPreload; switch (coordinator.GraphicsBackendName) { case "D3D9": case "D3D11": case "Vulkan": EnableThreadedCreate = enableThreadedCreate && true; break; default: EnableThreadedCreate = enableThreadedCreate && false; break; } PreloadQueue = coordinator.ThreadGroup.GetQueueForType <PreloadWorkItem>(forMainThread: !EnableThreadedPreload); CreateQueue = coordinator.ThreadGroup.GetQueueForType <CreateWorkItem>(forMainThread: !EnableThreadedCreate); }
public Texture2DProvider(IResourceProviderStreamSource source, RenderCoordinator coordinator) : base( source, coordinator, enableThreadedCreate: false, enableThreadedPreload: true ) { DisposeHandler = _DisposeHandler; }
public void SetStreamSource(IResourceProviderStreamSource source, bool clearCache) { if (source == StreamSource) { return; } if (source == null) { throw new ArgumentNullException("source"); } if (clearCache) { ClearCache(); } StreamSource = source; }
public FreeTypeFontProvider(IResourceProviderStreamSource provider, RenderCoordinator coordinator) // FIXME: Enable threaded create? : base(provider, coordinator, enableThreadedCreate: false, enableThreadedPreload: true) { }