- Timestamp:
- Jun 15, 2006, 12:48:26 PM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/event/event_handler.cc
r8340 r8448 355 355 else 356 356 { 357 SDL_WM_GrabInput(SDL_GRAB_ON);357 // SDL_WM_GrabInput(SDL_GRAB_ON); 358 358 SDL_ShowCursor(SDL_DISABLE); 359 359 } -
trunk/src/lib/graphics/importer/material.h
r8376 r8448 38 38 39 39 void setDiffuse (float r, float g, float b); 40 void setDiffuseColor(const Color& diffuseColor) { this->diffuse = diffuseColor; }; 40 41 void setAmbient (float r, float g, float b); 41 42 void setSpecular (float r, float g, float b); -
trunk/src/lib/graphics/text_engine/multi_line_text.cc
r8059 r8448 76 76 glActiveTexture(GL_TEXTURE0); 77 77 78 glColor4f (this->getColor().x, this->getColor().y, this->getColor().z, this->getBlending());78 glColor4fv(&this->getColor()[0]); 79 79 glEnable(GL_BLEND); 80 80 glEnable(GL_TEXTURE_2D); 81 glBlendFunc(GL_SRC_ALPHA, GL_ONE );81 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 82 82 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 83 83 -
trunk/src/lib/graphics/text_engine/text.cc
r8037 r8448 37 37 this->size = textSize; 38 38 this->setSizeY2D(size); 39 this->blending = TEXT_DEFAULT_BLENDING;40 39 this->color = TEXT_DEFAULT_COLOR; 41 40 … … 73 72 this->size == text.size && 74 73 this->font == text.font && 75 this->color == text.color && 76 this->blending == text.blending); 74 this->color == text.color); 77 75 } 78 76 … … 95 93 { 96 94 this->size = text.size; 97 this->blending = text.blending;98 95 this->color = text.color; 99 96 this->setAlignment(text.getAlignment()); … … 224 221 // drawing this Text. 225 222 // setting the Blending effects 226 glColor4f (this->color.x, this->color.y, this->color.z, this->blending);223 glColor4fv(&this->color[0]); 227 224 228 225 … … 231 228 glEnable(GL_BLEND); 232 229 glEnable(GL_TEXTURE_2D); 233 glBlendFunc(GL_SRC_ALPHA, GL_ONE );230 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 234 231 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 235 232 … … 285 282 { 286 283 PRINT(0)("=== TEXT: %s (with Font:'%s') displaying %s ===\n", this->getName(), this->font->getName(), this->text.c_str()); 287 PRINT(0)("Color: %0.2f %0.2f %0.2f\n", this->color.x, this->color.y, this->color.z);288 } 289 284 PRINT(0)("Color: r=%0.2f g=%0.2f b=%0.2f a=%0.2f\n", this->color.r(), this->color.g(), this->color.b(), this->color.a()); 285 } 286 -
trunk/src/lib/graphics/text_engine/text.h
r7919 r8448 8 8 9 9 #include "element_2d.h" 10 #include "color.h" 10 11 11 12 #define TEXT_ALIGN_LEFT E2D_ALIGN_LEFT … … 13 14 #define TEXT_ALIGN_CENTER E2D_ALIGN_CENTER 14 15 #define TEXT_ALIGN_SCREEN_CENTER E2D_ALIGN_SCREEN_CENTER 15 #define TEXT_DEFAULT_COLOR Vector(1.0, 1.0, 1.0) //!< the default Color (white) 16 #define TEXT_DEFAULT_BLENDING 1.0f //!< the default blending of the text, (no blending at all) 16 #define TEXT_DEFAULT_COLOR Color(1.0, 1.0, 1.0, 1.0f) //!< the default Color (white, fully visible) 17 17 18 18 #define TEXT_DEFAULT_ALIGNMENT TEXT_ALIGN_LEFT //!< default alignment … … 44 44 void setFont(const std::string& fontFile, unsigned int renderSize); 45 45 /** @param blending the blending intensity to set (between 0.0 and 1.0) */ 46 inline void setBlending(float blending) { this-> blending= blending; };46 inline void setBlending(float blending) { this->color.a() = blending; }; 47 47 /** @param r red @param g green @param b blue @brief sets the Color of the Text to render (values in [0-1]) */ 48 void setColor(float r, float g, float b) { this->color = Vector(r, g, b); }; 48 void setColor(float r, float g, float b) { this->color = Color(r, g, b, this->color.a()); }; 49 void setColor(float r, float g, float b, float a) { this->color = Color(r, g, b, a); }; 50 void setColor(const Color& color) { this->color = color; }; 49 51 void setSize(float size); 50 52 … … 57 59 inline const Font* const getFont() const { return this->font; }; 58 60 /** @returns the Blending Value [0 invisible 1.0 full visible */ 59 inline float getBlending() const { return this-> blending; };61 inline float getBlending() const { return this->color.a(); }; 60 62 /** @returns: a Vector(r,g,b) @brief: retrieve a Vector holding the Color of the Text */ 61 inline const Vector& getColor() const { return this->color; };63 inline const Color& getColor() const { return this->color; }; 62 64 /** @returns the Size of the Text */ 63 65 inline float getSize() const { return this->size; }; … … 76 78 77 79 std::string text; //!< The text to display 78 Vector color; //!< The color of the font. 79 float blending; //!< The blending intensity. 80 Color color; //!< The color of the font. 80 81 float size; //!< The size of the Text. 81 82 }; -
trunk/src/lib/gui/gl/glgui_bar.cc
r8145 r8448 46 46 this->setClassID(CL_GLGUI_BAR, "GLGuiBar"); 47 47 48 this-> frontMaterial().setDiffuse(1,1,1);48 this->setFrontColor(Color(1,1,1)); 49 49 50 50 this->setSize2D(50, 10); … … 64 64 GLGuiWidget::draw(); 65 65 66 this->frontMaterial().select();66 //this->frontMaterial().select(); 67 67 glBegin(GL_QUADS); 68 68 -
trunk/src/lib/gui/gl/glgui_button.cc
r8145 r8448 55 55 56 56 this->_label.setFont("fonts/final_frontier.ttf", 20); 57 this-> frontMaterial().setDiffuse(1, 0, 0);57 this->_label.setColor(this->frontColor()); 58 58 59 59 this->_label.setParent2D(this); … … 69 69 70 70 71 void GLGuiButton::updateFrontColor() 72 { 73 this->_label.setColor(this->frontColor()); 74 } 71 75 72 76 void GLGuiButton::clicking(const Vector2D& pos) 73 77 { 78 GLGuiWidget::clicking(pos); 74 79 emit(clicked()); 75 80 } 76 81 void GLGuiButton::releasing(const Vector2D& pos) 77 82 { 83 GLGuiWidget::releasing(pos); 78 84 emit(released()); 79 85 } -
trunk/src/lib/gui/gl/glgui_button.h
r8145 r8448 41 41 virtual void draw() const; 42 42 43 DeclareSignal0(clicked); 43 44 DeclareSignal0(released); 44 DeclareSignal0(clicked);45 45 46 46 protected: 47 virtual void updateFrontColor(); 48 47 49 virtual void clicking(const Vector2D& pos); 48 50 virtual void releasing(const Vector2D& pos); -
trunk/src/lib/gui/gl/glgui_checkbutton.cc
r8145 r8448 65 65 void GLGuiCheckButton::resize() 66 66 { 67 this->labelText().setRelCoor2D(borderLeft() + 25, borderTop() + 5); 68 this->setSize2D(this->labelText().getSizeX2D() + 30 + borderLeft() + borderRight(), this->labelText().getSizeY2D() + 10 + borderTop()+borderBottom()); 67 68 this->labelText().setRelCoor2D( borderLeft() + 15.0, borderTop() + 5); 69 this->setSize2D(this->labelText().getSizeX2D() + 15.0 + borderLeft() + borderRight(), this->labelText().getSizeY2D() + 10 + borderTop()+borderBottom()); 69 70 GLGuiWidget::resize(); 70 this->frontRect().setTopLeft(borderLeft(), borderTop()); 71 this->frontRect().setSize(this->getSizeX2D() - (borderLeft() + borderRight()) , this->getSizeY2D() - (borderTop() + borderBottom())); 71 72 this->_checkBox.setSize(10.0, 10.0); 73 this->_checkBox.setCenter( borderLeft() + _checkBox.height()/2.0, borderTop() + (this->getSizeY2D() - borderTop() - borderBottom()) / 2.0); 74 75 /* this->frontRect().setTopLeft(borderLeft(), borderTop()); 76 this->frontRect().setSize(this->getSizeX2D() - (borderLeft() + borderRight()) , this->getSizeY2D() - (borderTop() + borderBottom()));*/ 72 77 } 73 78 … … 89 94 GLGuiButton::draw(); 90 95 91 this->frontMaterial().select();92 this->drawRect(this->frontRect());96 // this->frontMaterial().select(); 97 // this->drawRect(this->frontRect()); 93 98 94 99 if (this->bActive) 95 100 { 96 glBegin(GL_QUADS); 97 glColor3f( 1, 1 ,1); 98 glTexCoord2i(0,0); glVertex2d(borderLeft()+8, borderTop()+8); 99 glTexCoord2i(0,1); glVertex2d(borderLeft() + 8, this->getSizeY2D()-8 - (borderTop() + borderBottom())); 100 glTexCoord2i(1,1); glVertex2d(this->getSizeY2D()-8 +borderLeft(), this->getSizeY2D()-8- (borderTop() + borderBottom())); 101 glTexCoord2i(1,0); glVertex2d(this->getSizeY2D()-8 +borderLeft(), borderTop()+8); 102 glEnd(); 101 glColor3fv( &this->frontColor()[0]); 102 this->drawRect(this->_checkBox); 103 103 104 104 105 105 // DRAW a cross :) 106 glColor3f(0,0,0); 106 Vector2D center = this->_checkBox.center(); 107 glColor4f(1,1,1, 1.0); 107 108 glLineWidth(3.0); 109 108 110 glBegin(GL_LINE_LOOP); 109 glVertex2d( borderLeft()+8,borderTop() +8);110 glVertex2d( this->getSizeY2D()/2 + borderLeft(), this->getSizeY2D()/2 - 1);111 glVertex2d(_checkBox.left(), _checkBox.top()); 112 glVertex2d(center.x, center.y); 111 113 112 glVertex2d( this->getSizeY2D()-8 + borderLeft(), borderTop()+8);113 glVertex2d( this->getSizeY2D()/2 +1 + borderLeft(), this->getSizeY2D()/2);114 glVertex2d(_checkBox.right(), _checkBox.top()); 115 glVertex2d(center.x, center.y); 114 116 115 glVertex2d( this->getSizeY2D()-8 + borderLeft(), this->getSizeY2D()-8- (borderTop() + borderBottom()));116 glVertex2d( this->getSizeY2D()/2 + borderLeft(), this->getSizeY2D()/2+1);117 glVertex2d(_checkBox.right(), _checkBox.bottom()); 118 glVertex2d(center.x, center.y); 117 119 118 glVertex2d( borderLeft() + 8, this->getSizeY2D()-8 - (borderTop() + borderBottom()));119 glVertex2d( this->getSizeY2D()/2 -1 + borderLeft(), this->getSizeY2D()/2);120 glVertex2d(_checkBox.left(), _checkBox.bottom()); 121 glVertex2d(center.x, center.y); 120 122 glEnd(); 121 123 } 122 124 else 123 125 { 124 glBegin(GL_QUADS); 125 glColor3f(0, 0, 0); 126 glTexCoord2i(0,0); glVertex2d(borderLeft()+8, borderTop()+8); 127 glTexCoord2i(0,1); glVertex2d(borderLeft()+ 8, this->getSizeY2D()-8 - (borderTop() + borderBottom())); 128 glTexCoord2i(1,1); glVertex2d(this->getSizeY2D()-8 +borderLeft(), this->getSizeY2D()-8- (borderTop() + borderBottom())); 129 glTexCoord2i(1,0); glVertex2d(this->getSizeY2D()-8 +borderLeft(), borderTop()+8); 130 glEnd(); 126 glColor3fv( &this->frontColor()[0]); 127 this->drawRect(this->_checkBox); 131 128 } 132 129 -
trunk/src/lib/gui/gl/glgui_checkbutton.h
r8145 r8448 46 46 private: 47 47 bool bActive; 48 48 Rect2D _checkBox; 49 49 }; 50 50 } -
trunk/src/lib/gui/gl/glgui_defs.h
r8145 r8448 7 7 #define _GLGUI_DEFS_H 8 8 9 #include <string> 10 9 11 /// TODO MOVE TO ORXGUI_TYPES 10 12 namespace OrxGui 11 13 { 14 //! if the Element should be visible by default. 15 #define GLGUI_WIDGET_DEFAULT_VISIBLE false 16 17 12 18 //! An enumeration for the Orientation of an Element. 13 19 typedef enum { 14 Horizontal, //!< Horizontal Orientation.15 Vertical //!< Vertical Orientation.20 Horizontal, //!< Horizontal Orientation. 21 Vertical //!< Vertical Orientation. 16 22 } Orientation; 23 24 const std::string OrientationString[] = { 25 "Horizontal", 26 "Vertical" 27 }; 28 29 //! An enumerator that defines the different states Widgets may be in. 30 typedef enum { 31 Normal, //!< Normal state of the GUI's Widgets. 32 Active, //!< If the widget is Active. 33 Selected, //!< If the Widget is Selected. 34 Insensitive //!< If the Widget is insensitive. 35 } State; 36 //! The count of States a GUI-Element can be in. 37 #define GLGUI_STATE_COUNT 4 38 #define GLGUI_DEFAULT_STYLE OrxGui::Normal 39 40 const std::string StateString[] = 41 { 42 "Normal", 43 "Active", 44 "Selected", 45 "Insensitive" 46 }; 47 48 //! Where a Certain feature will be positioned at. 49 typedef enum { 50 FeatureLeft, //!< On the Left side. 51 FeatureRight, //!< On the Right side. 52 FeatureTop, //!< On Top of the rest of the Widget. 53 FeatureBottom, //!< At the Bottom of the rest of the Widget. 54 } FeaturePosition; 55 56 const std::string FeaturePositionString[] = 57 { 58 "Left", 59 "Right", 60 "Top", 61 "Bottom" 62 }; 63 64 65 17 66 }; 18 67 -
trunk/src/lib/gui/gl/glgui_handler.cc
r8324 r8448 40 40 41 41 42 EventHandler::getInstance()->withUNICODE(ES_ ALL, true );42 EventHandler::getInstance()->withUNICODE(ES_MENU, true ); 43 43 44 44 this->_cursor = NULL; -
trunk/src/lib/gui/gl/glgui_image.cc
r8145 r8448 17 17 18 18 #include "glgui_image.h" 19 20 #include "debug.h" 19 21 20 22 namespace OrxGui … … 45 47 this->setClassID(CL_GLGUI_IMAGE, "GLGuiImage"); 46 48 47 this->frontMaterial().setDiffuseMap(this->texture); 48 this->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 49 this->_imageMaterial.setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 49 50 50 51 this->resize(); … … 54 55 void GLGuiImage::loadImageFromTexture(const Texture& texture) 55 56 { 56 this->frontMaterial().setDiffuseMap(texture); 57 this->frontMaterial().setDiffuse(1,1,1); 57 this->_imageMaterial.setDiffuseMap(texture); 58 58 } 59 59 60 60 void GLGuiImage::loadImageFromFile(const std::string& fileName) 61 61 { 62 this-> texture.loadImage(fileName);62 this->_imageMaterial.setDiffuseMap(fileName); 63 63 } 64 64 65 65 void GLGuiImage::loadImageFromSDLSurface(SDL_Surface* surface) 66 66 { 67 //this->texture.loadSurface(surface);67 this->_imageMaterial.setDiffuseMap(Texture(surface)); 68 68 } 69 69 70 70 void GLGuiImage::loadImageFromDisplayList(GLuint texture) 71 71 { 72 // this->texture.setTexture(texture); 72 PRINTF(2)("SORRY NOT IMPLEMENTED\n"); 73 // this->_imageMaterial.setTexture(texture); 74 } 75 76 void GLGuiImage::updateFrontColor() 77 { 78 this->_imageMaterial.setDiffuseColor(this->frontColor()); 73 79 } 74 80 75 81 void GLGuiImage::resize() 76 82 { 77 this-> frontRect().setTopLeft(this->borderLeft(), this->borderTop());78 this-> frontRect().setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom()) );83 this->_imagePlane.setTopLeft(this->borderLeft(), this->borderTop()); 84 this->_imagePlane.setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom()) ); 79 85 GLGuiWidget::resize(); 80 86 } … … 89 95 GLGuiWidget::draw(); 90 96 91 this-> frontMaterial().select();92 this->drawRect(this-> frontRect());97 this->_imageMaterial.select(); 98 this->drawRect(this->_imagePlane); 93 99 this->endDraw(); 94 100 } -
trunk/src/lib/gui/gl/glgui_image.h
r8145 r8448 36 36 DeclareSignal0(imageChanged); 37 37 38 protected: 39 virtual void updateFrontColor(); 40 virtual void resize(); 41 42 38 43 private: 39 44 void init(); 40 virtual void resize();41 45 42 46 private: 43 Texture texture; 47 Rect2D _imagePlane; 48 Material _imageMaterial; 44 49 }; 45 50 } -
trunk/src/lib/gui/gl/glgui_inputline.cc
r8145 r8448 22 22 /** 23 23 * @brief standard constructor 24 */24 */ 25 25 GLGuiInputLine::GLGuiInputLine () 26 26 { … … 48 48 this->setFocusable(true); 49 49 50 this->text.setParent2D(this); 51 this->text.setRelCoor2D(4,4); 52 this->text.setFont("fonts/final_frontier.ttf", 20); 53 this->text.setVisibility(false); 50 this->_text.setParent2D(this); 51 this->_text.setRelCoor2D(4,4); 52 this->_text.setFont("fonts/final_frontier.ttf", 20); 53 this->_text.setColor(this->frontColor()); 54 this->_text.setVisibility(false); 54 55 this->resize(); 55 56 … … 63 64 void GLGuiInputLine::setText(const std::string& text) 64 65 { 65 this->text.setText(text); 66 this->resize(); 67 68 emit(this->textChanged(this->getText())); 66 this->_text.setText(text); 67 this->changedText(); 69 68 } 70 69 … … 75 74 void GLGuiInputLine::append(const std::string& appendText) 76 75 { 77 this->text.append(appendText); 78 this->resize(); 79 emit(this->textChanged(this->text.getText())); 76 this->_text.append(appendText); 77 this->changedText(); 80 78 } 81 79 … … 87 85 void GLGuiInputLine::appendCharacter(char character) 88 86 { 89 this->text.appendCharacter(character); 90 this->resize(); 91 emit(this->textChanged(this->text.getText())); 87 this->_text.appendCharacter(character); 88 this->changedText(); 92 89 } 93 90 … … 99 96 void GLGuiInputLine::removeCharacters(unsigned int chars) 100 97 { 101 this->text.removeCharacters(chars); 98 this->_text.removeCharacters(chars); 99 this->changedText(); 100 } 101 102 /** 103 * @brief If the Text has been changed this function is called. 104 * 105 * This Function also emits the Signal textChanged. 106 */ 107 void GLGuiInputLine::changedText() 108 { 102 109 this->resize(); 103 emit(this->textChanged(this->text.getText())); 110 this->setFrontColor(Color(1,1,1,1), true); 111 this->setFrontColor(Color(0,1,0,1)); 112 emit(this->textChanged(this->_text.getText())); 104 113 } 105 114 … … 117 126 118 127 /** 119 * Processes an Event.128 * @brief Processes an Event. 120 129 * @param event The event to be processed 121 130 * @return true if the event was catched. … … 154 163 } 155 164 } 156 157 165 return false; 158 166 } … … 164 172 void GLGuiInputLine::resize() 165 173 { 166 this-> text.setRelCoor2D(this->borderLeft() + 2.0,this->borderTop() + 2.0);167 this->setSize2D( this-> text.getSize2D() + Vector2D(borderLeft() + borderRight() + 4.0, borderTop() + borderBottom() + 4.0));174 this->_text.setRelCoor2D(this->borderLeft(), this->borderTop()); 175 this->setSize2D( this->_text.getSize2D() + Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom())); 168 176 GLGuiWidget::resize(); 169 this->frontRect().setTopLeft(borderLeft(), borderTop()); 170 this->frontRect().setSize(this->getSize2D() - Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom())); 171 } 172 177 /* this->frontRect().setTopLeft(borderLeft(), borderTop()); 178 this->frontRect().setSize(this->getSize2D() - Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));*/ 179 } 180 181 void GLGuiInputLine::updateFrontColor() 182 { 183 this->_text.setColor(this->frontColor()); 184 } 173 185 174 186 void GLGuiInputLine::hiding() 175 187 { 176 this-> text.setVisibility(false);188 this->_text.setVisibility(false); 177 189 } 178 190 179 191 void GLGuiInputLine::showing() 180 192 { 181 this->text.setVisibility(true); 182 } 183 184 185 /** 186 * ticks the InputLine 193 this->_text.setVisibility(true); 194 } 195 196 /** 197 * @brief ticks the InputLine 187 198 * @param dt the time passed. 188 199 */ 189 200 void GLGuiInputLine::tick(float dt) 190 201 { 202 GLGuiWidget::tick(dt); 191 203 if (this->delayNext > 0.0) 192 204 this->delayNext -= dt; … … 218 230 GLGuiWidget::draw(); 219 231 220 this->frontMaterial().select();221 GLGuiWidget::drawRect(this->frontRect());232 // this->frontMaterial().select(); 233 // GLGuiWidget::drawRect(this->frontRect()); 222 234 223 235 this->endDraw(); -
trunk/src/lib/gui/gl/glgui_inputline.h
r8145 r8448 32 32 33 33 /** @returns the text of the inputLine */ 34 const std::string& getText() const { return this->text.getText(); };34 const std::string& _getText() const { return this->_text.getText(); }; 35 35 36 36 void setText(const std::string& text); … … 48 48 DeclareSignal1(textChanged, const std::string&); 49 49 50 protected: 51 virtual void updateFrontColor(); 52 virtual void hiding(); 53 virtual void showing(); 54 virtual void resize(); 55 56 50 57 private: 51 58 void init(); 52 void resize(); 53 virtual void hiding(); 54 virtual void showing(); 59 void changedText(); 55 60 56 61 private: 57 Text text;//!< The Text to display inside of the InputLine.62 Text _text; //!< The Text to display inside of the InputLine. 58 63 59 64 Uint16 pressedKey; //!< the pressed key that will be repeated. -
trunk/src/lib/gui/gl/glgui_pushbutton.cc
r8145 r8448 45 45 void GLGuiPushButton::resize() 46 46 { 47 this->labelText().setRelCoor2D(borderLeft() + 5, borderTop() + 5);48 this->setSize2D(this->labelText().getSizeX2D() + 10 + borderLeft()+borderRight(), this->labelText().getSizeY2D() + 10+ borderTop() + borderBottom() );47 this->labelText().setRelCoor2D(borderLeft(), borderTop()); 48 this->setSize2D(this->labelText().getSizeX2D() + borderLeft() + borderRight(), this->labelText().getSizeY2D() + borderTop() + borderBottom() ); 49 49 50 50 GLGuiWidget::resize(); 51 this->frontRect().setTopLeft(borderLeft(), borderTop());52 this->frontRect().setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom())); 51 /* this->frontRect().setTopLeft(borderLeft(), borderTop()); 52 this->frontRect().setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom()));*/ 53 53 } 54 54 … … 97 97 GLGuiButton::draw(); 98 98 99 this->frontMaterial().select();100 this->drawRect(this->frontRect());101 99 this->endDraw(); 102 // this->label->draw();103 // printf("test");104 100 } 105 101 -
trunk/src/lib/gui/gl/glgui_slider.cc
r8335 r8448 74 74 else 75 75 this->_value = value; 76 this->_handle.setCenter(this->sliderPosition(), this->borderTop() + (this->getSizeY2D() - this->borderTop() - borderBottom()) / 2.0); 77 76 78 emit(valueChanged(this->_value)); 77 79 } … … 161 163 { 162 164 GLGuiWidget::resize(); 163 this->frontRect().setTopLeft(this->borderLeft(), this->getSizeY2D()/2.0 - 2.0); 164 this->frontRect().setSize(this->getSizeX2D() - borderLeft() - borderRight(), 4.0); 165 // this->frontRect().setTopLeft(this->borderLeft(), this->getSizeY2D()/2.0 - 2.0); 166 // this->frontRect().setSize(this->getSizeX2D() - borderLeft() - borderRight(), 4.0); 167 this->_slider.setTopLeft(this->borderLeft(), this->getSizeY2D() / 2.0 -2.0); 168 this->_slider.setSize(this->getSizeX2D() - borderLeft() - borderRight(), 4.0); 169 this->_handle.setSize(this->_sliderWidth, this->getSizeY2D() - borderTop() - borderBottom()); 170 } 171 172 void GLGuiSlider::updateFrontColor() 173 { 174 165 175 } 166 176 … … 218 228 void GLGuiSlider::tick(float dt) 219 229 { 230 GLGuiWidget::tick(dt); 220 231 } 221 232 … … 228 239 GLGuiWidget::draw(); 229 240 230 this->frontMaterial().select();231 this->drawRect(this-> frontRect());232 233 this->drawRect(Rect2D(this->sliderPosition()-_sliderWidth/2.0, 0*this->borderTop(), _sliderWidth, this->getSizeY2D() - (borderTop() + borderBottom()) ));241 glColor4fv(&this->frontColor()[0]); 242 this->drawRect(this->_slider); 243 this->drawRect(this->_handle); 244 //this->drawRect(Rect2D(this->sliderPosition()-_sliderWidth/2.0, 0*this->borderTop(), _sliderWidth, this->getSizeY2D() - (borderTop() + borderBottom()) )); 234 245 235 246 this->endDraw(); -
trunk/src/lib/gui/gl/glgui_slider.h
r8145 r8448 56 56 protected: 57 57 virtual void resize(); 58 virtual void updateFrontColor(); 58 59 59 60 virtual void clicking(const Vector2D& pos); … … 68 69 private: 69 70 Orientation orientation; 71 72 Rect2D _slider; 73 Rect2D _handle; 70 74 71 75 float _maxValue; -
trunk/src/lib/gui/gl/glgui_style.cc
r8145 r8448 18 18 #include "glgui_style.h" 19 19 20 #include "loading/load_param.h" 21 20 22 namespace OrxGui 21 23 { … … 25 27 * @brief standard constructor 26 28 */ 27 GLGuiStyle::GLGuiStyle ( )29 GLGuiStyle::GLGuiStyle (const TiXmlElement* root) 28 30 { 31 if (root != NULL) 32 this->loadParams(root); 33 34 this-> 29 35 } 30 36 … … 37 43 // delete what has to be deleted here 38 44 } 45 46 void GLGuiStyle::loadParams(const TiXmlElement* root) 47 { 48 } 49 50 void GLGuiStyle::setBorderLeft(float value) 51 { 52 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 53 setBorderLeft(value, (OrxGui::State)i); 54 } 55 56 void GLGuiStyle::setBorderLeft(float value, OrxGui::State state) 57 {} 58 59 void GLGuiStyle::setBorderLeftS(float value, const std::string& state) 60 {} 61 62 63 void GLGuiStyle::setBorderRight(float value) 64 { 65 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 66 setBorderRight(value, (OrxGui::State)i); 67 } 68 69 void GLGuiStyle::setBorderRight(float value, OrxGui::State state) 70 {} 71 72 void GLGuiStyle::setBorderRightS(float value, const std::string& state) 73 {} 74 75 76 void GLGuiStyle::setBorderTop(float value) 77 { 78 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 79 setBorderTop(value, (OrxGui::State)i); 80 } 81 82 void GLGuiStyle::setBorderTop(float value, OrxGui::State state) 83 {} 84 85 void GLGuiStyle::setBorderTopS(float value, const std::string& state) 86 {} 87 88 89 void GLGuiStyle::setBorderBottom(float value) 90 { 91 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 92 setBorderBottom(value, (OrxGui::State)i); 93 } 94 95 void GLGuiStyle::setBorderBottom(float value, OrxGui::State state) 96 {} 97 98 void GLGuiStyle::setBorderBottomS(float value, const std::string& state) 99 {} 100 101 102 void GLGuiStyle::setTextSize(float value) 103 { 104 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 105 setTextSize(value, (OrxGui::State)i); 106 } 107 108 void GLGuiStyle::setTextSize(float value, OrxGui::State state) 109 {} 110 111 void GLGuiStyle::setTextSizeS(float value, const std::string& state) 112 {} 113 114 115 void GLGuiStyle::setBackgroundColor(const Color& color) 116 { 117 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 118 setBackgroundColor(color, (OrxGui::State)i); 119 } 120 121 void GLGuiStyle::setBackgroundColor(const Color& color, OrxGui::State state) 122 {} 123 124 void GLGuiStyle::setBackgroundColorS(float r, float g, float b, float a, const std::string& state) 125 {} 126 127 128 void GLGuiStyle::setBackgroundTexture(const Texture& texture) 129 { 130 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 131 setBackgroundTexture(texture, (OrxGui::State)i); 132 } 133 134 void GLGuiStyle::setBackgroundTexture(const Texture& texture, OrxGui::State state) 135 {} 136 137 void GLGuiStyle::setBackgroundTexture(const std::string& textureName, const std::string& state) 138 {} 139 140 141 void GLGuiStyle::setForegroundColor(const Color& color) 142 { 143 for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i) 144 setForegroundColor(color, (OrxGui::State)i); 145 } 146 147 void GLGuiStyle::setForegroundColor(const Color& color, OrxGui::State state) 148 {} 149 150 void GLGuiStyle::setForegroundColorS(float r, float g, float b, float a, const std::string& state) 151 {} 152 153 154 155 void GLGuiStyle::setFeaturePosition(FeaturePosition featurePosition) 156 { 157 this->_featurePosition = featurePosition; 158 } 159 160 void GLGuiStyle::setFeaturePosition(const std::string& featurePosition) 161 { 162 163 } 164 165 166 void GLGuiStyle::setFont(Font* font) 167 { 168 this->_font = font; 169 } 170 171 void GLGuiStyle::setFont(const std::string& fontName) 172 { 173 //this->font = new Font(fontName); 174 } 175 176 177 void GLGuiStyle::setAnimated(bool animated) 178 { 179 this->_animated = animated; 180 } 181 182 void GLGuiStyle::animatedStateChanges(bool animated) 183 { 184 this->_animatedStateChanges = animated; 185 } 186 39 187 } -
trunk/src/lib/gui/gl/glgui_style.h
r8276 r8448 7 7 #define _GLGUI_STYLE_H 8 8 9 // FORWARD DECLARATION 9 #include "glgui_defs.h" 10 10 11 11 #include "font.h" 12 12 #include "texture.h" 13 13 #include "color.h" 14 15 class TiXmlElement; 14 16 15 17 namespace OrxGui … … 19 21 { 20 22 public: 23 GLGuiStyle(const TiXmlElement* root = NULL); 24 virtual ~GLGuiStyle(); 21 25 22 //! Where a Certain feature will be positioned at. 23 typedef enum { 24 FeatureLeft, //!< On the Left side. 25 FeatureRight, //!< On the Right side. 26 FeatureTop, //!< On Top of the rest of the Widget. 27 FeatureBottom, //!< At the Bottom of the rest of the Widget. 28 } FeaturePosition; 26 27 /// Retrieve 28 inline float borderLeft(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderLeft; } 29 inline float borderRight(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderRight; } 30 inline float borderTop(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderTop; } 31 inline float borderBottom(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderBottom; } 32 inline float textSize(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._textSize; } 33 inline const Color& backgroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._backgroundColor; } 34 inline const Texture& backgrorundTexture(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._backgroundTexture; } 35 inline const Color& foregroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._foregroundColor; } 36 37 inline FeaturePosition featurePosition() const { return _featurePosition; } 38 inline const Font* const font() const { return _font; } 39 inline bool animated() const { return _animated; } 40 inline bool animatedStateChanges() const { return _animatedStateChanges; } 29 41 30 42 31 43 32 public: 33 GLGuiStyle(); 34 virtual ~GLGuiStyle(); 44 /// SETUP 45 void loadParams(const TiXmlElement* root); 46 47 void setBorderLeft(float value); 48 void setBorderLeft(float value, OrxGui::State state); 49 void setBorderLeftS(float value, const std::string& state); 50 51 void setBorderRight(float value); 52 void setBorderRight(float value, OrxGui::State state); 53 void setBorderRightS(float value, const std::string& state); 54 55 void setBorderTop(float value); 56 void setBorderTop(float value, OrxGui::State state); 57 void setBorderTopS(float value, const std::string& state); 58 59 void setBorderBottom(float value); 60 void setBorderBottom(float value, OrxGui::State state); 61 void setBorderBottomS(float value, const std::string& state); 62 63 void setTextSize(float value); 64 void setTextSize(float value, OrxGui::State state); 65 void setTextSizeS(float value, const std::string& state); 66 67 void setBackgroundColor(const Color& color); 68 void setBackgroundColor(const Color& color, OrxGui::State state); 69 void setBackgroundColorS(float r, float g, float b, float a, const std::string& state); 70 71 void setBackgroundTexture(const Texture& texture); 72 void setBackgroundTexture(const Texture& texture, OrxGui::State state); 73 void setBackgroundTexture(const std::string& textureName, const std::string& state); 74 75 void setForegroundColor(const Color& color); 76 void setForegroundColor(const Color& color, OrxGui::State state); 77 void setForegroundColorS(float r, float g, float b, float a, const std::string& state); 78 79 80 void setFeaturePosition(FeaturePosition featurePosition); 81 void setFeaturePosition(const std::string& featurePosition); 82 83 void setFont(Font* font); 84 void setFont(const std::string& fontName); 85 86 void setAnimated(bool animated); 87 void animatedStateChanges(bool animated); 35 88 36 89 private: 37 float _borderLeft; //!< The Distance to the left Border of the widget, before any internal Element starts. 38 float _borderRight; //!< The Distance to the right Border of the widget, before any internal Element starts. 39 float _borderTop; //!< The Distance to the top Border of the widget, before any internal Element starts 40 float _borderBottom; //!< The Distance to the bottom Border of the widget, before any internal Element starts 90 typedef struct 91 { 92 float _borderLeft; //!< The Distance to the left Border of the widget, before any internal Element starts. 93 float _borderRight; //!< The Distance to the right Border of the widget, before any internal Element starts. 94 float _borderTop; //!< The Distance to the top Border of the widget, before any internal Element starts 95 float _borderBottom; //!< The Distance to the bottom Border of the widget, before any internal Element starts 41 96 42 Font* _font; //!< The Font used in the current Widget. 43 float _textSize; //!< The TextSize of the Widget. 44 float _textColor; //!< The TextColor of the Widget. 97 float _textSize; //!< The TextSize of the Widget. 45 98 46 float_backgroundColor; //!< The BackgroundColor of the Widget.47 Texture _backgorundTexture; //!< The BackgroundTexture of the Widget.99 Color _backgroundColor; //!< The BackgroundColor of the Widget. 100 Texture _backgroundTexture; //!< The BackgroundTexture of the Widget. 48 101 49 float _foregroundColor; //!< The foregroundColor of the Widget. 50 Texture _foregorundTexture; //!< The ForegroundTexture of the Widget 102 Color _foregroundColor; //!< The foregroundColor of the Widget. 103 } 104 StatedStyle; 51 105 52 FeaturePosition _featurePosition; //!< The Position a Feature will be layed at (checkbox(box), slider(text),...)53 106 54 bool _animated; //!< If the Widget is animated (Texture might be an AnimatedTexture.) 55 bool _animatedStateChanges; //!< If the Transitions between States are Animated automatically. 107 StatedStyle _style[GLGUI_STATE_COUNT]; 108 109 FeaturePosition _featurePosition; //!< The Position a Feature will be layed at (checkbox(box), slider(text),...) 110 Font* _font; //!< The Font used in the current Widget. 111 112 113 bool _animated; //!< If the Widget is animated (Texture might be an AnimatedTexture.) 114 bool _animatedStateChanges; //!< If the Transitions between States are Animated automatically. 56 115 }; 57 116 } -
trunk/src/lib/gui/gl/glgui_textfield.cc
r8145 r8448 53 53 GLGuiWidget::draw(); 54 54 55 this->frontMaterial().select();56 this->drawRect(this->frontRect()); 55 /* this->frontMaterial().select(); 56 this->drawRect(this->frontRect());*/ 57 57 this->endDraw(); 58 58 } -
trunk/src/lib/gui/gl/glgui_widget.cc
r8335 r8448 45 45 if (this == GLGuiWidget::_focused) 46 46 GLGuiWidget::_focused = NULL; 47 48 if (this->_toFrontColor) 49 delete this->_toFrontColor; 47 50 } 48 51 … … 66 69 this->setVisibility(GLGUI_WIDGET_DEFAULT_VISIBLE); 67 70 68 this->_backMat.setDiffuse(1.0, 1.0, 1.0); 69 this->_frontMat.setDiffuse(1.0, 0.0, 0.0); 70 71 this->_borderLeft = 1.0; 71 this->_backMat.setDiffuseColor(Color(1.0, 0.5, 0.4, 1.0)); 72 this->_backMat.setDiffuseMap("gui_element_background.png"); 73 this->_frontColor = Color(1.0, 0.0, 0.0); 74 this->_toFrontColor = NULL; 75 76 77 this->_borderLeft = 15.0; 72 78 this->_borderRight = 1.0; 73 79 this->_borderTop = 1.0; … … 115 121 } 116 122 123 void GLGuiWidget::setFrontColor(const Color& frontColor, bool instantaniously) 124 { 125 if (instantaniously) 126 { 127 this->_frontColor = frontColor; 128 if (this->_toFrontColor != NULL) 129 { 130 delete this->_toFrontColor; 131 this->_toFrontColor = NULL; 132 } 133 } 134 else if (!this->_toFrontColor) 135 this->_toFrontColor = new Color(frontColor); 136 else 137 *this->_toFrontColor = frontColor; 138 //this->_frontColor = frontColor; 139 //this->updateFrontColor(); 140 }; 141 117 142 118 143 void GLGuiWidget::setBorderSize(float borderSize) … … 176 201 void GLGuiWidget::clicking(const Vector2D& pos) 177 202 { 178 this-> frontMaterial().setDiffuse(0, 0, 1);203 this->setFrontColor(Color(0, 0, 1)); 179 204 180 205 } … … 182 207 void GLGuiWidget::releasing(const Vector2D& pos) 183 208 { 184 this-> frontMaterial().setDiffuse(0,1,0);209 this->setFrontColor(Color(0,1,0)); 185 210 186 211 } … … 188 213 void GLGuiWidget::receivedFocus() 189 214 { 190 this-> frontMaterial().setDiffuse(0, 1, 0);215 this->setFrontColor(Color(0, 1, 0)); 191 216 } 192 217 193 218 void GLGuiWidget::removedFocus() 194 219 { 195 this-> frontMaterial().setDiffuse(1, 0, 0);220 this->setFrontColor(Color(1, 0, 0)); 196 221 197 222 } … … 201 226 ; 202 227 228 203 229 void GLGuiWidget::setWidgetSize(const Vector2D& size) 204 230 { … … 239 265 this->setVisibility(false); 240 266 this->hiding(); 267 } 268 269 void GLGuiWidget::tick(float dt) 270 { 271 if (this->_toFrontColor) 272 { 273 this->_frontColor.slerp(*_toFrontColor, dt*3.0); 274 this->updateFrontColor(); 275 if (this->_frontColor.dist(*_toFrontColor) < .1) 276 { 277 delete _toFrontColor; 278 _toFrontColor = NULL; 279 } 280 } 241 281 } 242 282 … … 249 289 this->backMaterial().select(); 250 290 this->drawRect(this->backRect()); 291 this->backMaterial().unselect(); 251 292 } 252 293 -
trunk/src/lib/gui/gl/glgui_widget.h
r8312 r8448 8 8 9 9 #include "element_2d.h" 10 11 #include "glgui_style.h" 12 #include "material.h" 10 13 #include "rect2D.h" 11 12 #include "material.h"13 14 14 15 #include "event.h" 15 16 #include "signal_connector.h" 16 17 #include "glincl.h"18 19 #include <vector>20 21 // FORWARD DECLARATION22 class Material;23 17 24 18 namespace OrxGui … … 27 21 class GLGuiCursor; 28 22 29 //! if the Element should be visible by default.30 #define GLGUI_WIDGET_DEFAULT_VISIBLE false31 23 32 24 //! This is widget part of the openglGUI class … … 35 27 */ 36 28 class GLGuiWidget : public Element2D 37 { 38 public: 39 //! An enumerator that defines the different states Widgets may be in. 40 typedef enum { 41 Normal, //!< Normal state of the GUI's Widgets. 42 Active, //!< If the widget is Active. 43 Selected, //!< If the Widget is Selected. 44 Insensitive //!< If the Widget is insensitive. 45 } State; 46 47 48 29 { 49 30 public: 50 31 GLGuiWidget(GLGuiWidget* parent = NULL); … … 92 73 const Rect2D& backRect() const { return this->_backRect; }; 93 74 94 Material& frontMaterial() { return this->_frontMat; }; 95 const Material& frontMaterial() const { return this->_frontMat; }; 96 Rect2D& frontRect() { return this->_frontRect; }; 97 const Rect2D& frontRect() const { return this->_frontRect; }; 75 void setFrontColor(const Color& frontColor, bool instantaniously = false); 76 const Color& frontColor() const { return this->_frontColor; }; 98 77 99 78 /** @brief sets all borders to the same value. */ … … 116 95 void setBackgroundColor(float x, float y, float z) { this->backMaterial().setDiffuse(x,y,z); }; 117 96 118 inline void drawRect(const Rect2D& rect) const { 97 inline void drawRect(const Rect2D& rect) const 98 { 119 99 glBegin(GL_QUADS); 120 100 glTexCoord2i(0,0); glVertex2d(rect.left(), rect.top()); … … 127 107 128 108 virtual void update() {}; 109 virtual void tick(float dt); 129 110 virtual void draw() const; 130 111 … … 132 113 virtual bool processEvent(const Event& event) { return false; }; 133 114 115 134 116 protected: 135 136 117 /// LOOKS 137 118 virtual void resize(); … … 139 120 virtual void hiding() {}; 140 121 virtual void showing() {}; 122 virtual void updateFrontColor() {}; 123 124 inline void beginDraw() const { glPushMatrix(); glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0); }; 125 inline void endDraw() const { glPopMatrix(); }; 126 127 /// EVENTS 141 128 // if something was clickt on the GUI-widget. 142 129 virtual void clicking(const Vector2D& pos); … … 147 134 virtual void destroyed(); 148 135 149 150 inline void beginDraw() const { glPushMatrix(); glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0); };151 inline void endDraw() const { glPopMatrix(); };152 153 136 private: 154 137 void init(); 155 156 138 157 139 private: … … 162 144 Rect2D _backRect; 163 145 164 Material _frontMat;165 Rect2D _frontRect;146 Color _frontColor; 147 Color* _toFrontColor; 166 148 167 149 float _borderLeft; … … 171 153 172 154 Vector2D _minSize; 155 156 GLGuiStyle _style; 173 157 174 158 /// EVENTS -
trunk/src/lib/math/rect2D.cc
r8145 r8448 232 232 233 233 /** 234 * @brief sets the new Center 235 * @param x the center's X to move the Rectangle to. 236 * @param y the center's Y to move the Rectangle to. 237 * moves the Rectangle from its current center to the new Center 238 */ 239 void Rect2D::setCenter(float x, float y) 240 { 241 this->setCenter(Vector2D(x, y)); 242 } 243 244 /** 245 * @brief sets the new Center 246 * @param center the center to move the Rectangle to. 247 * moves the Rectangle from its current center to the new Center 248 */ 249 void Rect2D::setCenterX(float x) 250 { 251 #warning implement this 252 } 253 254 /** 255 * @brief sets the new Center 256 * @param center the center to move the Rectangle to. 257 * moves the Rectangle from its current center to the new Center 258 */ 259 void Rect2D::setCenterY(float y) 260 { 261 #warning implement this 262 } 263 264 /** 234 265 * @brief scales the Rectangle from topLeft out. 235 266 * @param x: the scale factor in x direction -
trunk/src/lib/math/rect2D.h
r8035 r8448 96 96 void setSize(const Vector2D& size); 97 97 void setCenter(const Vector2D& center); 98 void setCenter(float x, float y); 99 void setCenterX(float x); 100 void setCenterY(float y); 101 98 102 99 103 void scaleX(float x); -
trunk/src/lib/util/color.cc
r8376 r8448 18 18 #include "color.h" 19 19 #include <stdio.h> 20 21 22 void Color::debug() const 23 { 24 printf("r:%0.2f g:%0.2f, b:%0.2f, a:%0.2f\n", r(), g(), b(), a()); 25 } 20 26 21 27 /** -
trunk/src/lib/util/color.h
r8376 r8448 16 16 { 17 17 public: 18 Color(float r = 0.0f, float g = 0.0f, float b = 0.0f, float a = 0.0f) { _rgba[0] = r; _rgba[1] = g; _rgba[2] = b; _rgba[3] = a; };18 Color(float r = 0.0f, float g = 0.0f, float b = 0.0f, float a = 1.0f) { _rgba[0] = r; _rgba[1] = g; _rgba[2] = b; _rgba[3] = a; }; 19 19 Color(const Color& c) { _rgba[0] = c.r(); _rgba[1] = c.g(); _rgba[2] = c.b(); _rgba[3] = c.a(); } 20 20 21 float& operator[](unsigned int i) { return _rgba[i]; }22 const float& operator[](unsigned int i) const { return _rgba[i]; }21 inline const Color& operator=(const Color& c) { _rgba[0] = c.r(); _rgba[1] = c.g(); _rgba[2] = c.b(); _rgba[3] = c.a(); return *this; }; 22 inline bool operator==(const Color& c) const { return (r() == c.r() && g() == c.g() && b() == c.b() && a() == c.a()); }; 23 23 24 float r() const { return _rgba[0]; } 25 float& r() { return _rgba[0]; } 26 float g() const { return _rgba[1]; } 27 float& g() { return _rgba[1]; } 28 float b() const { return _rgba[2]; } 29 float& b() { return _rgba[2]; } 30 float a() const { return _rgba[3]; } 31 float& a() { return _rgba[3]; } 24 inline float& operator[](unsigned int i) { return _rgba[i]; } 25 inline const float& operator[](unsigned int i) const { return _rgba[i]; } 32 26 27 inline float r() const { return _rgba[0]; } 28 inline float& r() { return _rgba[0]; } 29 inline float g() const { return _rgba[1]; } 30 inline float& g() { return _rgba[1]; } 31 inline float b() const { return _rgba[2]; } 32 inline float& b() { return _rgba[2]; } 33 inline float a() const { return _rgba[3]; } 34 inline float& a() { return _rgba[3]; } 35 36 37 38 39 void setColor(float r = 0.0f, float g = 0.0f, float b = 0.0f, float a = 1.0f) { _rgba[0] = r; _rgba[1] = g; _rgba[2] = b; _rgba[3] = a; }; 40 void setColor(const Color& c) { r() = c.r(); g()= c.g(); b() = c.b(); a() = c.a(); }; 41 42 inline float dist(const Color& c) const { return (sqrt((r()-c.r())*(r()-c.r()) + (g()-c.g())*(g()-c.g()) + (b()-c.b())*(b()-c.b()) + (a()-c.a())*(a()-c.a()))); } 43 /// Maths 44 inline const Color& operator+=(const Color& c) { r()+=c.r(); g()+=c.g(); b()+=c.b(); a()+=c.a(); return *this; }; 45 inline Color operator+(const Color& c) const { return Color(r()+c.r(), g()+c.g(), b()+c.b(), a()+c.a()); }; 46 inline const Color& operator-=(const Color& c) { r()-=c.r(); g()-=c.g(); b()-=c.b(); a()-=c.a(); return *this; }; 47 inline Color operator-(const Color& c) const { return Color(r()-c.r(), g()-c.g(), b()-c.b(), a()-c.a()); }; 48 inline Color operator*(float v) const { return Color(r()*v, g()*v, b()*v, a()*v); }; 49 50 void slerp(const Color& c, float v) { *this += (c - *this) * v; }; 51 52 void debug() const; 33 53 34 54 /// STATIC TRANSFORMATIONS -
trunk/src/util/hud.cc
r8145 r8448 21 21 22 22 #include "world_entities/weapons/weapon_manager.h" 23 24 using namespace std; 25 23 #include "glgui_widget.h" 26 24 27 25 /** … … 76 74 this->energyWidget->backMaterial().setDiffuseMap("hud_energy_background.png"); 77 75 this->energyWidget->backMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 78 this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");79 this->energyWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 76 /* this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png"); 77 this->energyWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/ 80 78 } 81 79 … … 132 130 weapon->getEnergyWidget()->backMaterial().setDiffuse( .8,.2,.11); 133 131 weapon->getEnergyWidget()->backMaterial().setTransparency(.1); 134 weapon->getEnergyWidget()-> frontMaterial().setDiffuse( .2,.5,.7);135 weapon->getEnergyWidget()->frontMaterial().setTransparency(.6);132 weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6)); 133 // weapon->getEnergyWidget()->frontMaterial().setTransparency(.6); 136 134 this->weaponsWidgets.push_back(weapon->getEnergyWidget()); 137 135 } -
trunk/src/util/hud.h
r8145 r8448 7 7 #define _HUD_H 8 8 9 #include "glgui_widget.h" 10 #include <list> 11 9 #include "element_2d.h" 12 10 // FORWARD DECLARATION 13 11 class TiXmlElement; 14 12 class WeaponManager; 13 namespace OrxGui { class GLGuiWidget; } 15 14 16 15 //! A class that renders a HUD.
Note: See TracChangeset
for help on using the changeset viewer.