mirror of
https://git.code.sf.net/p/quake/quake2forge
synced 2024-12-12 13:42:21 +00:00
bd911a47db
taken his patch against icculus.org's quake2 tree, and applied it to solaris/ and then migrated that stuff to our tree in src/ so it gets built.
93 lines
1.5 KiB
C
93 lines
1.5 KiB
C
#ifndef NDGA_H
|
|
#define NDGA_H
|
|
|
|
#include "nvsession.h"
|
|
|
|
#ifndef NDGA_IMPLEMENTATION
|
|
/*
|
|
* For public consumption, this is an opaque pointer
|
|
*/
|
|
typedef void *ndga_t;
|
|
|
|
#else
|
|
/*
|
|
* This is implementaion private
|
|
*
|
|
* Newt DGA state record
|
|
*/
|
|
struct ndga_state {
|
|
/*
|
|
* all private
|
|
*/
|
|
int is_visible;
|
|
int is_unobscured;
|
|
int is_open;
|
|
int is_changed;
|
|
int new_clip;
|
|
int sent_clip;
|
|
int busy;
|
|
|
|
int was_open;
|
|
int was_unobscured;
|
|
|
|
int x, y;
|
|
int w, h;
|
|
|
|
int xalign;
|
|
int yalign;
|
|
nvSession session;
|
|
|
|
void (* on_open)();
|
|
void (* on_close)();
|
|
|
|
Display *display;
|
|
Window window;
|
|
Window parent;
|
|
Window root;
|
|
|
|
NRegion region;
|
|
NRegion clip;
|
|
NRegion lastclip;
|
|
NRegion screenArea;
|
|
NRectangle screenRect;
|
|
NRectangle visRect;
|
|
|
|
int clipEvent;
|
|
|
|
int clearOnExpose;
|
|
};
|
|
|
|
typedef struct ndga_state *ndga_t;
|
|
|
|
#endif /* NDGA_IMPLEMENTATION */
|
|
|
|
|
|
ndga_t ndga_new(Display *display, Window window, nvSession session,
|
|
int xalign, int yalign);
|
|
|
|
void ndga_destroy(ndga_t sp);
|
|
|
|
int ndga_start(ndga_t sp,
|
|
int *xp, /* x */
|
|
int *yp, /* y */
|
|
int *wp, /* width */
|
|
int *hp, /* height */
|
|
int *is_unobscured, /* 1 if unobscured 0 if clipped */
|
|
int *clipEvent /* clip event number */
|
|
);
|
|
|
|
/*
|
|
* update the argument to hold the current clip-list and and return
|
|
* it. If the clip argument is NULL, a new region is allocated. It
|
|
* is the responsibility of the caller to free the clip.
|
|
*/
|
|
NRegion ndga_clip(ndga_t sp, NRegion clip);
|
|
|
|
void ndga_done(ndga_t sp);
|
|
|
|
int ndga_isvisible(ndga_t sp);
|
|
|
|
int ndga_get_eventmask(void);
|
|
void ndga_process_event(ndga_t sp, XEvent *event);
|
|
|
|
#endif
|