From 5b14b34d6e11611fb395e3cffaf888bcca0f3661 Mon Sep 17 00:00:00 2001 From: pixel Date: Sun, 5 Oct 2003 19:14:35 +0000 Subject: Changes of the month --- lib/glsprite.cc | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'lib') diff --git a/lib/glsprite.cc b/lib/glsprite.cc index 478c0ef..18df7eb 100644 --- a/lib/glsprite.cc +++ b/lib/glsprite.cc @@ -35,3 +35,40 @@ void mogltk::glSprite::draw(int dx, int dy, ColorP c) { if (!was2D) mogltk::engine::glbase_o->Leave2DMode(); } + +void mogltk::glSprite::drawrotate(int cx, int cy, double a, ColorP c) { + bool was2D; + + int sx, sy; + + sx = GetSX() / 2; + sy = GetSY() / 2; + + was2D = mogltk::engine::glbase_o->is2D(); + + if (!was2D) + mogltk::engine::glbase_o->Enter2DMode(); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glRotated(a, 0, 0, 1); + glTranslated(cx, cy, 0); + + glMatrixMode(GL_TEXTURE); + glRotated(a, 0, 0, 1); + + c.Bind(); + + Bind(); + glBegin(GL_TRIANGLE_STRIP); + glTexCoord2i(GetPX() , GetPY() ); glVertex2i( - sx, - sy); + glTexCoord2i(GetPX() + GetSX(), GetPY() ); glVertex2i(GetSX() - sx, - sy); + glTexCoord2i(GetPX() , GetPY() + GetSY()); glVertex2i( - sx, GetSY() - sy); + glTexCoord2i(GetPX() + GetSX(), GetPY() + GetSY()); glVertex2i(GetSX() - sx, GetSY() - sy); + glEnd(); + + glPopMatrix(); + + if (!was2D) + mogltk::engine::glbase_o->Leave2DMode(); +} -- cgit v1.2.3