~ubuntu-branches/ubuntu/trusty/manaplus/trusty-proposed

« back to all changes in this revision

Viewing changes to src/gui/setup_video.cpp

  • Committer: Package Import Robot
  • Author(s): Patrick Matthäi
  • Date: 2013-09-17 10:35:51 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20130917103551-az7p3nz9jgxwqjfn
Tags: 1.3.9.15-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
#include "client.h"
26
26
#include "configuration.h"
27
 
#include "game.h"
28
27
 
29
28
#include "graphicsmanager.h"
30
29
 
31
 
#include "localplayer.h"
32
 
 
33
 
#include "gui/gui.h"
34
30
#include "gui/okdialog.h"
35
31
#include "gui/textdialog.h"
36
32
 
41
37
#include "gui/widgets/listbox.h"
42
38
#include "gui/widgets/scrollarea.h"
43
39
#include "gui/widgets/slider.h"
44
 
#include "gui/widgets/sliderlist.h"
45
 
#include "gui/widgets/textfield.h"
46
40
#include "gui/widgets/dropdown.h"
47
41
 
48
 
#include "resources/image.h"
 
42
#include "render/rendererslistsdl.h"
49
43
 
50
44
#include "utils/gettext.h"
51
45
#include "utils/sdlhelper.h"
52
46
 
53
47
#include "test/testmain.h"
54
48
 
55
 
#include <guichan/key.hpp>
56
49
#include <guichan/listmodel.hpp>
57
50
 
58
 
#include <SDL.h>
59
 
 
60
51
#include <algorithm>
61
52
 
62
53
#include "debug.h"
164
155
    return -1;
165
156
}
166
157
 
167
 
const char *OPENGL_NAME[4] =
168
 
