The methods in this class are grouped below.
(Links go to the GraphicsWindow Class Reference
page.)
- Driver/Configuration/Support Methods
- GraphicsWindow::postCreate(int
ct, GraphicsWindow **gw)=0
GraphicsWindow::shutdown()=0
GraphicsWindow::getVersion()=0
GraphicsWindow::getDriverString()=0
GraphicsWindow::config(HWND
hWnd)=0
GraphicsWindow::querySupport(int
what) = 0
- Window / Viewport / Transformations Methods
- GraphicsWindow::getHWnd(void)=0
GraphicsWindow::isPerspectiveView()
= 0
GraphicsWindow::getTextExtents(TCHAR *text, SIZE *sp)=0
GraphicsWindow::setTransform(const
Matrix3 &m) = 0
GraphicsWindow::getFlipped()=0
GraphicsWindow::setVirtualViewportParams(float
zoom, float xOffset, float yOffset) = 0
GraphicsWindow::setUseVirtualViewport(int
onOff) = 0
- Position / Size / Depth / Clipping Methods
- GraphicsWindow::setPos(int
x, int y, int w, int h) = 0
GraphicsWindow::setDisplayState(int
s) = 0
GraphicsWindow::getDisplayState()=0
GraphicsWindow::getWinSizeX()=0
GraphicsWindow::getWinSizeY()=0
GraphicsWindow::getWinDepth(void)=0
GraphicsWindow::getHitherCoord()=0
GraphicsWindow::getYonCoord()=0
- Buffer Access Methods
- GraphicsWindow::setBufAccess(int
which, int b) = 0
GraphicsWindow::getBufAccess(int
which) = 0
GraphicsWindow::getBufSize(int
which, int *size) = 0
GraphicsWindow::getBuf(int
which, int size, void *buf) = 0
GraphicsWindow::setBuf(int
which, int size, void *buf, RECT *rp) = 0
- DIB Methods
- GraphicsWindow::getDIB(BITMAPINFO
*bmi, int *size) = 0
GraphicsWindow::setBackgroundDIB(int
width, int height, BITMAPINFO *bmi)=0
GraphicsWindow::setBackgroundOffset(int
x, int y) = 0
- Texture Methods
- GraphicsWindow::getTextureSize(int
bkg=FALSE) = 0
GraphicsWindow::getTextureHandle(BITMAPINFO
*bmi) = 0
GraphicsWindow::setTextureByHandle(DWORD_PTR
handle, int texStage=0) = 0
GraphicsWindow::freeTextureHandle(DWORD_PTR
handle) = 0
GraphicsWindow::setTextureTiling(int
u, int v, int w=GW_TEX_NO_TILING) = 0
GraphicsWindow::getTextureTiling(int
which, int texStage=0) = 0
GraphicsWindow::setTexTransform(const
Matrix3 &m, int
texStage=0) = 0
GraphicsWindow::beginFrame()
= 0
GraphicsWindow::endFrame()
= 0
GraphicsWindow::setViewport(int
x, int y, int w, int h) = 0
- Drawing Setup
- GraphicsWindow::resetUpdateRect()
= 0
GraphicsWindow::enlargeUpdateRect(RECT
*rp) = 0
GraphicsWindow::getUpdateRect(RECT
*rp) = 0
GraphicsWindow::setRndLimits(DWORD
l) = 0
GraphicsWindow::getRndLimits()
= 0
GraphicsWindow::getRndMode()
= 0
GraphicsWindow::getMaxStripLength()
GraphicsWindow::setSkipCount(int
n) = 0
GraphicsWindow::getSkipCount()
= 0
- Light and Camera Methods
- GraphicsWindow::getMaxLights()
= 0
GraphicsWindow::setLight(int
num, const Light *l) = 0
GraphicsWindow::setLightExclusion(DWORD
exclVec) = 0
GraphicsWindow::setCamera(const
Camera &c) = 0
GraphicsWindow::setCameraMatrix(float
mat[4][4], Matrix3 *invTM, int persp, float hither, float yon)
= 0
GraphicsWindow::getCameraMatrix(float
mat[4][4], Matrix3 *invTM, int *persp, float *hither, float
*yon) = 0
- Material Methods
- GraphicsWindow::setMaterial(const
Material &m, int
index=0) = 0
GraphicsWindow::getMaterial()
= 0
GraphicsWindow::setTransparency(DWORD
settings) = 0
- Coordinate Transformation Methods
- GraphicsWindow::hTransPoint(const
Point3 *in, IPoint3 *out) = 0
GraphicsWindow::wTransPoint(const
Point3 *in, IPoint3 *out) = 0
GraphicsWindow::transPoint(const
Point3 *in, Point3 *out) = 0
- Drawing Methods
- Note: The old device coordinate calls have been changed (or
removed). In 3ds Max 2.0 and later, methods that start with "h"
take integer device coordinates with the origin at the lower-left.
Calls with a "w" in front take Windows device coordinates with the
origin at the upper left. Also Note: These "h" and "w" routines
perform NO clipping unless otherwise noted (clipping at this level
would be very expensive). Drawing outside the allowable region is
likely to cause 3ds Max to crash.
GraphicsWindow::hText(IPoint3 *xyz, TCHAR *s) = 0
GraphicsWindow::hMarker(IPoint3
*xyz, MarkerType type) = 0
GraphicsWindow::hPolyline(int
ct, IPoint3 *xyz, Point3 *rgb, int closed, int *es) = 0
GraphicsWindow::hPolyline(int
ct, IPoint3 *xyz, Point3 *rgb, Point3 *uvw, int closed, int
*es)
GraphicsWindow::hPolygon(int
ct, IPoint3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::hTriStrip(int
ct, IPoint3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::wText(IPoint3 *xyz, TCHAR *s) = 0
GraphicsWindow::wMarker(IPoint3
*xyz, MarkerType type) = 0
GraphicsWindow::wPolyline(int
ct, IPoint3 *xyz, Point3 *rgb, int closed, int *es) = 0
GraphicsWindow::wPolyline(int
ct, IPoint3 *xyz, Point3 *rgb, Point3 *uvw, int closed, int
*es)
GraphicsWindow::wPolygon(int
ct, IPoint3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::wTriStrip(int
ct, IPoint3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::text(Point3 *xyz, TCHAR *s) = 0
GraphicsWindow::marker(Point3
*xyz, MarkerType type) = 0
GraphicsWindow::polyline(int
ct, Point3 *xyz, Point3 *rgb, Point3 *uvw, int closed, int *es)
= 0
GraphicsWindow::polylineN(int
ct, Point3 *xyz, Point3 *nor, int closed, int *es) = 0
GraphicsWindow::polygon(int
ct, Point3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::startSegments()
= 0
GraphicsWindow::segment(Point3
*xyz, int vis) = 0
GraphicsWindow::endSegments()
= 0
GraphicsWindow::polygonN(int
ct, Point3 *xyz,
Point3 *nor, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::triStrip(int
ct, Point3 *xyz,
Point3 *rgb, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::triStripN(int
ct, Point3 *xyz,
Point3 *nor, Point3 *uvw, int texNum=1) =
0
GraphicsWindow::startTriangles()
= 0
GraphicsWindow::triangle(Point3
*xyz, Point3 *rgb) = 0
GraphicsWindow::triangleN(Point3 *xyz, Point3 *nor, Point3 *uvw, int texNum=1) = 0
GraphicsWindow::triangleNC(Point3
*xyz, Point3 *nor, Point3 *rgb) = 0
GraphicsWindow::triangleNCT(Point3 *xyz, Point3 *nor, Point3 *rgb, Point3 *uvw, int texNum=1) = 0
GraphicsWindow::endTriangles()
= 0
GraphicsWindow::lightVertex(const
Point3 &pos, const Point3 &nor, Point3 &rgb) =
0
GraphicsWindow::updateScreen()
= 0
GraphicsWindow::setColor(ColorType
t, float r, float g, float b) = 0
GraphicsWindow::clearScreen(RECT
*rp, int useBkg = FALSE) = 0
- Hit Testing Methods
- The following methods are used for hit testing. Typically you
use these methods in the following sequence:
1. You set a hit regions using setHitRegion().
2. You clear the hit code using clearHitCode().
3. You 'render' a primitive using the mode GW_PICK and at whatever
level you want to check at. For example, if you are in interested
in vertex hit testing, you would 'render' a series of markers using
a rendering mode that included GW_PICK. The GW_PICK 'rendering'
mode will cause the system to perform hit testing rather than
actually render the item.
4. After each item is 'rendered' you check to see if a hit was made
using checkHitCode(). This method returns TRUE of FALSE based on if
a hit was found. If you are looking for just a single hit, you
could abort as soon as checkHitCode() returns TRUE. If you are
interested in the closest hit, you loop through all the items
calling clearHitCode(), checkHitCode() and getHitDistance(). After
checking all the items you simply choose the smallest hit distance
from all the items you've checked.
GraphicsWindow::setHitRegion(HitRegion
*rgn) = 0
GraphicsWindow::clearHitCode()
= 0
GraphicsWindow::checkHitCode()
= 0
GraphicsWindow::getHitDistance()
= 0
GraphicsWindow::setHitCode(BOOL
h)=0
GraphicsWindow::setHitDistance(DWORD
d)=0
GraphicsWindow::interpWorld(Point3
*world1, Point3 *world2, float sParam, Point3 *interpPt) =
0
- Utility Functions (not part of class
GraphicsWindows)
GraphicsWindow *createGW(HWND
hWnd, GWinSetup
&gws)
void getRegionRect(HitRegion *hr, RECT *rect)
BOOL pointInRegion(int x, int y, HitRegion *hr)
int distToLine(int x, int y, int *p1, int *p2)
int lineCrossesRect(RECT *rc, int *p1, int *p2)
int segCrossesCircle(int cx, int cy, int r, int *p1, int *p2)
BOOL insideTriangle(IPoint3 &p0, IPoint3 &p1, IPoint3
&p2, IPoint3 &q)
int getZfromTriangle(IPoint3 &p0, IPoint3 &p1, IPoint3
&p2, IPoint3 &q)
HINSTANCE GetGraphicsLibHandle(TCHAR *driverLibName)
BOOL GraphicsSystemIsAvailable(HINSTANCE drv)
BOOL GraphicsSystemCanConfigure(HINSTANCE drv)
BOOL GraphicsSystemConfigure(HWND hWnd, HINSTANCE drv)
void FreeGraphicsLibHandle(HINSTANCE drv)