-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Use easytensor with vulkan-api. -- -- Use easytensor DataFrame types with vulkan-api. This package provides -- an orphan instance of PrimBytes for Vulkan structures, so they can be -- used as elements of DataFrames. In addition, it provides a few helper -- functions for working with array-like structures. @package easytensor-vulkan @version 2.0.1.0 -- | This module provides an orphan instance of PrimBytes for -- VulkanMarshalPrim structures. This enables them to be stored -- in DataFrames from easytensor package. Thanks to -- internal structure of Vulkan structures, they can be manipulated -- inside DataFrames in a very efficient way (just by copying byte -- arrays). However, original DataFrames are based on unpinned -- arrays; functions here check this and copy data to new pinned arrays -- if needed. -- -- In addition to the orphan instance, this module provides a few handy -- helper functions. module Graphics.Vulkan.Marshal.Create.DataFrame -- | Write an array of values in one go. setVec :: forall fname x t. (FieldType fname x ~ t, PrimBytes t, KnownDim (FieldArrayLength fname x), CanWriteFieldArray fname x) => Vector t (FieldArrayLength fname x) -> CreateVkStruct x '[fname] () -- | Get an array of values, possibly without copying (if vector -- implementation allows). getVec :: forall fname x t. (FieldType fname x ~ t, PrimBytes t, KnownDim (FieldArrayLength fname x), CanReadFieldArray fname x) => x -> Vector t (FieldArrayLength fname x) -- | Given the number of elements, create a new pinned DataFrame and -- initialize it using the provided function. -- -- The argument function is called one time with a Ptr pointing to -- the beginning of a contiguous array. This array is converted into a -- dataframe, possibly without copying. -- -- It is safe to pass result of this function to withDFPtr. fillDataFrame :: forall a. PrimBytes a => Word -> (Ptr a -> IO ()) -> IO (Vector a (XN 0)) -- | Run some operation with a pointer to the first item in the frame. All -- items of the frame are kept in a contiguous memory area accessed by -- that pointer. -- -- The function attempts to get an underlying ByteArray# without -- data copy; otherwise, it creates a new pinned ByteArray# and -- passes a pointer to it. Therefore: -- --