Ejemplo n.º 1
0
 public MgSwapchainCollection(IMgPresentationSurface layer, IMgThreadPartition partition, IMgImageTools imageTools)
 {
     mLayer      = layer;
     mPartition  = partition;
     mImageTools = imageTools;
     Format      = MgFormat.UNDEFINED;
 }
Ejemplo n.º 2
0
        public BufferInfo(IMgThreadPartition partition, MgBufferUsageFlagBits usage, MgMemoryPropertyFlagBits propertyFlags, uint bufferSize)
        {
            Debug.Assert(partition != null);

            mDevice = partition.Device;
            Debug.Assert(mDevice != null);

            mUsageFlags = usage;

            mMemoryPropertyFlags = propertyFlags;

            var bufferCreateInfo = new MgBufferCreateInfo
            {
                Usage = usage,
                Size  = bufferSize,
            };

            IMgBuffer buffer;

            var device = partition.Device;

            var result = device.CreateBuffer(bufferCreateInfo, null, out buffer);

            Debug.Assert(result == Result.SUCCESS);

            MgMemoryRequirements memReqs;

            device.GetBufferMemoryRequirements(buffer, out memReqs);
            mAlignment  = memReqs.Alignment;
            mBufferSize = memReqs.Size;

            uint memoryTypeIndex;

            partition.GetMemoryType(memReqs.MemoryTypeBits, mMemoryPropertyFlags, out memoryTypeIndex);

            var memAlloc = new MgMemoryAllocateInfo
            {
                MemoryTypeIndex = memoryTypeIndex,
                AllocationSize  = memReqs.Size,
            };

            IMgDeviceMemory deviceMemory;

            result = device.AllocateMemory(memAlloc, null, out deviceMemory);
            Debug.Assert(result == Result.SUCCESS);

            buffer.BindBufferMemory(device, deviceMemory, 0);


            mBuffer       = buffer;
            mDeviceMemory = deviceMemory;

            mDescriptor = new MgDescriptorBufferInfo
            {
                Buffer = mBuffer,
                Offset = 0,
                Range  = mBufferSize,
            };
        }
        public void Initialize(uint width, uint height)
        {
            // FOR RESIZING ??
            ReleaseUnmanagedResources();
            // GRAPHICS DEVICE
            mPresentationSurface.Initialize(width, height);
            mLogicalDevice = mDriverContext.CreateLogicalDevice(
                mPresentationSurface.Surface,
                MgDeviceExtensionOptions.ALL,
                MgQueueAllocation.One,
                MgQueueFlagBits.GRAPHICS_BIT | MgQueueFlagBits.COMPUTE_BIT);

            mPartition = mLogicalDevice.Queues[0].CreatePartition(MgCommandPoolCreateFlagBits.RESET_COMMAND_BUFFER_BIT);
        }
Ejemplo n.º 4
0
 public MockGraphicsConfiguration(IMgThreadPartition partition)
 {
     mDevice    = new MockDevice();
     mPartition = partition;
 }
Ejemplo n.º 5
0
 public MgStagingBufferOptimizer(IMgThreadPartition partition, IMgImageTools imageTools)
 {
     mPartition  = partition;
     mImageTools = imageTools;
 }
Ejemplo n.º 6
0
 public MgLinearImageOptimizer(IMgThreadPartition partition, IMgImageTools imageTools)
 {
     mPartition  = partition;
     mImageTools = imageTools;
 }
Ejemplo n.º 7
0
 public MgDefaultGraphicsDevice(IMgThreadPartition partition, IMgImageTools imageTools)
 {
     mPartition  = partition;
     mImageTools = imageTools;
 }