Method Groups for Class GraphicsWindow

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)