summaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2024-07-13 10:02:00 +0000
committerrodri <rgl@antares-labs.eu>2024-07-13 10:02:00 +0000
commitf9b1182580fd66857a4a0cc11a328f9856f6039c (patch)
treee5eac6f72420fbbe09dfdf9f08b75808f79919c1 /vis.c
parentfe76590b8d9e7ff1b23a5b4ada446e8540c8a602 (diff)
download3dee-f9b1182580fd66857a4a0cc11a328f9856f6039c.tar.gz
3dee-f9b1182580fd66857a4a0cc11a328f9856f6039c.tar.bz2
3dee-f9b1182580fd66857a4a0cc11a328f9856f6039c.zip
get rid of redundant draw lock and adapt to libgraphics changes.
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/vis.c b/vis.c
index e43c170..b443905 100644
--- a/vis.c
+++ b/vis.c
@@ -57,7 +57,6 @@ int kdown;
Shadertab *shader;
Model *model;
Scene *scene;
-QLock drawlk;
Mouse om;
Quaternion orient = {1,0,0,0};
@@ -540,11 +539,10 @@ drawproc(void *)
{
threadsetname("drawproc");
- for(;;)
- if(recv(drawc, nil) && canqlock(&drawlk)){
- redraw();
- qunlock(&drawlk);
- }
+ for(;;){
+ recv(drawc, nil);
+ redraw();
+ }
}
static Color
@@ -613,7 +611,7 @@ mmb(void)
char buf[256], *f[3];
int nf;
- qlock(&drawlk);
+ lockdisplay(display);
switch(menuhit(2, mctl, &menu, _screen)){
case MOVELIGHT:
snprint(buf, sizeof buf, "%g %g %g", light.p.x, light.p.y, light.p.z);
@@ -636,7 +634,7 @@ mmb(void)
shownormals ^= 1;
break;
}
- qunlock(&drawlk);
+ unlockdisplay(display);
nbsend(drawc, nil);
}
@@ -654,14 +652,14 @@ rmb(void)
static Menu menu = { .gen = genrmbmenuitem };
int idx;
- qlock(&drawlk);
+ lockdisplay(display);
idx = menuhit(3, mctl, &menu, _screen);
if(idx >= 0){
shader = &shadertab[idx];
for(idx = 0; idx < nelem(cams); idx++)
memset(&cams[idx].stats, 0, sizeof(cams[idx].stats));
}
- qunlock(&drawlk);
+ unlockdisplay(display);
nbsend(drawc, nil);
}
@@ -856,7 +854,7 @@ threadmain(int argc, char *argv[])
while(argc--){
mdlpath = argv[argc];
model = newmodel();
- subject = newentity(model);
+ subject = newentity(mdlpath, model);
// subject->p.x = argc*4;
scene->addent(scene, subject);