packages feed

wgpu-raw-hs-0.3.0.0: src/WGPU/Raw/Generated/Struct/WGPUTextureDescriptor.hsc

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- This file was generated by wgpu-raw-hs-codegen on:
--   2021-08-25T10:02:03.522705
-- Using wgpu-native git hash:
--   b10496e7eed9349f0fd541e6dfe5029cb436de74 wgpu-native (v0.9.2.2)

module WGPU.Raw.Generated.Struct.WGPUTextureDescriptor where

#include "wgpu.h"

import Data.Word (Word16, Word32, Word64)
import Data.Int (Int32)
import Foreign
import Foreign.C.Types
import WGPU.Raw.Types
import Prelude (pure, ($!))
import WGPU.Raw.Generated.Enum.WGPUTextureDimension
import WGPU.Raw.Generated.Enum.WGPUTextureFormat
import WGPU.Raw.Generated.Struct.WGPUChainedStruct
import WGPU.Raw.Generated.Struct.WGPUExtent3D

data WGPUTextureDescriptor = WGPUTextureDescriptor {
  nextInChain :: Ptr (WGPUChainedStruct),
  label :: Ptr (CChar),
  usage :: WGPUTextureUsageFlags,
  dimension :: WGPUTextureDimension,
  size :: WGPUExtent3D,
  format :: WGPUTextureFormat,
  mipLevelCount :: Word32,
  sampleCount :: Word32
}

instance Storable WGPUTextureDescriptor where
  sizeOf _ = (#size WGPUTextureDescriptor)
  {-# INLINABLE sizeOf #-}
  alignment = sizeOf
  {-# INLINABLE alignment #-}
  peek ptr = do
    nextInChain <- (#peek WGPUTextureDescriptor, nextInChain) ptr
    label <- (#peek WGPUTextureDescriptor, label) ptr
    usage <- (#peek WGPUTextureDescriptor, usage) ptr
    dimension <- (#peek WGPUTextureDescriptor, dimension) ptr
    size <- (#peek WGPUTextureDescriptor, size) ptr
    format <- (#peek WGPUTextureDescriptor, format) ptr
    mipLevelCount <- (#peek WGPUTextureDescriptor, mipLevelCount) ptr
    sampleCount <- (#peek WGPUTextureDescriptor, sampleCount) ptr
    pure $! WGPUTextureDescriptor{..}
  {-# INLINABLE peek #-}
  poke ptr WGPUTextureDescriptor{..} = do
    (#poke WGPUTextureDescriptor, nextInChain) ptr nextInChain
    (#poke WGPUTextureDescriptor, label) ptr label
    (#poke WGPUTextureDescriptor, usage) ptr usage
    (#poke WGPUTextureDescriptor, dimension) ptr dimension
    (#poke WGPUTextureDescriptor, size) ptr size
    (#poke WGPUTextureDescriptor, format) ptr format
    (#poke WGPUTextureDescriptor, mipLevelCount) ptr mipLevelCount
    (#poke WGPUTextureDescriptor, sampleCount) ptr sampleCount
  {-# INLINABLE poke #-}