Home Docs
Graphics.h Documentation
Compiler

Viewport and Screen

Screen & Viewport in graphics.h

Viewport functions let you define a drawing window inside the full graphics screen. This is useful for panels, mini canvases, clipping, and UI-style layouts.

On This Page

Core Functions

void setviewport(int left, int top, int right, int bottom, int clip);
void clearviewport(void);
void getviewsettings(struct viewporttype *viewport);
int getmaxx(void);
int getmaxy(void);
  • setviewport(): sets active drawing region.
  • clip: if non-zero, drawing is clipped to viewport.
  • clearviewport(): clears only current viewport, not full screen.

How Viewport Works

After setviewport(), coordinates are relative to viewport origin. So (0, 0) becomes the viewport’s top-left corner.

setviewport(60, 60, 320, 240, 1);
line(0, 0, 200, 120);  // draws inside viewport space

Call setviewport(0, 0, getmaxx(), getmaxy(), 1) to return to full-screen drawing coordinates.

Viewport Example Program

#include <graphics.h>
#include <conio.h>

int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");

    setbkcolor(BLACK);
    cleardevice();

    setcolor(WHITE);
    rectangle(50, 50, 300, 220);
    outtextxy(55, 30, "Viewport border in full screen");

    setviewport(50, 50, 300, 220, 1);
    clearviewport();

    setcolor(YELLOW);
    rectangle(0, 0, 250, 170);
    line(0, 0, 250, 170);
    outtextxy(8, 8, "Coordinates are now viewport-relative");

    getch();
    closegraph();
    return 0;
}

Click Run (DOS) to test this quickly.

Common Mistakes

  • Forgetting that coordinates become viewport-relative.
  • Using clip off (0) and expecting hard clipping.
  • Calling cleardevice() when you only need clearviewport().

Next: Text & Fonts for drawing labels inside custom viewport regions.