Ejemplo n.º 1
0
 /// <summary>
 /// Reports capabilities of a physical device.
 /// </summary>
 public PhysicalDeviceFeatures GetFeatures()
 {
     unsafe
     {
         try
         {
             PhysicalDeviceFeatures result = default(PhysicalDeviceFeatures);
             Interop.Commands.vkGetPhysicalDeviceFeatures(this.handle, &result);
             return(result);
         }
         finally
         {
             Interop.HeapUtil.FreeLog();
         }
     }
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="pointer">
        /// </param>
        internal static unsafe PhysicalDeviceFeatures MarshalFrom(SharpVk.Interop.PhysicalDeviceFeatures *pointer)
        {
            PhysicalDeviceFeatures result = default(PhysicalDeviceFeatures);

            result.RobustBufferAccess                      = pointer->RobustBufferAccess;
            result.FullDrawIndexUint32                     = pointer->FullDrawIndexUint32;
            result.ImageCubeArray                          = pointer->ImageCubeArray;
            result.IndependentBlend                        = pointer->IndependentBlend;
            result.GeometryShader                          = pointer->GeometryShader;
            result.TessellationShader                      = pointer->TessellationShader;
            result.SampleRateShading                       = pointer->SampleRateShading;
            result.DualSourceBlend                         = pointer->DualSourceBlend;
            result.LogicOp                                 = pointer->LogicOp;
            result.MultiDrawIndirect                       = pointer->MultiDrawIndirect;
            result.DrawIndirectFirstInstance               = pointer->DrawIndirectFirstInstance;
            result.DepthClamp                              = pointer->DepthClamp;
            result.DepthBiasClamp                          = pointer->DepthBiasClamp;
            result.FillModeNonSolid                        = pointer->FillModeNonSolid;
            result.DepthBounds                             = pointer->DepthBounds;
            result.WideLines                               = pointer->WideLines;
            result.LargePoints                             = pointer->LargePoints;
            result.AlphaToOne                              = pointer->AlphaToOne;
            result.MultiViewport                           = pointer->MultiViewport;
            result.SamplerAnisotropy                       = pointer->SamplerAnisotropy;
            result.TextureCompressionETC2                  = pointer->TextureCompressionETC2;
            result.TexturecompressionastcLdr               = pointer->TexturecompressionastcLdr;
            result.TextureCompressionBC                    = pointer->TextureCompressionBC;
            result.OcclusionQueryPrecise                   = pointer->OcclusionQueryPrecise;
            result.PipelineStatisticsQuery                 = pointer->PipelineStatisticsQuery;
            result.VertexPipelineStoresAndAtomics          = pointer->VertexPipelineStoresAndAtomics;
            result.FragmentStoresAndAtomics                = pointer->FragmentStoresAndAtomics;
            result.ShaderTessellationAndGeometryPointSize  = pointer->ShaderTessellationAndGeometryPointSize;
            result.ShaderImageGatherExtended               = pointer->ShaderImageGatherExtended;
            result.ShaderStorageImageExtendedFormats       = pointer->ShaderStorageImageExtendedFormats;
            result.ShaderStorageImageMultisample           = pointer->ShaderStorageImageMultisample;
            result.ShaderStorageImageReadWithoutFormat     = pointer->ShaderStorageImageReadWithoutFormat;
            result.ShaderStorageImageWriteWithoutFormat    = pointer->ShaderStorageImageWriteWithoutFormat;
            result.ShaderUniformBufferArrayDynamicIndexing = pointer->ShaderUniformBufferArrayDynamicIndexing;
            result.ShaderSampledImageArrayDynamicIndexing  = pointer->ShaderSampledImageArrayDynamicIndexing;
            result.ShaderStorageBufferArrayDynamicIndexing = pointer->ShaderStorageBufferArrayDynamicIndexing;
            result.ShaderStorageImageArrayDynamicIndexing  = pointer->ShaderStorageImageArrayDynamicIndexing;
            result.ShaderClipDistance                      = pointer->ShaderClipDistance;
            result.ShaderCullDistance                      = pointer->ShaderCullDistance;
            result.ShaderFloat64                           = pointer->ShaderFloat64;
            result.ShaderInt64                             = pointer->ShaderInt64;
            result.ShaderInt16                             = pointer->ShaderInt16;
            result.ShaderResourceResidency                 = pointer->ShaderResourceResidency;
            result.ShaderResourceMinLod                    = pointer->ShaderResourceMinLod;
            result.SparseBinding                           = pointer->SparseBinding;
            result.SparseResidencyBuffer                   = pointer->SparseResidencyBuffer;
            result.SparseResidencyImage2D                  = pointer->SparseResidencyImage2D;
            result.SparseResidencyImage3D                  = pointer->SparseResidencyImage3D;
            result.SparseResidency2Samples                 = pointer->SparseResidency2Samples;
            result.SparseResidency4Samples                 = pointer->SparseResidency4Samples;
            result.SparseResidency8Samples                 = pointer->SparseResidency8Samples;
            result.SparseResidency16Samples                = pointer->SparseResidency16Samples;
            result.SparseResidencyAliased                  = pointer->SparseResidencyAliased;
            result.VariableMultisampleRate                 = pointer->VariableMultisampleRate;
            result.InheritedQueries                        = pointer->InheritedQueries;
            return(result);
        }