浏览代码

Menu draws half-transparent overlay

Thomas Buck 10 年前
父节点
当前提交
61486b7e36
共有 3 个文件被更改,包括 12 次插入1 次删除
  1. 1
    1
      include/Window.h
  2. 8
    0
      src/Menu.cpp
  3. 3
    0
      src/WindowSDL.cpp

+ 1
- 1
include/Window.h 查看文件

@@ -17,7 +17,7 @@ typedef struct {
17 17
     int w;
18 18
     int h;
19 19
     float scale;
20
-    unsigned char color[3];
20
+    unsigned char color[4];
21 21
 } WindowString;
22 22
 
23 23
 /*!

+ 8
- 0
src/Menu.cpp 查看文件

@@ -24,6 +24,7 @@ Menu::Menu() {
24 24
     mainText.color[0] = 0xFF;
25 25
     mainText.color[1] = 0xFF;
26 26
     mainText.color[2] = 0xFF;
27
+    mainText.color[3] = 0xFF;
27 28
     mainText.scale = 1.2f;
28 29
     mainText.w = 0;
29 30
     mainText.h = 0;
@@ -45,6 +46,13 @@ void Menu::display() {
45 46
     Window *window = gOpenRaider->mWindow;
46 47
 
47 48
     if (mVisible) {
49
+        // Draw half-transparent *overlay*
50
+        glColor4f(0.0f, 0.0f, 0.0f, 0.5f);
51
+        glDisable(GL_TEXTURE_2D);
52
+        glRecti(0, 0, window->mWidth, window->mHeight);
53
+        glEnable(GL_TEXTURE_2D);
54
+
55
+        // Draw heading text
48 56
         mainText.x = (window->mWidth / 2) - (mainText.w / 2);
49 57
         mainText.y = 10;
50 58
         window->writeString(&mainText);

+ 3
- 0
src/WindowSDL.cpp 查看文件

@@ -243,6 +243,7 @@ void WindowSDL::writeString(WindowString *s) {
243 243
     color.r = s->color[0];
244 244
     color.g = s->color[1];
245 245
     color.b = s->color[2];
246
+    color.a = s->color[3];
246 247
 
247 248
     SDL_Surface *surface = TTF_RenderUTF8_Blended(mFont, s->text, color);
248 249
     if (surface == NULL) {
@@ -277,6 +278,8 @@ void WindowSDL::writeString(WindowString *s) {
277 278
     GLuint xMax = xMin + (int)((float)surface->w * s->scale);
278 279
     GLuint yMax = yMin + (int)((float)surface->h * s->scale);
279 280
 
281
+    glColor4f(color.r / 256.0f, color.g / 256.0f, color.b / 256.0f, color.a / 256.0f);
282
+
280 283
     glBegin(GL_QUADS);
281 284
         glTexCoord2f(0.0f, 0.0f);
282 285
         glVertex2i(xMin, yMin);

正在加载...
取消
保存