Path: blob/21.2-virgl/src/gallium/frontends/nine/indexbuffer9.h
4561 views
/*1* Copyright 2011 Joakim Sindholt <[email protected]>2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* on the rights to use, copy, modify, merge, publish, distribute, sub7* license, and/or sell copies of the Software, and to permit persons to whom8* the Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL17* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,18* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20* USE OR OTHER DEALINGS IN THE SOFTWARE. */2122#ifndef _NINE_INDEXBUFFER9_H_23#define _NINE_INDEXBUFFER9_H_2425#include "resource9.h"26#include "buffer9.h"27#include "pipe/p_state.h"2829struct pipe_screen;30struct pipe_context;31struct pipe_transfer;32struct NineDevice9;3334struct NineIndexBuffer935{36struct NineBuffer9 base;3738/* g3d stuff */39unsigned index_size;4041D3DINDEXBUFFER_DESC desc;42};43static inline struct NineIndexBuffer9 *44NineIndexBuffer9( void *data )45{46return (struct NineIndexBuffer9 *)data;47}4849HRESULT50NineIndexBuffer9_new( struct NineDevice9 *pDevice,51D3DINDEXBUFFER_DESC *pDesc,52struct NineIndexBuffer9 **ppOut );5354HRESULT55NineIndexBuffer9_ctor( struct NineIndexBuffer9 *This,56struct NineUnknownParams *pParams,57D3DINDEXBUFFER_DESC *pDesc );5859void60NineIndexBuffer9_dtor( struct NineIndexBuffer9 *This );6162/*** Nine private ***/6364struct pipe_resource *65NineIndexBuffer9_GetBuffer( struct NineIndexBuffer9 *This,66unsigned *offset );6768/*** Direct3D public ***/6970HRESULT NINE_WINAPI71NineIndexBuffer9_Lock( struct NineIndexBuffer9 *This,72UINT OffsetToLock,73UINT SizeToLock,74void **ppbData,75DWORD Flags );7677HRESULT NINE_WINAPI78NineIndexBuffer9_Unlock( struct NineIndexBuffer9 *This );7980HRESULT NINE_WINAPI81NineIndexBuffer9_GetDesc( struct NineIndexBuffer9 *This,82D3DINDEXBUFFER_DESC *pDesc );8384#endif /* _NINE_INDEXBUFFER9_H_ */858687