Example #1
0
        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);
        }
Example #2
0
 public Texture2DProvider(IResourceProviderStreamSource source, RenderCoordinator coordinator)
     : base(
         source, coordinator,
         enableThreadedCreate: false, enableThreadedPreload: true
         )
 {
     DisposeHandler = _DisposeHandler;
 }
Example #3
0
 public void SetStreamSource(IResourceProviderStreamSource source, bool clearCache)
 {
     if (source == StreamSource)
     {
         return;
     }
     if (source == null)
     {
         throw new ArgumentNullException("source");
     }
     if (clearCache)
     {
         ClearCache();
     }
     StreamSource = source;
 }
Example #4
0
 public FreeTypeFontProvider(IResourceProviderStreamSource provider, RenderCoordinator coordinator)
 // FIXME: Enable threaded create?
     : base(provider, coordinator, enableThreadedCreate: false, enableThreadedPreload: true)
 {
 }