{
169
 
    // TRANSLATORS: draw backend
170
 
    N_("Software"),
171
 
#ifndef ANDROID
172
 
    // TRANSLATORS: draw backend
173
 
    N_("Fast OpenGL"),
174
 
    // TRANSLATORS: draw backend
175
 
    N_("Safe OpenGL"),
176
 
#endif
177
 
    // TRANSLATORS: draw backend
178
 
    N_("Mobile OpenGL"),
179
 
};
180
 
 
181
158
class OpenGLListModel final : public gcn::ListModel
182
159
{
183
160
public:
185
162
    { }
186
163
 
187
164
    virtual int getNumberOfElements() override
188
 
#ifdef ANDROID
189
 
    { return 2; }
190
 
#else
191
 
    { return 4; }
192
 
#endif
 
165
    { return renderModesListSize; }
193
166
 
194
167
    virtual std::string getElementAt(int i) override
195
168
    {
203
176
    SetupTab(widget),
204
177
    gcn::KeyListener(),
205
178
    mFullScreenEnabled(config.getBoolValue("screen")),
206
 
    mOpenGLEnabled(config.getIntValue("opengl")),
 
179
    mOpenGLEnabled(intToRenderType(config.getIntValue("opengl"))),
207
180
    mFps(config.getIntValue("fpslimit")),
208
181
    mAltFps(config.getIntValue("altfpslimit")),
209
182
    mModeListModel(new ModeListModel),
250
223
    scrollArea->setWidth(150);
251
224
    scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER);
252
225
 
253
 
#ifdef USE_OPENGL
254
 
#ifdef ANDROID
255
 
    if (mOpenGLEnabled == 1 || mOpenGLEnabled == 2)
256
 
        mOpenGLEnabled = 3;
257
 
#endif
258
 
    mOpenGLDropDown->setSelected(mOpenGLEnabled);
259
 
#else
260
 
    mOpenGLDropDown->setSelected(0);
261
 
#endif
 
226
    mOpenGLDropDown->setSelected(renderToIndex[mOpenGLEnabled]);
262
227
 
263
228
    mModeList->setEnabled(true);
264
229
 
362
327
 
363
328
#if defined(WIN32) || defined(__APPLE__) || defined(ANDROID)
364
329
        // checks for opengl usage
365
 
        if (!config.getIntValue("opengl"))
 
330
        if (intToRenderType(config.getIntValue("opengl")) == RENDER_SOFTWARE)
366
331
        {
367
332
#endif
368
333
            if (!mainGraphics->setFullscreen(fullscreen))
401
366
        config.setValue("screen", fullscreen);
402
367
    }
403
368
 
404
 
    int mode = mOpenGLDropDown->getSelected();
405
 
#ifdef ANDROID
406
 
    if (mode == 1 || mode == 2)
407
 
        mode = 3;
408
 
#endif
 
369
    const int sel = mOpenGLDropDown->getSelected();
 
370
    RenderType mode = RENDER_SOFTWARE;
 
371
    if (sel >= 0 && static_cast<unsigned int>(sel) < sizeof(indexToRender))
 
372
        mode = indexToRender[mOpenGLDropDown->getSelected()];
409
373
 
410
374
    // OpenGL change
411
375
    if (mode != mOpenGLEnabled)
412
376
    {
413
 
        config.setValue("opengl", mode);
 
377
        config.setValue("opengl", static_cast<int>(mode));
414
378
 
415
379
        // OpenGL can currently only be changed by restarting, notify user.
416
380
        // TRANSLATORS: video settings warning
436
400
    mFullScreenEnabled = config.getBoolValue("screen");
437
401
    mCustomCursorEnabled = config.getBoolValue("customcursor");
438
402
 
439
 
    mOpenGLEnabled = config.getIntValue("opengl");
 
403
    mOpenGLEnabled = intToRenderType(config.getIntValue("opengl"));
440
404
    mEnableResize = config.getBoolValue("enableresize");
441
405
    mNoFrame = config.getBoolValue("noframe");
442
406
}
445
409
{
446
410
    mFpsCheckBox->setSelected(mFps > 0);
447
411
    mFsCheckBox->setSelected(mFullScreenEnabled);
448
 
    mOpenGLDropDown->setSelected(mOpenGLEnabled);
 
412
    mOpenGLDropDown->setSelected(renderToIndex[mOpenGLEnabled]);
449
413
    mCustomCursorCheckBox->setSelected(mCustomCursorEnabled);
450
414
    mFpsSlider->setValue(mFps);
451
415
    mFpsSlider->setEnabled(mFps > 0);
469
433
    config.setValue("screenheight", mainGraphics->mHeight);
470
434
 
471
435
    config.setValue("customcursor", mCustomCursorEnabled);
472
 
    config.setValue("opengl", mOpenGLEnabled);
 
436
    config.setValue("opengl", static_cast<int>(mOpenGLEnabled));
473
437
    config.setValue("enableresize", mEnableResize);
474
438
    config.setValue("noframe", mNoFrame);
475
439
}
510
474
        if (width != mainGraphics->mWidth || height != mainGraphics->mHeight)
511
475
        {
512
476
#if defined(WIN32) || defined(__APPLE__) || defined(ANDROID)
513
 
            if (!config.getIntValue("opengl"))
 
477
            if (intToRenderType(config.getIntValue("opengl"))
 
478
                == RENDER_SOFTWARE)
514
479
            {
515
480
                client->resizeVideo(width, height);
516
481
            }
536
501
                }
537
502
            }
538
503
#else
 
504
            mainGraphics->setWindowSize(width, height);
539
505
            client->resizeVideo(width, height);
540
506
#endif
541
507
        }
598
564
        if (test)
599
565
        {
600
566
            const int val = test->getConfig().getValueInt("opengl", -1);
601
 
            if (val >= 0 && val <= 3)
602
 
                mOpenGLDropDown->setSelected(val);
 
567
            if (val >= 0 && static_cast<unsigned int>(val)
 
568
                < sizeof(renderToIndex) / sizeof (int))
 
569
            {
 
570
                mOpenGLDropDown->setSelected(renderToIndex[val]);
 
571
            }
603
572
            delete test;
604
573
        }
605
574
    }