Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright 2011 Joakim Sindholt <opensource@zhasha.com>
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * on the rights to use, copy, modify, merge, publish, distribute, sub
  8.  * license, and/or sell copies of the Software, and to permit persons to whom
  9.  * the Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice (including the next
  12.  * paragraph) shall be included in all copies or substantial portions of the
  13.  * Software.
  14.  *
  15.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17.  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
  18.  * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
  19.  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  20.  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  21.  * USE OR OTHER DEALINGS IN THE SOFTWARE. */
  22.  
  23. #ifndef _NINE_RESOURCE9_H_
  24. #define _NINE_RESOURCE9_H_
  25.  
  26. #include "iunknown.h"
  27. #include "pipe/p_state.h"
  28.  
  29. struct pipe_screen;
  30. struct util_hash_table;
  31. struct NineDevice9;
  32.  
  33. struct NineResource9
  34. {
  35.     struct NineUnknown base;
  36.  
  37.     struct pipe_resource *resource; /* device resource */
  38.  
  39.     D3DRESOURCETYPE type;
  40.     D3DPOOL pool;
  41.     DWORD priority;
  42.     DWORD usage;
  43.  
  44.     struct pipe_resource info; /* resource configuration */
  45.  
  46.     /* for [GS]etPrivateData/FreePrivateData */
  47.     struct util_hash_table *pdata;
  48. };
  49. static INLINE struct NineResource9 *
  50. NineResource9( void *data )
  51. {
  52.     return (struct NineResource9 *)data;
  53. }
  54.  
  55. HRESULT
  56. NineResource9_ctor( struct NineResource9 *This,
  57.                     struct NineUnknownParams *pParams,
  58.                     struct pipe_resource *initResource,
  59.                     BOOL Allocate,
  60.                     D3DRESOURCETYPE Type,
  61.                     D3DPOOL Pool,
  62.                     DWORD Usage);
  63.  
  64. void
  65. NineResource9_dtor( struct NineResource9 *This );
  66.  
  67. /*** Nine private methods ***/
  68.  
  69. struct pipe_resource *
  70. NineResource9_GetResource( struct NineResource9 *This );
  71.  
  72. D3DPOOL
  73. NineResource9_GetPool( struct NineResource9 *This );
  74.  
  75. /*** Direct3D public methods ***/
  76.  
  77. HRESULT WINAPI
  78. NineResource9_SetPrivateData( struct NineResource9 *This,
  79.                               REFGUID refguid,
  80.                               const void *pData,
  81.                               DWORD SizeOfData,
  82.                               DWORD Flags );
  83.  
  84. HRESULT WINAPI
  85. NineResource9_GetPrivateData( struct NineResource9 *This,
  86.                               REFGUID refguid,
  87.                               void *pData,
  88.                               DWORD *pSizeOfData );
  89.  
  90. HRESULT WINAPI
  91. NineResource9_FreePrivateData( struct NineResource9 *This,
  92.                                REFGUID refguid );
  93.  
  94. DWORD WINAPI
  95. NineResource9_SetPriority( struct NineResource9 *This,
  96.                            DWORD PriorityNew );
  97.  
  98. DWORD WINAPI
  99. NineResource9_GetPriority( struct NineResource9 *This );
  100.  
  101. void WINAPI
  102. NineResource9_PreLoad( struct NineResource9 *This );
  103.  
  104. D3DRESOURCETYPE WINAPI
  105. NineResource9_GetType( struct NineResource9 *This );
  106.  
  107. #endif /* _NINE_RESOURCE9_H_ */
  108.