Ejemplo n.º 1
0
        public GLDescriptorPool(int poolSize, IGLImageDescriptorEntrypoint imgDescriptor)
        {
            Sets = new ConcurrentBag <GLDescriptorSet> ();

            for (int i = 0; i < poolSize; ++i)
            {
                var descriptorSet = new GLDescriptorSet(i, imgDescriptor);
                Sets.Add(descriptorSet);
            }
        }
Ejemplo n.º 2
0
        void SetupCombinedImageSamplers(IGLImageDescriptorEntrypoint entrypoint, uint noOfCombinedImageSamplers)
        {
            var cis = new GLImageDescriptor[noOfCombinedImageSamplers];

            for (var i = 0; i < noOfCombinedImageSamplers; i += 1)
            {
                cis[i] = new GLImageDescriptor(entrypoint);
            }
            CombinedImageSamplers = new GLPoolResource <GLImageDescriptor>(
                noOfCombinedImageSamplers,
                cis);
        }
Ejemplo n.º 3
0
        public GLNextDescriptorPool(MgDescriptorPoolCreateInfo createInfo, IGLImageDescriptorEntrypoint entrypoint)
        {
            MaxSets        = createInfo.MaxSets;
            mAvailableSets = new ConcurrentBag <IGLDescriptorSet>();
            for (var i = 1U; i <= MaxSets; i += 1)
            {
                // STARTING FROM 1 - 0 == (default) uint
                mAvailableSets.Add(new GLNextDescriptorSet(i, this));
            }
            AllocatedSets = new Dictionary <uint, IGLDescriptorSet>();

            var  noOfUniformBlocks         = 0U;
            uint noOfStorageBuffers        = 0U;
            uint noOfCombinedImageSamplers = 0U;

            foreach (var pool in createInfo.PoolSizes)
            {
                switch (pool.Type)
                {
                case MgDescriptorType.UNIFORM_BUFFER:
                case MgDescriptorType.UNIFORM_BUFFER_DYNAMIC:
                    noOfUniformBlocks += pool.DescriptorCount;
                    break;

                case MgDescriptorType.STORAGE_BUFFER:
                case MgDescriptorType.STORAGE_BUFFER_DYNAMIC:
                    noOfStorageBuffers += pool.DescriptorCount;
                    break;

                case MgDescriptorType.COMBINED_IMAGE_SAMPLER:
                    noOfCombinedImageSamplers += pool.DescriptorCount;
                    break;
                }
            }

            SetupCombinedImageSamplers(entrypoint, noOfCombinedImageSamplers);
            SetupUniformBlocks(noOfUniformBlocks);
            SetupStorageBuffers(noOfStorageBuffers);
        }
Ejemplo n.º 4
0
 public DefaultGLDeviceEntrypoint
 (
     IGLCmdVBOEntrypoint vbo,
     IGLSamplerEntrypoint sampler,
     IGLDeviceImageEntrypoint image,
     IGLDeviceImageViewEntrypoint imageView,
     IGLImageDescriptorEntrypoint imageDescriptor,
     IGLShaderModuleEntrypoint shaderModule,
     IGLDescriptorPoolEntrypoint descriptorPool,
     IGLBufferEntrypoint buffers,
     IGLDeviceMemoryEntrypoint deviceMemory,
     IGLSemaphoreEntrypoint semaphore,
     IGLGraphicsPipelineEntrypoint graphicsPipeline,
     IGLImageFormatEntrypoint imageFormat,
     IGLGraphicsPipelineCompiler graphicsCompiler,
     IGLFenceEntrypoint fence,
     IGLCmdShaderProgramEntrypoint shaderProgram,
     IGLDescriptorSetEntrypoint descriptorSet,
     IGLUniformBlockEntrypoint uniformBlocks
 )
 {
     VBO              = vbo;
     Sampler          = sampler;
     Image            = image;
     ImageView        = imageView;
     ImageDescriptor  = imageDescriptor;
     ShaderModule     = shaderModule;
     DescriptorPool   = descriptorPool;
     Buffers          = buffers;
     DeviceMemory     = deviceMemory;
     Semaphore        = semaphore;
     GraphicsPipeline = graphicsPipeline;
     ImageFormat      = imageFormat;
     GraphicsCompiler = graphicsCompiler;
     Fence            = fence;
     ShaderProgram    = shaderProgram;
     DescriptorSet    = descriptorSet;
     UniformBlocks    = uniformBlocks;
 }
Ejemplo n.º 5
0
 public DefaultGLDescriptorSetEntrypoint(IGLImageDescriptorEntrypoint image)
 {
     mImage = image;
 }
Ejemplo n.º 6
0
 public GLImageDescriptor(IGLImageDescriptorEntrypoint imgDescriptor)
 {
     mImgDescriptor = imgDescriptor;
 }
Ejemplo n.º 7
0
 public FullGLDescriptorPoolEntrypoint(IGLImageDescriptorEntrypoint entrypoint)
 {
     mImgDescriptor = entrypoint;
 }
Ejemplo n.º 8
0
 public GLNextDescriptorSetUpdator(IGLImageDescriptorEntrypoint image)
 {
     mImage = image;
 }
Ejemplo n.º 9
0
 public GLImageDescriptor(IGLImageDescriptorEntrypoint entrypoint)
 {
     Entrypoint = entrypoint;
 }