projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From http://www.jwz.org/xscreensaver/xscreensaver-5.33.tar.gz
[xscreensaver]
/
hacks
/
glx
/
molecule.c
diff --git
a/hacks/glx/molecule.c
b/hacks/glx/molecule.c
index b5e6e8420f945e268a3f65cfe77048e58c318016..cbc07b1aa037e4f6a92f889d2c269fa547148a22 100644
(file)
--- a/
hacks/glx/molecule.c
+++ b/
hacks/glx/molecule.c
@@
-12,7
+12,7
@@
/* Documentation on the PDB file format:
/* Documentation on the PDB file format:
- http://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29
+ http
s
://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29
http://www.wwpdb.org/docs.html
http://www.wwpdb.org/documentation/format32/v3.2.html
http://www.wwpdb.org/documentation/format32/sect9.html
http://www.wwpdb.org/docs.html
http://www.wwpdb.org/documentation/format32/v3.2.html
http://www.wwpdb.org/documentation/format32/sect9.html
@@
-1368,9
+1368,6
@@
draw_labels (ModeInfo *mi)
if (!do_labels)
return;
if (!do_labels)
return;
- if (!wire)
- glDisable (GL_LIGHTING); /* don't light fonts */
-
for (i = 0; i < m->natoms; i++)
{
molecule_atom *a = &m->atoms[i];
for (i = 0; i < m->natoms; i++)
{
molecule_atom *a = &m->atoms[i];
@@
-1384,7
+1381,7
@@
draw_labels (ModeInfo *mi)
/* First, we translate the origin to the center of the atom.
/* First, we translate the origin to the center of the atom.
- Then we retrieve the prevailing modelview matrix
(
which
+ Then we retrieve the prevailing modelview matrix
,
which
includes any rotation, wandering, and user-trackball-rolling
of the scene.
includes any rotation, wandering, and user-trackball-rolling
of the scene.
@@
-1420,25
+1417,22
@@
draw_labels (ModeInfo *mi)
glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
{
glRotatef (current_device_rotation(), 0, 0, 1); /* right side up */
{
- int h;
- int w = texture_string_width (mc->atom_font, a->label, &h);
+ XCharStruct e;
+ int w, h;
+ texture_string_metrics (mc->atom_font, a->label, &e, 0, 0);
+ w = e.width;
+ h = e.ascent + e.descent;
+
GLfloat s = 1.0 / h; /* Scale to unit */
s *= mc->overall_scale; /* Scale to size of atom */
s *= 0.8; /* Shrink a bit */
glScalef (s, s, 1);
GLfloat s = 1.0 / h; /* Scale to unit */
s *= mc->overall_scale; /* Scale to size of atom */
s *= 0.8; /* Shrink a bit */
glScalef (s, s, 1);
- glTranslatef (-w
* 0.5, h * 0.3 - h
, 0);
+ glTranslatef (-w
/2, -h/2
, 0);
print_texture_string (mc->atom_font, a->label);
}
glPopMatrix();
}
print_texture_string (mc->atom_font, a->label);
}
glPopMatrix();
}
-
- /* More efficient to always call glEnable() with correct values
- than to call glPushAttrib()/glPopAttrib(), since reading
- attributes from GL does a round-trip and stalls the pipeline.
- */
- if (!wire)
- glEnable (GL_LIGHTING);
}
}