packages feed

wgpu-raw-hs-0.3.0.0: src/WGPU/Raw/Generated/Struct/WGPURenderPipelineDescriptor.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.WGPURenderPipelineDescriptor 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.Struct.WGPUChainedStruct
import WGPU.Raw.Generated.Struct.WGPUVertexState
import WGPU.Raw.Generated.Struct.WGPUPrimitiveState
import WGPU.Raw.Generated.Struct.WGPUDepthStencilState
import WGPU.Raw.Generated.Struct.WGPUMultisampleState
import WGPU.Raw.Generated.Struct.WGPUFragmentState

data WGPURenderPipelineDescriptor = WGPURenderPipelineDescriptor {
  nextInChain :: Ptr (WGPUChainedStruct),
  label :: Ptr (CChar),
  layout :: WGPUPipelineLayout,
  vertex :: WGPUVertexState,
  primitive :: WGPUPrimitiveState,
  depthStencil :: Ptr (WGPUDepthStencilState),
  multisample :: WGPUMultisampleState,
  fragment :: Ptr (WGPUFragmentState)
}

instance Storable WGPURenderPipelineDescriptor where
  sizeOf _ = (#size WGPURenderPipelineDescriptor)
  {-# INLINABLE sizeOf #-}
  alignment = sizeOf
  {-# INLINABLE alignment #-}
  peek ptr = do
    nextInChain <- (#peek WGPURenderPipelineDescriptor, nextInChain) ptr
    label <- (#peek WGPURenderPipelineDescriptor, label) ptr
    layout <- (#peek WGPURenderPipelineDescriptor, layout) ptr
    vertex <- (#peek WGPURenderPipelineDescriptor, vertex) ptr
    primitive <- (#peek WGPURenderPipelineDescriptor, primitive) ptr
    depthStencil <- (#peek WGPURenderPipelineDescriptor, depthStencil) ptr
    multisample <- (#peek WGPURenderPipelineDescriptor, multisample) ptr
    fragment <- (#peek WGPURenderPipelineDescriptor, fragment) ptr
    pure $! WGPURenderPipelineDescriptor{..}
  {-# INLINABLE peek #-}
  poke ptr WGPURenderPipelineDescriptor{..} = do
    (#poke WGPURenderPipelineDescriptor, nextInChain) ptr nextInChain
    (#poke WGPURenderPipelineDescriptor, label) ptr label
    (#poke WGPURenderPipelineDescriptor, layout) ptr layout
    (#poke WGPURenderPipelineDescriptor, vertex) ptr vertex
    (#poke WGPURenderPipelineDescriptor, primitive) ptr primitive
    (#poke WGPURenderPipelineDescriptor, depthStencil) ptr depthStencil
    (#poke WGPURenderPipelineDescriptor, multisample) ptr multisample
    (#poke WGPURenderPipelineDescriptor, fragment) ptr fragment
  {-# INLINABLE poke #-}