home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 58 / pcpp58a.iso / extras / quake 3 source / Q3A_ToolSource.exe / Main / ISelectedFace.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-01-02  |  3.4 KB  |  92 lines

  1. //-----------------------------------------------------------------------------
  2. //
  3. // $LogFile$
  4. // $Revision: 1.1.1.4.2.1 $
  5. // $Author: ttimo $
  6. // $Date: 2000/02/10 03:00:20 $
  7. // $Log: ISelectedFace.h,v $
  8. // Revision 1.1.1.4.2.1  2000/02/10 03:00:20  ttimo
  9. // adding IShaders.h
  10. //
  11. // Revision 1.1.1.4  2000/01/18 00:17:12  ttimo
  12. // merging in for RC
  13. //
  14. // Revision 1.3  2000/01/17 23:53:42  TBesset
  15. // ready for merge in sourceforge (RC candidate)
  16. //
  17. // Revision 1.2  2000/01/07 16:40:10  TBesset
  18. // merged from BSP frontend
  19. //
  20. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  21. // Q3Radiant public version
  22. //
  23. // Revision 1.1.1.1.2.1  1999/12/29 21:39:35  TBesset
  24. // updated to update3 from Robert
  25. //
  26. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  27. // Q3Radiant public version
  28. // Revision 1.1.1.3  1999/12/29 18:31:27  TBesset
  29. // Q3Radiant public version
  30. //
  31. // Revision 1.2  1999/11/22 17:46:45  Timo & Christine
  32. // merged EARadiant into the main tree
  33. // bug fixes for Q3Plugin / EAPlugin
  34. // export for Robert
  35. //
  36. // Revision 1.1.4.3  1999/11/15 22:39:40  Timo & Christine
  37. // bug fixing / additional features after update 173 from Robert
  38. //
  39. // Revision 1.1.4.2  1999/11/14 16:26:10  Timo & Christine
  40. // first beta of the ritualmap surface plugin
  41. //
  42. // Revision 1.1.4.1  1999/11/03 20:37:59  Timo & Christine
  43. // MEAN plugin for Q3Radiant, alpha version
  44. //
  45. // Revision 1.1.2.1  1999/10/27 08:34:26  Timo & Christine
  46. // preview version of the texture tools plugin is ready
  47. // ( TexTool.dll plugin is in Q3Plugin module )
  48. // plugins can draw in their own window using Radiant's qgl bindings
  49. //
  50. //
  51. // DESCRIPTION:
  52. // Quick interface hack for selected face interface
  53. // this one really needs more work, but I'm in a hurry with TexTool
  54.  
  55. #ifndef __ISELECTEDFACE_H_
  56. #define __ISELECTEDFACE_H_
  57.  
  58. // define a GUID for this interface so plugins can access and reference it
  59. // {5416A2A0-8633-11d3-8EF3-88B61F3A3B12}
  60. static const GUID QERSelectedFaceTable_GUID = 
  61. { 0x5416a2a0, 0x8633, 0x11d3, { 0x8e, 0xf3, 0x88, 0xb6, 0x1f, 0x3a, 0x3b, 0x12 } };
  62.  
  63. //++timo TODO: this interface needs some cleanup with the new texture / shaders interface
  64.  
  65. // retrieve the texture number to bind to
  66. typedef int        (WINAPI* PFN_GETTEXTURENUMBER)    ();
  67. // winding_t is assumed to have MAX_POINTS_ON_WINDING allocated
  68. typedef int        (WINAPI* PFN_GETFACEINFO)        (_QERFaceData*, winding_t* );
  69. // tell editor to update the selected face data
  70. typedef int        (WINAPI* PFN_SETFACEINFO)        (_QERFaceData*);
  71. // retrieving some texture information
  72. typedef void    (WINAPI* PFN_GETTEXTURESIZE)    ( int Size[2] );
  73. // loading the qtexture_t from the texture name
  74. typedef qtexture_t* (WINAPI* PFN_TEXTUREFORNAME) ( const char *name );
  75. // straight func pointer to Select_SetTexture
  76. // last parameter must be casted to an IPluginTexdef
  77. typedef void    (WINAPI* PFN_SELECT_SETTEXTURE)        (texdef_t *texdef, brushprimit_texdef_t *brushprimit_texdef, bool bFitScale = false, void* pPlugTexdef = NULL);
  78.  
  79. // NOTE: some things in there are not really related to the selected face
  80. // having some stuff moved into a textures-dedicated part ?
  81. struct _QERSelectedFaceTable
  82. {
  83.     int m_nSize;
  84.     PFN_GETTEXTURENUMBER    m_pfnGetTextureNumber;
  85.     PFN_GETFACEINFO            m_pfnGetFaceInfo;
  86.     PFN_SETFACEINFO            m_pfnSetFaceInfo;
  87.     PFN_GETTEXTURESIZE        m_pfnGetTextureSize;
  88.     PFN_TEXTUREFORNAME        m_pfnTextureForName;
  89.     PFN_SELECT_SETTEXTURE    m_pfnSelect_SetTexture;
  90. };
  91.  
  92. #endif