Merge pull request #16516 from hrydgard/more-postshader-ui

Rework the post-shader list
This commit is contained in:
Henrik Rydgård 2022-12-07 19:34:18 +01:00 committed by GitHub
commit 51493c01ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
72 changed files with 819 additions and 354 deletions

View File

@ -16,3 +16,9 @@ typedef unsigned int Color;
inline Color darkenColor(Color color) {
return (color & 0xFF000000) | ((color >> 1) & 0x7F7F7F);
}
inline Color lightenColor(Color color) {
color = ~color;
color = (color & 0xFF000000) | ((color >> 1) & 0x7F7F7F);
return ~color;
}

View File

@ -312,10 +312,6 @@ void PopupScreen::TriggerFinish(DialogResult result) {
}
}
void PopupScreen::resized() {
RecreateViews();
}
void PopupScreen::CreateViews() {
using namespace UI;
UIContext &dc = *screenManager()->getUIContext();
@ -336,7 +332,9 @@ void PopupScreen::CreateViews() {
box_->SetDropShadowExpand(std::max(dp_xres, dp_yres));
View *title = new PopupHeader(title_);
if (HasTitleBar()) {
box_->Add(title);
}
CreatePopupContents(box_);
root_->SetDefaultFocusView(box_);
@ -403,6 +401,39 @@ UI::EventReturn ListPopupScreen::OnListChoice(UI::EventParams &e) {
namespace UI {
PopupContextMenuScreen::PopupContextMenuScreen(const ContextMenuItem *items, size_t itemCount, I18NCategory *category, UI::View *sourceView)
: PopupScreen("", "", ""), items_(items), itemCount_(itemCount), category_(category), sourceView_(sourceView)
{
enabled_.resize(itemCount, true);
SetPopupOrigin(sourceView);
}
void PopupContextMenuScreen::CreatePopupContents(UI::ViewGroup *parent) {
for (size_t i = 0; i < itemCount_; i++) {
if (items_[i].imageID) {
Choice *choice = new Choice(category_->T(items_[i].text), ImageID(items_[i].imageID));
parent->Add(choice);
if (enabled_[i]) {
choice->OnClick.Add([=](EventParams &p) {
TriggerFinish(DR_OK);
p.a = (uint32_t)i;
OnChoice.Dispatch(p);
return EVENT_DONE;
});
}
else {
choice->SetEnabled(false);
}
}
}
// Hacky: Override the position to look like a popup menu.
AnchorLayoutParams *ap = (AnchorLayoutParams *)parent->GetLayoutParams();
ap->center = false;
ap->left = sourceView_->GetBounds().x;
ap->top = sourceView_->GetBounds().y2();
}
std::string ChopTitle(const std::string &title) {
size_t pos = title.find('\n');
if (pos != title.npos) {
@ -814,7 +845,7 @@ void AbstractChoiceWithValueDisplay::GetContentDimensionsBySpec(const UIContext
const std::string valueText = ValueText();
int paddingX = 12;
// Assume we want at least 20% of the size for the label, at a minimum.
float availWidth = (horiz.size - paddingX * 2) * 0.8f;
float availWidth = (horiz.size - paddingX * 2) * (text_.empty() ? 1.0f : 0.8f);
if (availWidth < 0) {
availWidth = 65535.0f;
}
@ -826,11 +857,15 @@ void AbstractChoiceWithValueDisplay::GetContentDimensionsBySpec(const UIContext
valueW += paddingX;
// Give the choice itself less space to grow in, so it shrinks if needed.
MeasureSpec horizLabel = horiz;
horizLabel.size -= valueW;
// MeasureSpec horizLabel = horiz;
// horizLabel.size -= valueW;
Choice::GetContentDimensionsBySpec(dc, horiz, vert, w, h);
w += valueW;
// Fill out anyway if there's space.
if (horiz.type == AT_MOST && w < horiz.size) {
w = horiz.size;
}
h = std::max(h, valueH);
}

View File

@ -76,7 +76,6 @@ public:
virtual bool isTransparent() const override { return true; }
virtual bool touch(const TouchInput &touch) override;
virtual bool key(const KeyInput &key) override;
virtual void resized() override;
virtual void TriggerFinish(DialogResult result) override;
@ -91,6 +90,7 @@ protected:
virtual bool ShowButtons() const { return true; }
virtual bool CanComplete(DialogResult result) { return true; }
virtual void OnCompleted(DialogResult result) {}
virtual bool HasTitleBar() const { return true; }
const std::string &Title() { return title_; }
virtual void update() override;
@ -250,7 +250,7 @@ public:
Event OnChange;
private:
virtual void OnCompleted(DialogResult result) override;
void OnCompleted(DialogResult result) override;
TextEdit *edit_;
std::string *value_;
std::string textEditValue_;
@ -258,13 +258,45 @@ private:
int maxLen_;
};
// TODO: Break out a lot of popup stuff from UIScreen.h.
struct ContextMenuItem {
const char *text;
const char *imageID;
};
// Once a selection has been made,
class PopupContextMenuScreen : public PopupScreen {
public:
PopupContextMenuScreen(const ContextMenuItem *items, size_t itemCount, I18NCategory *category, UI::View *sourceView);
void CreatePopupContents(ViewGroup *parent) override;
const char *tag() const override { return "ContextMenuPopup"; }
void SetEnabled(size_t index, bool enabled) {
enabled_[index] = enabled;
}
UI::Event OnChoice;
protected:
bool HasTitleBar() const { return false; }
private:
const ContextMenuItem *items_;
size_t itemCount_;
I18NCategory *category_;
UI::View *sourceView_;
std::vector<bool> enabled_;
};
class AbstractChoiceWithValueDisplay : public UI::Choice {
public:
AbstractChoiceWithValueDisplay(const std::string &text, LayoutParams *layoutParams = nullptr)
: Choice(text, layoutParams) {
}
virtual void Draw(UIContext &dc) override;
void Draw(UIContext &dc) override;
void GetContentDimensionsBySpec(const UIContext &dc, MeasureSpec horiz, MeasureSpec vert, float &w, float &h) const override;
protected:
@ -463,8 +495,8 @@ public:
private:
std::string ValueText() const override;
int *iValue_ = nullptr;
std::string *sValue_ = nullptr;
int *iValue_ = nullptr;
const char *category_ = nullptr;
std::string (*translateCallback_)(const char *value) = nullptr;
};

View File

@ -16,6 +16,7 @@
#include "Common/System/System.h"
#include "Common/TimeUtil.h"
#include "Common/StringUtils.h"
#include "Common/Log.h"
namespace UI {
@ -24,7 +25,6 @@ static constexpr float MIN_TEXT_SCALE = 0.8f;
static constexpr float MAX_ITEM_SIZE = 65535.0f;
void MeasureBySpec(Size sz, float contentWidth, MeasureSpec spec, float *measured) {
*measured = sz;
if (sz == WRAP_CONTENT) {
if (spec.type == UNSPECIFIED)
*measured = contentWidth;
@ -40,6 +40,8 @@ void MeasureBySpec(Size sz, float contentWidth, MeasureSpec spec, float *measure
*measured = spec.size;
} else if (spec.type == EXACTLY || (spec.type == AT_MOST && *measured > spec.size)) {
*measured = spec.size;
} else {
*measured = sz;
}
}
@ -413,6 +415,7 @@ void ClickableItem::GetContentDimensions(const UIContext &dc, float &w, float &h
ClickableItem::ClickableItem(LayoutParams *layoutParams) : Clickable(layoutParams) {
if (!layoutParams) {
// The default LayoutParams assigned by View::View defaults to WRAP_CONTENT/WRAP_CONTENT.
if (layoutParams_->width == WRAP_CONTENT)
layoutParams_->width = FILL_PARENT;
}
@ -497,6 +500,7 @@ void Choice::Draw(UIContext &dc) {
if (image_.isValid()) {
const AtlasImage *image = dc.Draw()->GetAtlas()->getImage(image_);
_dbg_assert_(image);
paddingX += image->w + 6;
availWidth -= image->w + 6;
// TODO: Use scale rotation and flip here as well (DrawImageRotated is always ALIGN_CENTER for now)
@ -696,28 +700,55 @@ void CheckBox::Draw(UIContext &dc) {
if (!IsEnabled()) {
style = dc.theme->itemDisabledStyle;
}
ImageID image = Toggled() ? dc.theme->checkOn : dc.theme->checkOff;
// In image mode, light up instead of showing a checkbox.
if (imageID_.isValid()) {
image = imageID_;
if (Toggled()) {
if (HasFocus()) {
style = dc.theme->itemDownStyle;
} else {
style = dc.theme->itemFocusedStyle;
}
} else {
if (HasFocus()) {
style = dc.theme->itemDownStyle;
} else {
style = dc.theme->itemStyle;
}
}
if (down_) {
style.background.color = lightenColor(style.background.color);
}
} else {
if (HasFocus()) {
style = dc.theme->itemFocusedStyle;
}
if (down_) {
style = dc.theme->itemDownStyle;
}
}
dc.SetFontStyle(dc.theme->uiFont);
ClickableItem::Draw(dc);
DrawBG(dc, style);
ImageID image = Toggled() ? dc.theme->checkOn : dc.theme->checkOff;
float imageW, imageH;
dc.Draw()->MeasureImage(image, &imageW, &imageH);
const int paddingX = 12;
// Padding right of the checkbox image too.
const float availWidth = bounds_.w - paddingX * 2 - imageW - paddingX;
float scale = CalculateTextScale(dc, availWidth);
if (!text_.empty()) {
float scale = CalculateTextScale(dc, availWidth);
dc.SetFontScale(scale, scale);
Bounds textBounds(bounds_.x + paddingX, bounds_.y, availWidth, bounds_.h);
dc.DrawTextRect(text_.c_str(), textBounds, style.fgColor, ALIGN_VCENTER | FLAG_WRAP_TEXT);
}
dc.Draw()->DrawImage(image, bounds_.x2() - paddingX, bounds_.centerY(), 1.0f, style.fgColor, ALIGN_RIGHT | ALIGN_VCENTER);
dc.SetFontScale(1.0f, 1.0f);
}
@ -743,24 +774,41 @@ float CheckBox::CalculateTextScale(const UIContext &dc, float availWidth) const
void CheckBox::GetContentDimensions(const UIContext &dc, float &w, float &h) const {
ImageID image = Toggled() ? dc.theme->checkOn : dc.theme->checkOff;
if (imageID_.isValid()) {
image = imageID_;
}
float imageW, imageH;
dc.Draw()->MeasureImage(image, &imageW, &imageH);
const int paddingX = 12;
if (imageID_.isValid()) {
w = imageW + paddingX * 2;
h = std::max(imageH, ITEM_HEIGHT);
return;
}
// The below code is kinda wacky, we shouldn't involve bounds_ here.
// Padding right of the checkbox image too.
float availWidth = bounds_.w - paddingX * 2 - imageW - paddingX;
if (availWidth < 0.0f) {
// Let it have as much space as it needs.
availWidth = MAX_ITEM_SIZE;
}
if (!text_.empty()) {
float scale = CalculateTextScale(dc, availWidth);
float actualWidth, actualHeight;
Bounds availBounds(0, 0, availWidth, bounds_.h);
dc.MeasureTextRect(dc.theme->uiFont, scale, scale, text_.c_str(), (int)text_.size(), availBounds, &actualWidth, &actualHeight, ALIGN_VCENTER | FLAG_WRAP_TEXT);
w = bounds_.w;
h = std::max(actualHeight, ITEM_HEIGHT);
} else {
h = std::max(imageH, ITEM_HEIGHT);
}
w = bounds_.w;
}
void BitCheckBox::Toggle() {

View File

@ -827,11 +827,17 @@ private:
class CheckBox : public ClickableItem {
public:
CheckBox(bool *toggle, const std::string &text, const std::string &smallText = "", LayoutParams *layoutParams = 0)
CheckBox(bool *toggle, const std::string &text, const std::string &smallText = "", LayoutParams *layoutParams = nullptr)
: ClickableItem(layoutParams), toggle_(toggle), text_(text), smallText_(smallText) {
OnClick.Handle(this, &CheckBox::OnClicked);
}
// Image-only "checkbox", lights up instead of showing a checkmark.
CheckBox(bool *toggle, ImageID imageID, LayoutParams *layoutParams = nullptr)
: ClickableItem(layoutParams), toggle_(toggle), imageID_(imageID) {
OnClick.Handle(this, &CheckBox::OnClicked);
}
void Draw(UIContext &dc) override;
std::string DescribeText() const override;
void GetContentDimensions(const UIContext &dc, float &w, float &h) const override;
@ -846,6 +852,7 @@ private:
bool *toggle_;
std::string text_;
std::string smallText_;
ImageID imageID_;
};
class BitCheckBox : public CheckBox {

View File

@ -100,7 +100,11 @@ bool ViewGroup::Touch(const TouchInput &input) {
}
}
}
if (clickableBackground_) {
return any || bounds_.Contains(input.x, input.y);
} else {
return any;
}
}
void ViewGroup::Query(float x, float y, std::vector<View *> &list) {
@ -510,8 +514,9 @@ void LinearLayout::Measure(const UIContext &dc, MeasureSpec horiz, MeasureSpec v
float sum = 0.0f;
float maxOther = 0.0f;
float totalWeight = 0.0f;
float weightSum = 0.0f;
float weightZeroSum = 0.0f;
float weightSum = 0.0f; // Total sum of weights
float weightZeroSum = 0.0f; // Sum of sizes of things with weight 0.0, a bit confusingly named
int numVisible = 0;
@ -589,8 +594,11 @@ void LinearLayout::Measure(const UIContext &dc, MeasureSpec horiz, MeasureSpec v
for (View *view : views_) {
if (view->GetVisibility() == V_GONE)
continue;
const LinearLayoutParams *linLayoutParams = view->GetLayoutParams()->As<LinearLayoutParams>();
// FILL_PARENT is not appropriate in this direction. It gets ignored though.
// We have a bit too many of these due to the hack in the ClickableItem constructor.
// _dbg_assert_(view->GetLayoutParams()->width != UI::FILL_PARENT);
const LinearLayoutParams *linLayoutParams = view->GetLayoutParams()->As<LinearLayoutParams>();
if (linLayoutParams && linLayoutParams->weight > 0.0f) {
Margins margins = defaultMargins_;
if (linLayoutParams->HasMargins())
@ -634,8 +642,11 @@ void LinearLayout::Measure(const UIContext &dc, MeasureSpec horiz, MeasureSpec v
for (View *view : views_) {
if (view->GetVisibility() == V_GONE)
continue;
const LinearLayoutParams *linLayoutParams = view->GetLayoutParams()->As<LinearLayoutParams>();
// FILL_PARENT is not appropriate in this direction. It gets ignored though.
// We have a bit too many of these due to the hack in the ClickableItem constructor.
// _dbg_assert_(view->GetLayoutParams()->height != UI::FILL_PARENT);
const LinearLayoutParams *linLayoutParams = view->GetLayoutParams()->As<LinearLayoutParams>();
if (linLayoutParams && linLayoutParams->weight > 0.0f) {
Margins margins = defaultMargins_;
if (linLayoutParams->HasMargins())
@ -645,6 +656,7 @@ void LinearLayout::Measure(const UIContext &dc, MeasureSpec horiz, MeasureSpec v
h = MeasureSpec(AT_MOST, measuredWidth_);
float unit = (allowedHeight - weightZeroSum) / weightSum;
if (weightSum == 0.0f) {
// We must have gotten an inf.
unit = 1.0f;
}
MeasureSpec v(AT_MOST, unit * linLayoutParams->weight - margins.vert());
@ -1589,6 +1601,7 @@ StickyChoice *ChoiceStrip::Choice(int index) {
return static_cast<StickyChoice *>(views_[index]);
return nullptr;
}
ListView::ListView(ListAdaptor *a, std::set<int> hidden, LayoutParams *layoutParams)
: ScrollView(ORIENT_VERTICAL, layoutParams), adaptor_(a), maxHeight_(0), hidden_(hidden) {

View File

@ -78,6 +78,7 @@ public:
void SetHasDropShadow(bool has) { hasDropShadow_ = has; }
void SetDropShadowExpand(float s) { dropShadowExpand_ = s; }
void SetExclusiveTouch(bool exclusive) { exclusiveTouch_ = exclusive; }
void SetClickableBackground(bool clickableBackground) { clickableBackground_ = clickableBackground; }
void Lock() { modifyLock_.lock(); }
void Unlock() { modifyLock_.unlock(); }
@ -96,6 +97,7 @@ protected:
Drawable bg_;
float dropShadowExpand_ = 0.0f;
bool hasDropShadow_ = false;
bool clickableBackground_ = false;
bool clip_ = false;
bool exclusiveTouch_ = false;
};

View File

@ -19,11 +19,11 @@
// Postprocessing shader manager
// For FXAA, "Natural", bloom, B&W, cross processing and whatnot.
#pragma once
#include <string>
#include <vector>
#include "Common/Data/Format/IniFile.h"
struct ShaderInfo {
Path iniFile; // which ini file was this definition in? So we can write settings back later
std::string section; // ini file section. This is saved.

View File

@ -23,6 +23,7 @@
#include "Common/Render/DrawBuffer.h"
#include "Common/UI/Context.h"
#include "Common/UI/View.h"
#include "Common/UI/UIScreen.h"
#include "Common/Math/math_util.h"
#include "Common/System/Display.h"
#include "Common/System/NativeApp.h"
@ -37,14 +38,14 @@
#include "Core/System.h"
#include "GPU/Common/FramebufferManagerCommon.h"
#include "GPU/Common/PresentationCommon.h"
#include "GPU/Common/PostShader.h"
static const int leftColumnWidth = 200;
static const float orgRatio = 1.764706f; // 480.0 / 272.0
enum Mode {
MODE_MOVE,
MODE_RESIZE,
MODE_INACTIVE = 0,
MODE_MOVE = 1,
MODE_RESIZE = 2,
};
static Bounds FRectToBounds(FRect rc) {
@ -149,6 +150,7 @@ void DisplayLayoutScreen::dialogFinished(const Screen *dialog, DialogResult resu
}
UI::EventReturn DisplayLayoutScreen::OnPostProcShaderChange(UI::EventParams &e) {
// Remove the virtual "Off" entry. TODO: Get rid of it generally.
g_Config.vPostShaderNames.erase(std::remove(g_Config.vPostShaderNames.begin(), g_Config.vPostShaderNames.end(), "Off"), g_Config.vPostShaderNames.end());
NativeMessageReceived("gpu_configChanged", "");
@ -162,7 +164,13 @@ UI::EventReturn DisplayLayoutScreen::OnPostProcShaderChange(UI::EventParams &e)
}
static std::string PostShaderTranslateName(const char *value) {
auto gr = GetI18NCategory("Graphics");
auto ps = GetI18NCategory("PostShaders");
if (!strcmp(value, "Off")) {
// Off is a legacy fake item (gonna migrate off it later).
return gr->T("Add postprocessing shader");
}
const ShaderInfo *info = GetPostShaderInfo(value);
if (info) {
return ps->T(value, info ? info->name.c_str() : value);
@ -195,14 +203,16 @@ void DisplayLayoutScreen::CreateViews() {
// impossible.
root_->SetExclusiveTouch(true);
ScrollView *leftScrollView = new ScrollView(ORIENT_VERTICAL, new AnchorLayoutParams(300.0f, FILL_PARENT, 10.f, 10.f, NONE, 10.f, false));
ScrollView *leftScrollView = new ScrollView(ORIENT_VERTICAL, new AnchorLayoutParams(400.0f, FILL_PARENT, 10.f, 10.f, NONE, 10.f, false));
ViewGroup *leftColumn = new LinearLayout(ORIENT_VERTICAL);
leftScrollView->Add(leftColumn);
leftScrollView->SetClickableBackground(true);
root_->Add(leftScrollView);
ScrollView *rightScrollView = new ScrollView(ORIENT_VERTICAL, new AnchorLayoutParams(300.0f, FILL_PARENT, NONE, 10.f, 10.f, 10.f, false));
ViewGroup *rightColumn = new LinearLayout(ORIENT_VERTICAL);
rightScrollView->Add(rightColumn);
rightScrollView->SetClickableBackground(true);
root_->Add(rightScrollView);
LinearLayout *bottomControls = new LinearLayout(ORIENT_HORIZONTAL, new AnchorLayoutParams(NONE, NONE, NONE, 10.0f, false));
@ -219,6 +229,7 @@ void DisplayLayoutScreen::CreateViews() {
aspectRatio->SetLiveUpdate(true);
mode_ = new ChoiceStrip(ORIENT_HORIZONTAL, new LinearLayoutParams(WRAP_CONTENT, WRAP_CONTENT));
mode_->AddChoice(di->T("Inactive"));
mode_->AddChoice(di->T("Move"));
mode_->AddChoice(di->T("Resize"));
mode_->SetSelection(0, false);
@ -251,8 +262,6 @@ void DisplayLayoutScreen::CreateViews() {
static const char *bufFilters[] = { "Linear", "Nearest", };
leftColumn->Add(new PopupMultiChoice(&g_Config.iBufFilter, gr->T("Screen Scaling Filter"), bufFilters, 1, ARRAY_SIZE(bufFilters), gr->GetName(), screenManager()));
leftColumn->Add(new ItemHeader(gr->T("Postprocessing effect")));
Draw::DrawContext *draw = screenManager()->getDrawContext();
bool multiViewSupported = draw->GetDeviceCaps().multiViewSupported;
@ -261,15 +270,33 @@ void DisplayLayoutScreen::CreateViews() {
return g_Config.bStereoRendering && multiViewSupported;
};
leftColumn->Add(new ItemHeader(gr->T("Postprocessing shaders")));
std::set<std::string> alreadyAddedShader;
settingsVisible_.resize(g_Config.vPostShaderNames.size());
static ContextMenuItem postShaderContextMenu[] = {
{ "Move Up", "I_ARROW_UP" },
{ "Move Down", "I_ARROW_DOWN" },
{ "Remove", "I_TRASHCAN" },
};
for (int i = 0; i < (int)g_Config.vPostShaderNames.size() + 1 && i < ARRAY_SIZE(shaderNames_); ++i) {
// Vector element pointer get invalidated on resize, cache name to have always a valid reference in the rendering thread
shaderNames_[i] = i == g_Config.vPostShaderNames.size() ? "Off" : g_Config.vPostShaderNames[i];
leftColumn->Add(new ItemHeader(StringFromFormat("%s #%d", gr->T("Postprocessing Shader"), i + 1)));
postProcChoice_ = leftColumn->Add(new ChoiceWithValueDisplay(&shaderNames_[i], "", &PostShaderTranslateName));
LinearLayout *shaderRow = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(UI::FILL_PARENT, UI::WRAP_CONTENT));
shaderRow->SetSpacing(4.0f);
leftColumn->Add(shaderRow);
if (shaderNames_[i] != "Off") {
postProcChoice_ = shaderRow->Add(new ChoiceWithValueDisplay(&shaderNames_[i], "", &PostShaderTranslateName, new LinearLayoutParams(1.0f)));
} else {
postProcChoice_ = shaderRow->Add(new Choice(ImageID("I_PLUS")));
}
postProcChoice_->OnClick.Add([=](EventParams &e) {
auto gr = GetI18NCategory("Graphics");
auto procScreen = new PostProcScreen(gr->T("Postprocessing Shader"), i, false);
auto procScreen = new PostProcScreen(gr->T("Postprocessing shaders"), i, false);
procScreen->SetHasDropShadow(false);
procScreen->OnChoice.Handle(this, &DisplayLayoutScreen::OnPostProcShaderChange);
if (e.v)
@ -281,25 +308,90 @@ void DisplayLayoutScreen::CreateViews() {
return !g_Config.bSkipBufferEffects && !enableStereo();
});
if (i < g_Config.vPostShaderNames.size()) {
bool hasSettings = false;
std::vector<const ShaderInfo *> shaderChain = GetPostShaderChain(g_Config.vPostShaderNames[i]);
for (auto shaderInfo : shaderChain) {
for (size_t i = 0; i < ARRAY_SIZE(shaderInfo->settings); ++i) {
auto &setting = shaderInfo->settings[i];
if (!setting.name.empty()) {
hasSettings = true;
break;
}
}
}
if (hasSettings) {
CheckBox *checkBox = new CheckBox(&settingsVisible_[i], ImageID("I_SLIDERS"), new LinearLayoutParams(0.0f));
auto settingsButton = shaderRow->Add(checkBox);
settingsButton->OnClick.Add([=](EventParams &e) {
RecreateViews();
return UI::EVENT_DONE;
});
}
auto removeButton = shaderRow->Add(new Choice(ImageID("I_TRASHCAN"), new LinearLayoutParams(0.0f)));
removeButton->OnClick.Add([=](EventParams &e) -> UI::EventReturn {
g_Config.vPostShaderNames.erase(g_Config.vPostShaderNames.begin() + i);
NativeMessageReceived("gpu_configChanged", "");
RecreateViews();
return UI::EVENT_DONE;
});
auto moreButton = shaderRow->Add(new Choice(ImageID("I_THREE_DOTS"), new LinearLayoutParams(0.0f)));
moreButton->OnClick.Add([=](EventParams &e) -> UI::EventReturn {
PopupContextMenuScreen *contextMenu = new UI::PopupContextMenuScreen(postShaderContextMenu, ARRAY_SIZE(postShaderContextMenu), di.get(), moreButton);
screenManager()->push(contextMenu);
contextMenu->SetEnabled(0, i > 0);
contextMenu->SetEnabled(1, i < g_Config.vPostShaderNames.size() - 1);
contextMenu->OnChoice.Add([=](EventParams &e) -> UI::EventReturn {
switch (e.a) {
case 0: // Move up
std::swap(g_Config.vPostShaderNames[i - 1], g_Config.vPostShaderNames[i]);
break;
case 1: // Move down
std::swap(g_Config.vPostShaderNames[i], g_Config.vPostShaderNames[i + 1]);
break;
case 2: // Remove
g_Config.vPostShaderNames.erase(g_Config.vPostShaderNames.begin() + i);
break;
default:
return UI::EVENT_DONE;
}
NativeMessageReceived("gpu_configChanged", "");
RecreateViews();
return UI::EVENT_DONE;
});
return UI::EVENT_DONE;
});
}
// No need for settings on the last one.
if (i == g_Config.vPostShaderNames.size())
continue;
auto shaderChain = GetPostShaderChain(g_Config.vPostShaderNames[i]);
if (!settingsVisible_[i])
continue;
std::vector<const ShaderInfo *> shaderChain = GetPostShaderChain(g_Config.vPostShaderNames[i]);
for (auto shaderInfo : shaderChain) {
// Disable duplicated shader slider
bool duplicated = alreadyAddedShader.find(shaderInfo->section) != alreadyAddedShader.end();
alreadyAddedShader.insert(shaderInfo->section);
LinearLayout *settingContainer = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(UI::FILL_PARENT, UI::WRAP_CONTENT, UI::Margins(24.0f, 0.0f, 0.0f, 0.0f)));
leftColumn->Add(settingContainer);
for (size_t i = 0; i < ARRAY_SIZE(shaderInfo->settings); ++i) {
auto &setting = shaderInfo->settings[i];
if (!setting.name.empty()) {
// This map lookup will create the setting in the mPostShaderSetting map if it doesn't exist, with a default value of 0.0.
auto &value = g_Config.mPostShaderSetting[StringFromFormat("%sSettingValue%d", shaderInfo->section.c_str(), i + 1)];
if (duplicated) {
auto sliderName = StringFromFormat("%s %s", ps->T(setting.name), ps->T("(duplicated setting, previous slider will be used)"));
PopupSliderChoiceFloat *settingValue = leftColumn->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, sliderName, setting.step, screenManager()));
PopupSliderChoiceFloat *settingValue = settingContainer->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, sliderName, setting.step, screenManager()));
settingValue->SetEnabled(false);
} else {
PopupSliderChoiceFloat *settingValue = leftColumn->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, ps->T(setting.name), setting.step, screenManager()));
PopupSliderChoiceFloat *settingValue = settingContainer->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, ps->T(setting.name), setting.step, screenManager()));
settingValue->SetLiveUpdate(true);
settingValue->SetHasDropShadow(false);
settingValue->SetEnabledFunc([=] {
@ -313,3 +405,49 @@ void DisplayLayoutScreen::CreateViews() {
root_->Add(new DisplayLayoutBackground(mode_, new AnchorLayoutParams(FILL_PARENT, FILL_PARENT, 0.0f, 0.0f, 0.0f, 0.0f)));
}
void PostProcScreen::CreateViews() {
auto ps = GetI18NCategory("PostShaders");
ReloadAllPostShaderInfo(screenManager()->getDrawContext());
shaders_ = GetAllPostShaderInfo();
std::vector<std::string> items;
int selected = -1;
const std::string selectedName = id_ >= (int)g_Config.vPostShaderNames.size() ? "Off" : g_Config.vPostShaderNames[id_];
for (int i = 0; i < (int)shaders_.size(); i++) {
if (!shaders_[i].visible)
continue;
if (shaders_[i].isStereo != showStereoShaders_)
continue;
if (shaders_[i].section == selectedName)
selected = (int)indexTranslation_.size();
items.push_back(ps->T(shaders_[i].section.c_str(), shaders_[i].name.c_str()));
indexTranslation_.push_back(i);
}
adaptor_ = UI::StringVectorListAdaptor(items, selected);
ListPopupScreen::CreateViews();
}
void PostProcScreen::OnCompleted(DialogResult result) {
if (result != DR_OK)
return;
const std::string &value = shaders_[indexTranslation_[listView_->GetSelected()]].section;
// I feel this logic belongs more in the caller, but eh...
if (showStereoShaders_) {
if (g_Config.sStereoToMonoShader != value) {
g_Config.sStereoToMonoShader = value;
NativeMessageReceived("gpu_configChanged", "");
}
} else {
if (id_ < (int)g_Config.vPostShaderNames.size()) {
if (g_Config.vPostShaderNames[id_] != value) {
g_Config.vPostShaderNames[id_] = value;
NativeMessageReceived("gpu_configChanged", "");
}
}
else {
g_Config.vPostShaderNames.push_back(value);
NativeMessageReceived("gpu_configChanged", "");
}
}
}

View File

@ -17,8 +17,12 @@
#pragma once
#include <deque>
#include "Common/UI/View.h"
#include "Common/UI/ViewGroup.h"
#include "GPU/Common/PostShader.h"
#include "MiscScreens.h"
class DisplayLayoutScreen : public UIDialogScreenWithGameBackground {
@ -45,4 +49,23 @@ private:
UI::ChoiceStrip *mode_ = nullptr;
UI::Choice *postProcChoice_ = nullptr;
std::string shaderNames_[256];
std::deque<bool> settingsVisible_; // vector<bool> is an insane bitpacked specialization!
};
class PostProcScreen : public ListPopupScreen {
public:
PostProcScreen(const std::string &title, int id, bool showStereoShaders)
: ListPopupScreen(title), id_(id), showStereoShaders_(showStereoShaders) { }
void CreateViews() override;
const char *tag() const override { return "PostProc"; }
private:
void OnCompleted(DialogResult result) override;
bool ShowButtons() const override { return true; }
std::vector<ShaderInfo> shaders_;
int id_;
bool showStereoShaders_;
std::vector<int> indexTranslation_;
};

View File

@ -551,45 +551,6 @@ void PromptScreen::TriggerFinish(DialogResult result) {
UIDialogScreenWithBackground::TriggerFinish(result);
}
PostProcScreen::PostProcScreen(const std::string &title, int id, bool showStereoShaders) : ListPopupScreen(title), id_(id), showStereoShaders_(showStereoShaders) { }
void PostProcScreen::CreateViews() {
auto ps = GetI18NCategory("PostShaders");
ReloadAllPostShaderInfo(screenManager()->getDrawContext());
shaders_ = GetAllPostShaderInfo();
std::vector<std::string> items;
int selected = -1;
const std::string selectedName = id_ >= (int)g_Config.vPostShaderNames.size() ? "Off" : g_Config.vPostShaderNames[id_];
for (int i = 0; i < (int)shaders_.size(); i++) {
if (!shaders_[i].visible)
continue;
if (shaders_[i].isStereo != showStereoShaders_)
continue;
if (shaders_[i].section == selectedName)
selected = (int)indexTranslation_.size();
items.push_back(ps->T(shaders_[i].section.c_str(), shaders_[i].name.c_str()));
indexTranslation_.push_back(i);
}
adaptor_ = UI::StringVectorListAdaptor(items, selected);
ListPopupScreen::CreateViews();
}
void PostProcScreen::OnCompleted(DialogResult result) {
if (result != DR_OK)
return;
const std::string &value = shaders_[indexTranslation_[listView_->GetSelected()]].section;
// I feel this logic belongs more in the caller, but eh...
if (showStereoShaders_) {
g_Config.sStereoToMonoShader = value;
} else {
if (id_ < (int)g_Config.vPostShaderNames.size())
g_Config.vPostShaderNames[id_] = value;
else
g_Config.vPostShaderNames.push_back(value);
}
}
TextureShaderScreen::TextureShaderScreen(const std::string &title) : ListPopupScreen(title) {}
void TextureShaderScreen::CreateViews() {

View File

@ -109,23 +109,6 @@ private:
std::vector<File::FileInfo> langs_;
};
class PostProcScreen : public ListPopupScreen {
public:
PostProcScreen(const std::string &title, int id, bool showStereoShaders);
void CreateViews() override;
const char *tag() const override { return "PostProc"; }
private:
void OnCompleted(DialogResult result) override;
bool ShowButtons() const override { return true; }
std::vector<ShaderInfo> shaders_;
int id_;
bool showStereoShaders_;
std::vector<int> indexTranslation_;
};
class TextureShaderScreen : public ListPopupScreen {
public:
TextureShaderScreen(const std::string &title);

View File

@ -1064,7 +1064,7 @@ void TakeScreenshot() {
}
void RenderOverlays(UIContext *dc, void *userdata) {
// Thin bar at the top of the screen like Chrome.
// Thin bar at the top of the screen.
std::vector<float> progress = g_DownloadManager.GetCurrentProgress();
if (!progress.empty()) {
static const uint32_t colors[4] = {
@ -1091,8 +1091,8 @@ void RenderOverlays(UIContext *dc, void *userdata) {
}
void NativeRender(GraphicsContext *graphicsContext) {
_assert_(graphicsContext != nullptr);
_assert_(screenManager != nullptr);
_dbg_assert_(graphicsContext != nullptr);
_dbg_assert_(screenManager != nullptr);
g_GameManager.Update();

View File

@ -154,68 +154,6 @@ namespace MainWindow {
AppendMenu(helpMenu, MF_STRING | MF_BYCOMMAND, ID_HELP_ABOUT, aboutPPSSPP.c_str());
}
void UpdateDynamicMenuCheckmarks(HMENU menu) {
int item = ID_SHADERS_BASE + 1;
for (size_t i = 0; i < availableShaders.size(); i++) {
bool checked = false;
if (g_Config.vPostShaderNames.empty() && availableShaders[i] == "Off")
checked = true;
else if (g_Config.vPostShaderNames.size() == 1 && availableShaders[i] == g_Config.vPostShaderNames[0])
checked = true;
CheckMenuItem(menu, item++, checked ? MF_CHECKED : MF_UNCHECKED);
}
}
bool CreateShadersSubmenu(HMENU menu) {
// NOTE: We do not load this until translations are loaded!
if (!I18NCategoryLoaded("PostShaders"))
return false;
// We only reload this initially and when a menu is actually opened.
if (!menuShaderInfoLoaded) {
// This is on Windows where we don't currently blacklist any vendors, or similar.
// TODO: Figure out how to have the GPU data while reloading the post shader info.
ReloadAllPostShaderInfo(nullptr);
menuShaderInfoLoaded = true;
}
std::vector<ShaderInfo> info = GetAllPostShaderInfo();
if (menuShaderInfo.size() == info.size() && std::equal(info.begin(), info.end(), menuShaderInfo.begin())) {
return false;
}
auto ps = GetI18NCategory("PostShaders");
HMENU shaderMenu = GetSubmenuById(menu, ID_OPTIONS_SHADER_MENU);
EmptySubMenu(shaderMenu);
int item = ID_SHADERS_BASE + 1;
const char *translatedShaderName = nullptr;
availableShaders.clear();
for (auto i = info.begin(); i != info.end(); ++i) {
if (!i->visible)
continue;
int checkedStatus = MF_UNCHECKED;
availableShaders.push_back(i->section);
if (g_Config.vPostShaderNames.empty() && i->section == "Off") {
checkedStatus = MF_CHECKED;
} else if (g_Config.vPostShaderNames.size() == 1 && g_Config.vPostShaderNames[0] == i->section) {
checkedStatus = MF_CHECKED;
}
translatedShaderName = ps->T(i->section.c_str(), i->name.c_str());
AppendMenu(shaderMenu, MF_STRING | MF_BYPOSITION | checkedStatus, item++, ConvertUTF8ToWString(translatedShaderName).c_str());
}
menuShaderInfo = info;
return true;
}
static void TranslateMenuItem(const HMENU hMenu, const int menuID, const std::wstring& accelerator = L"", const char *key = nullptr) {
auto des = GetI18NCategory("DesktopUI");
@ -302,7 +240,6 @@ namespace MainWindow {
// Skip display multipliers x1-x10
TranslateMenuItem(menu, ID_OPTIONS_FULLSCREEN, g_Config.bSystemControls ? L"\tAlt+Return, F11" : L"");
TranslateMenuItem(menu, ID_OPTIONS_VSYNC);
TranslateMenuItem(menu, ID_OPTIONS_SHADER_MENU);
TranslateMenuItem(menu, ID_OPTIONS_SCREEN_MENU, g_Config.bSystemControls ? L"\tCtrl+1" : L"");
TranslateMenuItem(menu, ID_OPTIONS_SCREENAUTO);
// Skip rendering resolution 2x-5x..
@ -360,10 +297,6 @@ namespace MainWindow {
changed = true;
}
if (CreateShadersSubmenu(menu)) {
changed = true;
}
if (changed) {
DrawMenuBar(hWnd);
}
@ -1034,24 +967,7 @@ namespace MainWindow {
break;
default:
{
// Handle the dynamic shader switching here.
// The Menu ID is contained in wParam, so subtract
// ID_SHADERS_BASE and an additional 1 off it.
u32 index = (wParam - ID_SHADERS_BASE - 1);
if (index < availableShaders.size()) {
g_Config.vPostShaderNames.clear();
if (availableShaders[index] != "Off")
g_Config.vPostShaderNames.push_back(availableShaders[index]);
g_Config.bShaderChainRequires60FPS = PostShaderChainRequires60FPS(GetFullPostShadersChain(g_Config.vPostShaderNames));
NativeMessageReceived("gpu_renderResized", "");
NativeMessageReceived("postshader_updated", "");
break;
}
MessageBox(hWnd, L"Unimplemented", L"Sorry", 0);
}
break;
}
}
@ -1329,7 +1245,6 @@ namespace MainWindow {
EnableMenuItem(menu, ID_DEBUG_GEDEBUGGER, MF_GRAYED);
#endif
UpdateDynamicMenuCheckmarks(menu);
UpdateCommands();
}

View File

@ -553,10 +553,6 @@ BEGIN
MENUITEM "Fullscreen", ID_OPTIONS_FULLSCREEN
MENUITEM "VSync", ID_OPTIONS_VSYNC
MENUITEM "Skip Buffer Effects", ID_OPTIONS_SKIP_BUFFER_EFFECTS
POPUP "Postprocessing Shader", ID_OPTIONS_SHADER_MENU
BEGIN
MENUITEM "", 0, MFT_SEPARATOR
END
POPUP "Rendering Resolution", ID_OPTIONS_SCREEN_MENU
BEGIN
MENUITEM "Auto", ID_OPTIONS_SCREENAUTO

View File

@ -118,8 +118,6 @@
#define IDC_GEDBG_PRIMCOUNTER 1201
#define IDC_BUTTON_SEARCH 1204
#define ID_SHADERS_BASE 5000
#define ID_FILE_EXIT 40000
#define ID_DEBUG_SAVEMAPFILE 40001
#define ID_DISASM_RUNTOHERE 40004

View File

@ -192,7 +192,6 @@ Pause = &إيقاف مؤقت
Pause When Not Focused = &إيقاف مؤقت حينما لا يكون مفعلاً
Portrait = ‎لوحة
Portrait reversed = ‎لوحة معكوسة
Postprocessing Shader = Postprocessin&g shader
PPSSPP Forums = PPSSPP &منتديات
Record = &تسجيل
Record Audio = ‎تسجيل &الصوت
@ -322,6 +321,8 @@ Load completed = ‎التحميل إكتمل.
Loading = ‎تحميل\nمن فضلك إنتظر...
LoadingFailed = ‎غير قادر علي تحميل البيانات.
Move = ‎تحريك
Move Down = Move Down
Move Up = Move Up
Network Connection = ‎إتصال الشبكة
NEW DATA = ‎بيانات جديدة
No = ‎لا
@ -329,6 +330,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = ‎حسناً
Old savedata detected = ‎بيانات حفظ قديمة قد إكتشفت
Options = ‎إعدادات
Remove = Remove
Reset = ‎إستعادة
Resize = ‎تغيير الحجم
Retry = ‎حاول مجدداً
@ -536,8 +538,7 @@ Overlay Information = ‎معلومات النسق
Partial Stretch = ‎تمطيط جزئي
Percent of FPS = Percent of FPS
Performance = ‎الأداء
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1050,6 +1051,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Yükləmə Tamamlandı
Loading = Yüklənir\nZəhmət Olmasa Gözləyin...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = NEW DATA
No = Xeyir
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Overlay information
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = Пауза, когато не фокусиран
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &форум
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Зареждането завършено.
Loading = Зареждане\nМоля изчакайте...
LoadingFailed = Unable to load data.
Move = Преместване
Move Down = Move Down
Move Up = Move Up
Network Connection = Мрежова връзка
NEW DATA = Нови данни
No = Не
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Преоразмеряване
Retry = Нов опит
@ -528,8 +530,7 @@ Overlay Information = Обща информация
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pausa
Pause When Not Focused = &Pausa quan es canviï de finestra
Portrait = Vertical
Portrait reversed = Vertical invertit
Postprocessing Shader = &Shader de postprocessat
PPSSPP Forums = &Fòrums de PPSSPP
Record = Enregistreu
Record Audio = Enregistreu Àudio
@ -314,6 +313,8 @@ Load completed = Carrega completada
Loading = Carregant\nEspera un moment...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = NEW DATA
No = No
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Overlay information
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pozastavit
Pause When Not Focused = &Pozastavit pokud okno není zaměřeno
Portrait = Na výšku
Portrait reversed = Na výšku obráceně
Postprocessing Shader = &Shader následného zpracování
PPSSPP Forums = &Fóra PPSSPP
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Načítání dokončeno.
Loading = Načítání\nČekejte prosím...
LoadingFailed = Nelze načíst data.
Move = Přesunout
Move Down = Move Down
Move Up = Move Up
Network Connection = Síťové připojení
NEW DATA = NOVÁ DATA
No = Ne
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Zjištěna stará uložená data
Options = Volby
Remove = Remove
Reset = Resetovat
Resize = Velikost
Retry = Zkusit znovu
@ -528,8 +530,7 @@ Overlay Information = Informace v překryvu
Partial Stretch = Částečné roztažení
Percent of FPS = Percent of FPS
Performance = Výkon
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Shader následného zpracování
Postprocessing shaders = Shader následného zpracování
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = P&ause når ikke i fokus
Portrait = Portræt
Portrait reversed = Omvendt portræt
Postprocessing Shader = Efterbehandlin&gs shader
PPSSPP Forums = PPSSPP &forum
Record = Optag
Record Audio = Optag Lyd
@ -314,6 +313,8 @@ Load completed = Hentet.
Loading = Henter\nVent venligst...
LoadingFailed = Ikke muligt at indlæse data.
Move = Flyt
Move Down = Move Down
Move Up = Move Up
Network Connection = Netværksforbindelse
NEW DATA = NY DATA
No = Nej
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Gamle savedata fundet
Options = Optioner
Remove = Remove
Reset = Nulstil
Resize = Størrelse
Retry = Prøv igen
@ -528,8 +530,7 @@ Overlay Information = Overlay information
Partial Stretch = Delvis strukket
Percent of FPS = Percent of FPS
Performance = Ydelse
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Efterbehandlings shader
Postprocessing shaders = Efterbehandlings-shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = Pause
Pause When Not Focused = Pausieren im Hintergrund
Portrait = Hochformat
Portrait reversed = Hochformat umgedreht
Postprocessing Shader = Nachbearbeitungs-Shader
PPSSPP Forums = PPSSPP Forum
Record = Aufzeichnung
Record Audio = Ton aufzeichnen
@ -314,6 +313,8 @@ Load completed = Laden abgeschlossen
Loading = Laden\nBitte warten...
LoadingFailed = Daten konnten nicht geladen werden.
Move = Bewegen
Move Down = Move Down
Move Up = Move Up
Network Connection = Netzwerkverbindung
NEW DATA = Neue Daten
No = Nein
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Alter Speicherstand entdeckt
Options = Optionen
Remove = Remove
Reset = Zurücksetzen
Resize = Größe ändern
Retry = Wiederholen
@ -528,8 +530,7 @@ Overlay Information = Eingeblendete Informationen
Partial Stretch = Teilweise strecken
Percent of FPS = Prozent an FPS
Performance = Leistung
Postprocessing effect = Nachbearbeitungs-Effekte
Postprocessing Shader = Nachbearbeitungs-Shader
Postprocessing shaders = Nachbearbeitungs-Shader
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Kann Framerate smoother in Spielen machen, die eine niedrige Framerate haben.
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger vorhanden
Depth buffer format = Depth buffer format
Device Info = Geräteinfo
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Paus
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forumna
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Tibukka'mi.
Loading = Dibukka'i\nTajammi...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = DATA baru
No = Edda mane
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = Okemi mane
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Pempakitan Overlay
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -208,7 +208,6 @@ Pause = &Pause
Pause When Not Focused = &Pause when not focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g shader
PPSSPP Forums = PPSSPP &forums
Record = &Record
Record Audio = Record &audio
@ -338,6 +337,8 @@ Load completed = Load completed.
Loading = Loading\nPlease Wait...
LoadingFailed = Unable to load data.
Move = Move
Move Up = Move Up
Move Down = Move Down
Network Connection = Network Connection
NEW DATA = NEW DATA
No = No
@ -345,6 +346,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -552,8 +554,7 @@ Overlay Information = Overlay information
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1059,6 +1060,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Information = Display information

View File

@ -184,7 +184,6 @@ Pause = &Pausar
Pause When Not Focused = &Pausar al cambiar de ventana
Portrait = &Vertical
Portrait reversed = Vertical &invertido
Postprocessing Shader = &Shader de postprocesado
PPSSPP Forums = &Foro de PPSSPP
Record = G&rabar
Record Audio = Grabar &audio
@ -314,6 +313,8 @@ Load completed = Carga completada.
Loading = Cargando\nEspera un momento...
LoadingFailed = Los datos del juego no se pudieron cargar.
Move = Posición
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexión de red
NEW DATA = NUEVOS DATOS DE PARTIDA
No = No
@ -321,6 +322,7 @@ ObtainingIP = Obteniendo direcciónnn IP.\nPor favor espera...
OK = Aceptar
Old savedata detected = Se han detectado datos del juego antiguos.
Options = Opciones
Remove = Remove
Reset = Reiniciar
Resize = Tamaño
Retry = Reintentar
@ -528,8 +530,7 @@ Overlay Information = Información en pantalla
Partial Stretch = Estirado parcial
Percent of FPS = % de FPS
Performance = Rendimiento
Postprocessing effect = Efecto de postprocesado
Postprocessing Shader = Shader de postprocesado
Postprocessing shaders = Shaders de postprocesado
Recreate Activity = Recrear actividad
Render duplicate frames to 60hz = Renderizar cuadros duplicados a 60Hz
RenderDuplicateFrames Tip = Puede hacer la imagen más fluida in juegos con una tasa de cuadros más baja.
@ -1042,6 +1043,7 @@ CPU Name = Nombre
D3DCompiler Version = Versión del compilador D3D
Debug = Desarrollo
Debugger Present = Depurador presente
Depth buffer format = Depth buffer format
Device Info = Info. del dispositivo
Directories = Directorios
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pausar
Pause When Not Focused = &Pausar al cambiar de ventana
Portrait = Retrato
Portrait reversed = Retrato inverso
Postprocessing Shader = &Shader de postprocesado
PPSSPP Forums = &Foro de PPSSPP
Record = G&rabar
Record Audio = Grabar &audio
@ -314,6 +313,8 @@ Load completed = Datos cargados.
Loading = Cargando\nPor favor espere...
LoadingFailed = Los datos del juego no se pudieron cargar.
Move = Mover
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexión de red
NEW DATA = CREAR DATOS
No = No
@ -321,6 +322,7 @@ ObtainingIP = Obteniendo dirección IP.\nEspera un momento...
OK = OK
Old savedata detected = Se han detectado datos del juego antiguos.
Options = Opciones
Remove = Remove
Reset = Reiniciar
Resize = Tamaño
Retry = Reintentar
@ -528,8 +530,7 @@ Overlay Information = Información en pantalla
Partial Stretch = Estirado parcial
Percent of FPS = % de FPS
Performance = Rendimiento
Postprocessing effect = Efectos de postprocesado
Postprocessing Shader = Shader de postprocesado
Postprocessing shaders = Shaders de postprocesado
Recreate Activity = Recrear actividad
Render duplicate frames to 60hz = Procesar cuadros duplicados a 60 Hz
RenderDuplicateFrames Tip = Puede hacer que la fluidez sea más suave en juegos con tasas de cuadros bajas.
@ -1042,6 +1043,7 @@ CPU Name = Nombre
D3DCompiler Version = Versión del compilador D3D
Debug = Desarrollo
Debugger Present = Depurador presente
Depth buffer format = Depth buffer format
Device Info = Info de dispositivo
Directories = Directorios
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = ‎مکث
Pause When Not Focused = ‎هنگامی که پنجره فعال نباشد بازی متوقف شود
Portrait = ‎عمودی
Portrait reversed = ‎عمودی وارونه
Postprocessing Shader = ‎اضافه کردن افکت
PPSSPP Forums = PPSSPP انجمن های
Record = ‎ضبط کردن
Record Audio = ‎ضبط صدا
@ -314,6 +313,8 @@ Load completed = .بارگیری نکمیل شد
Loading = ‎درحال بارگیری\n...منتظر بمانید
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = ‎دیتای جدید
No = ‎خیر
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = ‎تایید
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Overlay اطلاعات
Partial Stretch = ‎کشیدگی جزئی
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = ‎افکت پس-پردازش
Postprocessing shaders = ‎افکت پس-پردازش
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Lataus onnistui.
Loading = Ladataan\nOdota...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = NEW DATA
No = Ei
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Overlay information
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = Mettre en pa&use si pas au premier plan
Portrait = Portrait
Portrait reversed = Portrait inversé
Postprocessing Shader = S&haders de post-traitement
PPSSPP Forums = Visiter le &forum de PPSSPP
Record = E&nregistrer
Record Audio = Enregistrer le &son
@ -314,6 +313,8 @@ Load completed = Chargement terminé.
Loading = Chargement\nVeuillez patienter...
LoadingFailed = Chargement impossible.
Move = Déplacer
Move Down = Move Down
Move Up = Move Up
Network Connection = Connexion réseau
NEW DATA = NOUVELLES DONNÉES
No = Non
@ -321,6 +322,7 @@ ObtainingIP = Obtention de l'adresse IP\nVeuillez patienter...
OK = OK
Old savedata detected = Ancienne sauvegarde détectée
Options = Options
Remove = Remove
Reset = Remise à 0
Resize = Zoomer
Retry = Réessayer
@ -528,8 +530,7 @@ Overlay Information = Informations incrustées à l'écran
Partial Stretch = Étirement partiel
Percent of FPS = Pourcentage de FPS
Performance = Performances
Postprocessing effect = Effets de post-traitement
Postprocessing Shader = Shaders de post-traitement
Postprocessing shaders = Shaders de post-traitement
Recreate Activity = Recréer l'animation
Render duplicate frames to 60hz = Dupliquer les images pour atteindre 60 Hz
RenderDuplicateFrames Tip = Peut améliorer la fluidité dans les jeux qui fonctionnent à des fréquences d'images plus faibles
@ -1033,6 +1034,7 @@ CPU Name = Nom
D3DCompiler Version = Version de D3DCompiler
Debug = Débogage
Debugger Present = Débogueur présent
Depth buffer format = Depth buffer format
Device Info = Informations sur l'appareil
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pausar
Pause When Not Focused = &Pausar ó cambiar de ventá
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = &Shader de postprocesado
PPSSPP Forums = &Foro de PPSSPP
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Carga completada.
Loading = Cargando\nAgarda un momento...
LoadingFailed = Os datos nom se puideron cargar.
Move = Posición
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexión de rede
NEW DATA = NOVOS DATOS
No = Non
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = Aceptar
Old savedata detected = Detectados datos de gardado antigos.
Options = Options
Remove = Remove
Reset = Reiniciar
Resize = Tamaño
Retry = Reintentar
@ -528,8 +530,7 @@ Overlay Information = Información en pantalla
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Rendemento
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Shader de postprocesado
Postprocessing shaders = Shaders de postprocesado
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Πάυση
Pause When Not Focused = Παύση σε κατάσταση παρασκηνίου
Portrait = Κατακόρυφο προσανατολισμός
Portrait reversed = Αντεστραμένος κατακόρυφος προσανατολισμός
Postprocessing Shader = Shader Μετεπεξεργασίας
PPSSPP Forums = PPSSPP &Forum
Record = Καταγραφή
Record Audio = Καταγραφή Ήχου
@ -314,6 +313,8 @@ Load completed = ΦΟΡΤΩΣΗ ΟΛΟΚΛΗΡΩΘΗΚΕ
Loading = ΦΟΡΤΩΣΗ\nΠΑΡΑΚΑΛΩ ΠΕΡΙΜΕΝΕΤΕ...
LoadingFailed = ΑΔΥΝΑΜΙΑ ΦΟΡΤΩΣΗΣ ΔΕΔΟΜΕΝΩΝ.
Move = ΜΕΤΑΚΙΝΗΣΗ
Move Down = Move Down
Move Up = Move Up
Network Connection = ΣΥΝΔΕΣΗ ΔΙΚΤΥΟΥ
NEW DATA = ΝΕΑ ΔΕΔΟΜΕΝΑ
No = ΟΧΙ
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Εντοπίστηκαν παλαιά αρχεία αποθήκευσης
Options = ΕΠΙΛΟΓΕΣ
Remove = Remove
Reset = ΕΠΑΝΑΦΟΡΑ
Resize = ΑΛΛΑΓΗ ΜΕΓΕΘΟΥΣ
Retry = ΕΠΑΝΑΛΗΨΗ
@ -528,8 +530,7 @@ Overlay Information = Πληροφορίες Οθόνης
Partial Stretch = Μερική επέκταση
Percent of FPS = Percent of FPS
Performance = Επίδοσεις
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Shader Μετεπεξεργασίας
Postprocessing shaders = Shaders Μετεπεξεργασίας
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Όνομα
D3DCompiler Version = Έκδοση D3DCompiler
Debug = Εντοπισμός σφαλμάτων
Debugger Present = Παρουσία πρόγραμματος εντοπισμού σφαλμάτων
Depth buffer format = Depth buffer format
Device Info = Πληροφορίες συσκευής
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &השהה
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = .המלשוה הניעט
Loading = ...ןתמה אנא ...ןעוט
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = םישדח םינותנ
No = אל
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = רדסב
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = כיסוי מידע
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = .המלשוה הניעט
Loading = ...ןתמה אנא ...ןעוט
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = םישדח םינותנ
No = אל
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = רדסב
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = עדימ יוסיכ
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pauza
Pause When Not Focused = &Pauziraj kad nije fokusirano
Portrait = Portret
Portrait reversed = Obrnuti portret
Postprocessing Shader = Postupa&k sjenčanja
PPSSPP Forums = PPSSPP &forumi
Record = &Snimaj
Record Audio = Snimaj &zvuk
@ -314,6 +313,8 @@ Load completed = Učitavanje dovršeno.
Loading = Učitavanje\nPričekajte...
LoadingFailed = Nije moguće učitati datu.
Move = Pomakni
Move Down = Move Down
Move Up = Move Up
Network Connection = Internetska veza
NEW DATA = NOVA DATA
No = Ne
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Uočena stara savedata
Options = Opcije
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Ponovi
@ -528,8 +530,7 @@ Overlay Information = Prekrivanje informacija
Partial Stretch = Djelomično rastezanje
Percent of FPS = Postotak FPS-a
Performance = Performansa
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Sjenčanje poslije procesa
Postprocessing shaders = Sjenčanje poslije procesa
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Izlgađiva frameove u igrama koje ih jako malo imaju
@ -1042,6 +1043,7 @@ CPU Name = Ime
D3DCompiler Version = D3DCompiler verzija
Debug = Otklanjanje grešaka
Debugger Present = Otklanjivač grešaka prisutan
Depth buffer format = Depth buffer format
Device Info = Informacije o uređaju
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Szünet
Pause When Not Focused = &Szüneteltetés, ha nincs fókuszban
Portrait = Álló
Portrait reversed = Fordított álló
Postprocessing Shader = Utóeffektező shader
PPSSPP Forums = PPSSPP &fórum
Record = &Felvétel
Record Audio = &Hang felvétele
@ -314,6 +313,8 @@ Load completed = Betöltve.
Loading = Betöltés\nKérlek várj...
LoadingFailed = Betöltés sikertelen.
Move = Mozgat
Move Down = Move Down
Move Up = Move Up
Network Connection = Hálózati kapcsolat
NEW DATA = ÚJ MENTÉS
No = Nem
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Régi mentés észlelve
Options = Opciók
Remove = Remove
Reset = Visszaállít
Resize = Átméretez
Retry = Újra
@ -528,8 +530,7 @@ Overlay Information = Overlay információk
Partial Stretch = Részleges nyújtás
Percent of FPS = FPS százalékában
Performance = Teljesítmény
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Utóeffektező shader
Postprocessing shaders = Utóeffektező shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Képkockák duplázása 60 Hz rendereléshez
RenderDuplicateFrames Tip = Simábbá teheti az alacsonyabb képkocka számon futó játékok kirajzolását
@ -1042,6 +1043,7 @@ CPU Name = Név
D3DCompiler Version = D3DCompiler verzió
Debug = Hibakeresés
Debugger Present = Debugger jelen
Depth buffer format = Depth buffer format
Device Info = Eszközinfó
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = Jeda
Pause When Not Focused = Jeda ketika tidak fokus
Portrait = Tegak
Portrait reversed = Tegak terbalik
Postprocessing Shader = Pemrosesan shader
PPSSPP Forums = &Forum PPSSPP
Record = Rekam
Record Audio = Rekam suara
@ -314,6 +313,8 @@ Load completed = Selesai memuat.
Loading = Memuat\nMohon Tunggu...
LoadingFailed = Tidak dapat memuat data.
Move = Pindah
Move Down = Move Down
Move Up = Move Up
Network Connection = Koneksi Jaringan
NEW DATA = DATA BARU
No = Tidak
@ -321,6 +322,7 @@ ObtainingIP = Mendapatkan alamat IP.\nHarap tunggu...
OK = Oke
Old savedata detected = Simpanan data lama terdeteksi
Options = Pilihan
Remove = Remove
Reset = Atur ulang
Resize = Atur ulang ukuran
Retry = Coba lagi
@ -528,8 +530,7 @@ Overlay Information = Tampilan Informasi
Partial Stretch = Peregangan sebagian
Percent of FPS = Persen FPS
Performance = Kinerja
Postprocessing effect = Efek pemrosesan
Postprocessing Shader = Pemrosesan shader
Postprocessing shaders = Pemrosesan shaders
Recreate Activity = Buat ulang aktivitas
Render duplicate frames to 60hz = Pelukisan bingkai duplikat menjadi 60 Hz
RenderDuplicateFrames Tip = Dapat membuat laju bingkai lebih lancar dalam permainan yang berjalan pada laju bingkai yang lebih rendah
@ -1042,6 +1043,7 @@ CPU Name = Nama CPU
D3DCompiler Version = Versi D3DCompiler
Debug = Awakutu
Debugger Present = Pengawakutu tersedia
Depth buffer format = Depth buffer format
Device Info = Info perangkat
Directories = Direktori
Display Color Formats = Format warna tampilan

View File

@ -184,7 +184,6 @@ Pause = Pausa
Pause When Not Focused = Pausa quando non attivo
Portrait = Ritratto
Portrait reversed = Ritratto invertito
Postprocessing Shader = Shader di post-elaborazione
PPSSPP Forums = Forum PPSSPP
Record = Registra
Record Audio = Registra Audio
@ -314,6 +313,8 @@ Load completed = Caricamento completato.
Loading = Caricamento in corso.\nAttendere, prego...
LoadingFailed = Impossibile caricare i dati.
Move = Sposta
Move Down = Move Down
Move Up = Move Up
Network Connection = Connessione di Rete
NEW DATA = NUOVI DATI
No = No
@ -321,6 +322,7 @@ ObtainingIP = Cerco di ottenere l'indirizzo IP.\nAttendere, prego...
OK = OK
Old savedata detected = Rilevati vecchi dati salvati
Options = Opzioni
Remove = Remove
Reset = Reset
Resize = Ridimensiona
Retry = Riprova
@ -529,8 +531,7 @@ Overlay Information = Copri Informazioni
Partial Stretch = Estensione Parziale
Percent of FPS = Percentuale di FPS
Performance = Prestazioni
Postprocessing effect = Effetti di post-elaborazione
Postprocessing Shader = Shader di post-elaborazione
Postprocessing shaders = Shader di post-elaborazione
Recreate Activity = Ricrea l'animazione
Render duplicate frames to 60hz = Duplica i frame da renderizzare a 60 Hz
RenderDuplicateFrames Tip = Può migliorare la fluidità nei giochi che funzionano a frame rate inferiori
@ -1043,6 +1044,7 @@ CPU Name = Nome
D3DCompiler Version = Versione D3DCompiler
Debug = Debug
Debugger Present = Debugger presente
Depth buffer format = Depth buffer format
Device Info = Informazioni dispositivo
Directories = Cartelle
Display Color Formats = Formati colore di visualizzazione

View File

@ -184,7 +184,6 @@ Pause = 一時停止(&P)
Pause When Not Focused = 非フォーカス時は一時停止する(&P)
Portrait =
Portrait reversed = 縦 (反転)
Postprocessing Shader = 後処理シェーダ(&G)
PPSSPP Forums = PPSSPPフォーラム(&F)
Record = 記録(&R)
Record Audio = オーディオを記録する(&A)
@ -314,6 +313,8 @@ Load completed = ロードが完了しました。
Loading = ロード中です。\nしばらくお待ちください...
LoadingFailed = データをロードできませんでした。
Move = 移動
Move Down = Move Down
Move Up = Move Up
Network Connection = ネットワーク接続
NEW DATA = 新しいデータ
No = いいえ
@ -321,6 +322,7 @@ ObtainingIP = IPアドレスの取得中。 \nしばらくお待ちください.
OK = OK
Old savedata detected = 古いセーブデータを検出しました
Options = オプション
Remove = Remove
Reset = リセット
Resize = リサイズ
Retry = リトライ
@ -528,8 +530,7 @@ Overlay Information = オーバーレイ表示
Partial Stretch = 部分的に拡大
Percent of FPS = FPS中のパーセント
Performance = パフォーマンス
Postprocessing effect = 後処理エフェクト
Postprocessing Shader = 後処理シェーダ
Postprocessing shaders = 後処理シェーダ
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = フレームを複製して60Hzでレンダリングする
RenderDuplicateFrames Tip = フレームレートが低いゲームでフレームレートをよりスムーズにできます
@ -1042,6 +1043,7 @@ CPU Name = CPU名
D3DCompiler Version = D3DCompilerバージョン
Debug = デバッグ
Debugger Present = デバッガーあり
Depth buffer format = Depth buffer format
Device Info = デバイス情報
Directories = ディレクトリ
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Ngaso
Pause When Not Focused = &Ngaso Nalika Ora Fokus
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Ngatifke Shader
PPSSPP Forums = &Forum PPSSPP
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Mbukak rampung.
Loading = Mbukak\nMohon nteni...
LoadingFailed = Ora biso mbukak data.
Move = Pindahno
Move Down = Move Down
Move Up = Move Up
Network Connection = Koneksi Jaringan
NEW DATA = DATA ANYAR
No = Ora
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = He.eh
Old savedata detected = Simpenan lawas terdeteksi
Options = Opsi
Remove = Remove
Reset = Ngreset
Resize = Ubah Ukuran
Retry = Jajal Maning
@ -528,8 +530,7 @@ Overlay Information = Informasi numpuki
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Kinerja
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = 일시 정지(&P)
Pause When Not Focused = 포커싱되지 않았을 때 일시 정지(&P)
Portrait = 세로방향
Portrait reversed = 세로방향 반전
Postprocessing Shader = 후처리 셰이더(&G)
PPSSPP Forums = PPSSPP 포럼(&F)
Record = 녹음(&R)
Record Audio = 사운드 녹음(&A)
@ -314,6 +313,8 @@ Load completed = 불러오기가 완료되었습니다.
Loading = 로딩 중\n잠시만 기다려 주세요...
LoadingFailed = 데이터를 불러올 수 없습니다.
Move = 이동
Move Down = Move Down
Move Up = Move Up
Network Connection = 네트워크 연결
NEW DATA = 새로운 데이터
No = 아니오
@ -321,6 +322,7 @@ ObtainingIP = IP 주소를 가져오는 중입니다.\n잠시만 기다려 주
OK = 확인
Old savedata detected = 오래된 저장 데이터 감지됨
Options = 옵션
Remove = Remove
Reset = 재설정
Resize = 크기 조정
Retry = 재시도
@ -528,8 +530,7 @@ Overlay Information = 오버레이 정보
Partial Stretch = 부분 늘이기
Percent of FPS = FPS 비율
Performance = 성능
Postprocessing effect = 후처리 효과
Postprocessing Shader = 후처리 쉐이더
Postprocessing shaders = 후처리 쉐이더
Recreate Activity = 활동 재생성
Render duplicate frames to 60hz = 중복 프레임을 60Hz로 렌더링
RenderDuplicateFrames Tip = 낮은 프레임 속도에서 실행되는 게임에서 프레임 속도를 더 부드럽게 만들 수 있습니다.
@ -1055,6 +1056,7 @@ CPU Name = 이름
D3DCompiler Version = D3D컴파일러 버전
Debug = 디버그
Debugger Present = 디버거 탐지
Depth buffer format = Depth buffer format
Device Info = 장치 정보
Directories = 디렉토리
Display Information = 정보 표시

View File

@ -184,7 +184,6 @@ Pause = &ຢຸດຊົ່ວຄາວ
Pause When Not Focused = &ຢຸດຊົ່ວຄາວເມື່ອບໍ່ໄດ້ຫຼິ້ນ
Portrait = ແນວຕັ້ງ
Portrait reversed = ກັບດ້ານແນວຕັ້ງ
Postprocessing Shader = &ຂະບວນການເຮັດວຽກໄລ່ປັບເສດແສງສີ
PPSSPP Forums = &ຟໍຣຳ PPSSPP
Record = ການບັນທຶກ
Record Audio = ບັນທຶກສຽງ
@ -314,6 +313,8 @@ Load completed = ໂຫຼດຂໍ້ມູນສຳເລັດ
Loading = ກຳລັງໂຫຼດ\nກະລຸນາລໍຖ້າ...
LoadingFailed = ບໍ່ສາມາດໂຫຼດຂໍ້ມູນ.
Move = ເຄື່ອນຍ້າຍ
Move Down = Move Down
Move Up = Move Up
Network Connection = ການເຊື່ອມຕໍ່ເຄື່ອຂ່າຍ
NEW DATA = ຂໍ້ມູນໃໝ່
No = ບໍ່ແມ່ນ
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = ຕົກລົງ
Old savedata detected = ກວດພົບຂໍ້ມູນເຊບເກົ່າ
Options = ໂຕເລືອກ
Remove = Remove
Reset = ຕັ້ງຄ່າໃໝ່
Resize = ປັບຂະໜາດ
Retry = ລອງໃໝ່ອີກຄັ້ງ
@ -528,8 +530,7 @@ Overlay Information = ການສະແດງຂໍ້ມູນຊ້ອນທ
Partial Stretch = ແນວຕັ້ງດຶງເຕັມຈໍ
Percent of FPS = Percent of FPS
Performance = ປະສິດທິພາບ
Postprocessing effect = Postprocessing effects
Postprocessing Shader = ຂະບວນການເຮັດວຽກໄລ່ປັບເສດສີ
Postprocessing shaders = ຂະບວນການເຮັດວຽກໄລ່ປັບເສດສີ
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pauzė
Pause When Not Focused = &Stabdyti kai nefokusuota
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forumai
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Krovimas baigtas.
Loading = Kraunama\nPrašome palaukti...
LoadingFailed = Neįmanoma krauti duomenų.
Move = Perkelti
Move Down = Move Down
Move Up = Move Up
Network Connection = Interneto tinklas
NEW DATA = NAUJI DUOMENYS
No = Ne
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = Gerai
Old savedata detected = Aptikti seniau išsaugoti duomenys
Options = Options
Remove = Remove
Reset = Perkrauti
Resize = Perkeisti dydį
Retry = Pabandyti dar kartą
@ -528,8 +530,7 @@ Overlay Information = Užkadrinė informacija
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Greitis
Postprocessing effect = Postprocessing effects
Postprocessing Shader = "Įdėjiniminio" krovimo "šešėliai" (FX)
Postprocessing shaders = "Įdėjiniminio" krovimo "šešėliai" (FX)
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Jeda
Pause When Not Focused = &Jeda ketika tidak difokus
Portrait = Portrait
Portrait reversed = Portrait songsang
Postprocessing Shader = Shader pasc&apemprosesan
PPSSPP Forums = PPSSPP &Forum
Record = &Rakam
Record Audio = Rakam &audio
@ -314,6 +313,8 @@ Load completed = Memuat selesai.
Loading = Memuat\nSila tunggu...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = DATA BAHARU
No = Tidak
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Mula semula
Resize = Resize
Retry = Cuba semula
@ -528,8 +530,7 @@ Overlay Information = Maklumat pertindihan
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Prestasi
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Pascapemprosesan Shader
Postprocessing shaders = Pascapemprosesan Shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pauzeren
Pause When Not Focused = &Pauzeren wanneer venster inactief is
Portrait = Portret
Portrait reversed = Omgekeerd portret
Postprocessing Shader = &Nabewerkingsshader
PPSSPP Forums = &PPSSPP-forum
Record = Opnemen
Record Audio = Audio opnemen
@ -314,6 +313,8 @@ Load completed = Het laden is voltooid.
Loading = Bezig met laden...\nEen ogenblik geduld.
LoadingFailed = Kan de data niet laden.
Move = Slepen
Move Down = Move Down
Move Up = Move Up
Network Connection = Netwerkverbinding
NEW DATA = NIEUWE DATA
No = Nee
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Oude savedata gedetecteerd
Options = Opties
Remove = Remove
Reset = Herstellen
Resize = Schalen
Retry = Opnieuw
@ -528,8 +530,7 @@ Overlay Information = Informatie op het scherm
Partial Stretch = Gedeeltelijk uitrekken
Percent of FPS = Percent of FPS
Performance = Prestaties
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Nabewerkingsshader
Postprocessing shaders = Nabewerkingsshaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Naam
D3DCompiler Version = D3DCompiler version
Debug = Fouten opsporen
Debugger Present = Foutopsporing aanwezig
Depth buffer format = Depth buffer format
Device Info = Apparaatinformatie
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Ferdig lastet.
Loading = Laster\nVent litt...
LoadingFailed = Unable to load data.
Move = Move
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = NEW DATA
No = Nei
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Old savedata detected
Options = Options
Remove = Remove
Reset = Reset
Resize = Resize
Retry = Retry
@ -528,8 +530,7 @@ Overlay Information = Overlay information
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = Pauza
Pause When Not Focused = Pauzuj, gdy okno nieaktywne
Portrait = Pionowo
Portrait reversed = Odwrócone pionowo
Postprocessing Shader = Efekty wizualne shaderów
PPSSPP Forums = Forum PPSSPP
Record = &Nagrywaj
Record Audio = Nagrywaj &dźwięk
@ -314,6 +313,8 @@ Load completed = Ładowanie zakończone.
Loading = Ładowanie\nProszę czekać...
LoadingFailed = Nie można wczytać danych.
Move = Przenieś
Move Down = Move Down
Move Up = Move Up
Network Connection = Połączenie sieciowe
NEW DATA = NOWE DANE
No = Nie
@ -321,6 +322,7 @@ ObtainingIP = Uzyskiwanie adresu IP.\nProszę czekać...
OK = OK
Old savedata detected = Wykryto stary zapis gry
Options = Opcje
Remove = Remove
Reset = Resetuj
Resize = Przeskaluj
Retry = Spróbuj ponownie
@ -528,8 +530,7 @@ Overlay Information = Nakładka informacyjna
Partial Stretch = Częściowe rozciągnięcie
Percent of FPS = Procent FPS
Performance = Wydajność
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Efekty wizualne shaderów
Postprocessing shaders = Efekty wizualne shaderów
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Nazwa
D3DCompiler Version = Wersja D3DCompiler
Debug = Debug
Debugger Present = Debugger obecny
Depth buffer format = Depth buffer format
Device Info = Inf. o urządzeniu
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -208,7 +208,6 @@ Pause = &Pausar
Pause When Not Focused = &Pausar quando não focado
Portrait = Retrato
Portrait reversed = Retrato invertido
Postprocessing Shader = Shader de pós-processamento
PPSSPP Forums = Fórums do &PPSSPP
Record = &Gravar
Record Audio = Gravar &áudio
@ -338,6 +337,8 @@ Load completed = Carregamento completado.
Loading = Carregando\nPor favor espere...
LoadingFailed = Incapaz de carregar os dados.
Move = Mover
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexão de rede
NEW DATA = NOVOS DADOS
No = Não
@ -345,6 +346,7 @@ ObtainingIP = Obtendo endereço de IP.\nPor favor espere...
OK = Ok
Old savedata detected = Dados antigos do save detectados
Options = Opções
Remove = Remove
Reset = Resetar
Resize = Redimensionar
Retry = Tentar de novo
@ -552,8 +554,7 @@ Overlay Information = Informações da sobreposição
Partial Stretch = Esticamento parcial
Percent of FPS = Porcentagem dos FPS
Performance = Performance
Postprocessing effect = Efeitos de pós-processamento
Postprocessing Shader = Shader de pós-processamento
Postprocessing shaders = Shaders de pós-processamento
Recreate Activity = Recriar atividade
Render duplicate frames to 60hz = Renderizar frames duplicados a 60 Hz
RenderDuplicateFrames Tip = Pode tornar a taxa dos frames mais suave em jogos que executam em taxas de frames menores
@ -1059,9 +1060,11 @@ CPU Name = Nome
D3DCompiler Version = Versão do compilador D3D
Debug = Debug
Debugger Present = Debugger presente
Depth buffer format = Depth buffer format
Device Info = Informação do dispositivo
Directories = Diretórios
Display Information = Informação da tela
Driver bugs = Driver bugs
Driver Version = Versão do driver
Driver Version = Versão do driver
EGL Extensions = Extensões do EGL

View File

@ -208,7 +208,6 @@ Pause = &Pausar
Pause When Not Focused = &Pausar quando não focado
Portrait = Retrato
Portrait reversed = Retrato invertido
Postprocessing Shader = Shader de Pós-Processamento
PPSSPP Forums = Fórums do &PPSSPP
Record = &Gravar
Record Audio = Gravar &Áudio
@ -338,6 +337,8 @@ Load completed = Carregamento completado.
Loading = Carregando\nPor favor espere...
LoadingFailed = Incapaz de carregar os dados.
Move = Mover
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexão de rede
NEW DATA = NOVOS DADOS
No = Não
@ -345,6 +346,7 @@ ObtainingIP = Obtendo o Endereço de IP.\nPor favor espere...
OK = Ok
Old savedata detected = Dados antigos do save detectados
Options = Opções
Remove = Remove
Reset = Reiniciar
Resize = Redimensionar
Retry = Tentar de novo
@ -552,8 +554,7 @@ Overlay Information = Informações da sobreposição
Partial Stretch = Esticamento Parcial
Percent of FPS = Percentagem dos FPS
Performance = Performance
Postprocessing effect = Efeitos de Pós-Processamento
Postprocessing Shader = Shader de Pós-Processamento
Postprocessing shaders = Shaders de Pós-Processamento
Recreate Activity = Recriar atividade
Render duplicate frames to 60hz = Renderizar quadros duplicados a 60 Hz
RenderDuplicateFrames Tip = Pode tornar a taxa dos quadros mais suave em jogos que executam em taxas de quadros menores
@ -1059,6 +1060,7 @@ CPU Name = Nome
D3DCompiler Version = Versão do compilador D3D
Debug = Debug
Debugger Present = Depurador presente
Depth buffer format = Depth buffer format
Device Info = Informação do dispositivo
Directories = Diretórios
Display Information = Informação da tela

View File

@ -184,7 +184,6 @@ Pause = &Pause
Pause When Not Focused = &Pause When Not Focused
Portrait = Portrait
Portrait reversed = Portrait reversed
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP &Forums
Record = &Record
Record Audio = Record &audio
@ -314,6 +313,8 @@ Load completed = Încărcare Completă
Loading = Se încarcă\nAșteptați...
LoadingFailed = Nu s-au putut încărca datele.
Move = Mișcă
Move Down = Move Down
Move Up = Move Up
Network Connection = Conexiune la rețea
NEW DATA = DATE NOI
No = Nu
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Date vechi salvate detectate
Options = Options
Remove = Remove
Reset = Resetare
Resize = Modificare marime
Retry = Reîncearcă
@ -528,8 +530,7 @@ Overlay Information = Informație suprapusă
Partial Stretch = Partial stretch
Percent of FPS = Percent of FPS
Performance = Performanță
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Shader postprocesare
Postprocessing shaders = Shaders postprocesare
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = &Пауза
Pause When Not Focused = &Пауза, когда окно не в фокусе
Portrait = Портретная
Portrait reversed = Портретная (перевернутая)
Postprocessing Shader = &Постобработка (шейдер)
PPSSPP Forums = &Форум PPSSPP
Record = &Запись
Record Audio = Запись &звука
@ -314,6 +313,8 @@ Load completed = Загрузка завершена
Loading = Загрузка\nПожалуйста, подождите...
LoadingFailed = Невозможно загрузить даные.
Move = Положение
Move Down = Move Down
Move Up = Move Up
Network Connection = Сетевое подключение
NEW DATA = Новое сохранение
No = Нет
@ -321,6 +322,7 @@ ObtainingIP = Получение IP-адреса.\nПожалуйста, под
OK = OK
Old savedata detected = Старый формат сохранений обнаружен
Options = Опции
Remove = Remove
Reset = Сбросить
Resize = Размер
Retry = Снова
@ -528,8 +530,7 @@ Overlay Information = Информация в оверлее
Partial Stretch = Частичное растягивание
Percent of FPS = Процент от FPS
Performance = Производительность
Postprocessing effect = Эффекты постобработки
Postprocessing Shader = Постобработка (шейдер)
Postprocessing shaders = Постобработка (шейдер)
Recreate Activity = Создать активность заново
Render duplicate frames to 60hz = Рендеринг дублирующихся кадров до 60 Гц
RenderDuplicateFrames Tip = Может сгладить частоту кадров в тех играх, где она низкая

View File

@ -184,7 +184,6 @@ Pause = Paus
Pause When Not Focused = Pausa vid tappat fokus
Portrait = Porträtt
Portrait reversed = Porträtt omvänt
Postprocessing Shader = Postprocessing Shader
PPSSPP Forums = PPSSPP-forum
Record = &Record
Record Audio = Record &audio
@ -274,10 +273,10 @@ VFPU = VFPU
[Dialog]
* PSP res = * PSP res
Active = Active
Active = Aktiv
Back = Tillbaka
Cancel = Avbryt
Center = Center
Center = Centrera
ChangingGPUBackends = PPSSPP måste starta om för att byta GPU-backend. Vill du starta om nu?
ChangingInflightFrames = Changing graphics command buffering requires PPSSPP to restart. Restart now?
Channel: = Channel:
@ -289,8 +288,8 @@ ConnectingAP = Kopplar upp till acceesspunkten.\nVänta...
ConnectingPleaseWait = Kopplar upp.\nVänta...
ConnectionName = Uppkopplingsnamn
Corrupted Data = Korrupt data
Delete = Ta bort
Delete all = Ta bort allt
Delete = Radera
Delete all = Radera allt
Delete completed = Borttaget.
DeleteConfirm = All sparad data tas bort.\nÄr du säker på att du vill göra detta?
DeleteConfirmAll = Vill du verkligen ta bort all\nsparad data för spelet?
@ -314,13 +313,16 @@ Load completed = Laddat.
Loading = Laddar\nVänta...
LoadingFailed = Kunde inte ladda data.
Move = Flytta
Move Down = Flytta ner
Move Up = Flytta upp
Network Connection = Nätverksuppkoppling
NEW DATA = NY DATA
No = Nej
ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Gammal savedata upptäckt
Options = Options
Options = Inställningar
Remove = Ta bort
Reset = Återställ
Resize = Ändra storlek
Retry = Försök igen
@ -518,7 +520,7 @@ Mode = Mode
Must Restart = Starta om PPSSPP för att ändringen ska få effekt.
Native device resolution = Native device resolution
Nearest = Närmast
No buffer = No buffer
No buffer = Ingen buffer
Skip Buffer Effects = Skippa buffereffekter (snabbare, risk för fel)
None = Inget
Number of Frames = Antal frames
@ -528,8 +530,7 @@ Overlay Information = Overlay-information
Partial Stretch = Partial stretch
Percent of FPS = Procent av FPS
Performance = Prestanda
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing-Shader
Postprocessing shaders = Postprocessing-Shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -549,7 +550,7 @@ Speed = Hastighet
Speed Hacks = Speed-hacks (kan orsaka renderingsproblem)
Stereo display shader = Stereo display shader
Stereo rendering = Stereo-rendering
Stretch = Stretch
Stretch = Sträck ut
Texture Filter = Texturfilter
Texture Filtering = Texturfiltrering
Texture Scaling = Texturskalning
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = Pause
Pause When Not Focused = Ihinto kapag hindi naka pokus
Portrait = Patayo
Portrait reversed = Pabaliktad na patayo
Postprocessing Shader = Postprocessing Shader
PPSSPP Forums = PPSSPP Forums
Record = Record
Record Audio = Record audio
@ -314,6 +313,8 @@ Load completed = Kumpletong na-i load.
Loading = Sandali lamang...
LoadingFailed = Loading ng datos ay pumalya.
Move = Galawin
Move Down = Move Down
Move Up = Move Up
Network Connection = Network Connection
NEW DATA = BAGONG DATOS
No = Hindi
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = Sige
Old savedata detected = Nahanap ang lumang savedata
Options = Options
Remove = Remove
Reset = Ibalik
Resize = Resize
Retry = Ulitin
@ -528,8 +530,7 @@ Overlay Information = Overlay na impormasyon
Partial Stretch = Parsiyal na unatin
Percent of FPS = Porsiyento ng FPS
Performance = Performance
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Postprocessing shader
Postprocessing shaders = Postprocessing shaders
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Name
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Device info
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = หยุดชั่วคราว
Pause When Not Focused = หยุดชั่วคราวเมื่อไม่ได้เล่น
Portrait = แนวตั้ง
Portrait reversed = แนวตั้งกลับด้าน
Postprocessing Shader = กระบวนการทำงานปรับเฉดแสงสี
PPSSPP Forums = เว็บ PPSSPP Forums
Record = การอัดบันทึก
Record Audio = อัดบันทึกเสียง
@ -314,6 +313,8 @@ Load completed = โหลดข้อมูลสำเร็จ
Loading = กำลังโหลด\nโปรดรอ...
LoadingFailed = ไม่สามารถโหลดข้อมูลนี้ได้
Move = ย้าย
Move Down = Move Down
Move Up = Move Up
Network Connection = การเชื่อมต่อเครือข่าย
NEW DATA = ข้อมูลใหม่
No = ไม่ใช่
@ -321,6 +322,7 @@ ObtainingIP = กำลังรับไอพี\nโปรดรอสัก
OK = ตกลง
Old savedata detected = ตรวจพบข้อมูลเซฟเก่า
Options = ตัวเลือก
Remove = Remove
Reset = ตั้งค่าใหม่
Resize = ขนาด
Retry = ลองใหม่
@ -528,8 +530,7 @@ Overlay Information = การแสดงข้อมูลซ้อนทั
Partial Stretch = แนวตั้งดึงเต็มจอ
Percent of FPS = อิงจากเปอร์เซ็นต์เฟรมต่อวิ
Performance = ประสิทธิภาพ
Postprocessing effect = กระบวนการทำงานปรับเอฟเฟ็คท์
Postprocessing Shader = กระบวนการทำงานปรับเฉดแสงสี
Postprocessing shaders = กระบวนการทำงานปรับเฉดแสงสี
Recreate Activity = สร้างกิจกรรมใหม่
Render duplicate frames to 60hz = แสดงผลเฟรมซ้ำให้ถึง 60 เฮิร์ตซ
RenderDuplicateFrames Tip = ช่วยให้ภาพดูลื่นตาขึ้น ในเกมที่ใช้เฟรมเรทต่ำ
@ -1042,6 +1043,7 @@ CPU Name = ชื่อหน่วยประมวลผลหลัก
D3DCompiler Version = เวอร์ชั่นตัวคอมไพล์ของ D3D
Debug = แก้ไขบั๊ก
Debugger Present = ตัวช่วยแก้ไขบั๊ก
Depth buffer format = Depth buffer format
Device Info = ข้อมูลอุปกรณ์
Directories = เส้นทางเก็บข้อมูล
Display Color Formats = รูปแบบสีของหน้าจอแสดงผล

View File

@ -186,7 +186,6 @@ Pause = PPSSPP Menüsü
Pause When Not Focused = &Başka programa geçildiğinde duraklat
Portrait = Dikey
Portrait reversed = Ters Dikey
Postprocessing Shader = Postprocessin&g Shader
PPSSPP Forums = PPSSPP Forumları
Record = Kayıt
Record Audio = Ses Kaydet
@ -316,6 +315,8 @@ Load completed = Yükleme tamamlandı.
Loading = Yükleniyor\nLütfen Bekleyin...
LoadingFailed = Veri yüklenemedi.
Move = Taşı
Move Down = Move Down
Move Up = Move Up
Network Connection = Ağ Bağlantısı
NEW DATA = YENİ VERİ
No = Hayır
@ -323,6 +324,7 @@ ObtainingIP = IP adresi alınıyor.\nLütfen bekleyin...
OK = Tamam
Old savedata detected = Eski kayıt bulundu.
Options = Ayarlar
Remove = Remove
Reset = Sıfırla
Resize = Yeniden Boyutlandır
Retry = Yeniden Dene
@ -530,8 +532,7 @@ Overlay Information = Ek Bilgi
Partial Stretch = Tam ekran (kısmi sünme)
Percent of FPS = FPS yüzdesi
Performance = Performans
Postprocessing effect = Postprocessing efektleri
Postprocessing Shader = Postprocessing gölgelendiricisi
Postprocessing shaders = Postprocessing gölgelendiricisi
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Yinelenen kareleri 60Hz'de işleyin
RenderDuplicateFrames Tip = Daha düşük kare hızlarında çalışan oyunlarda kare hızını düzeltebilir
@ -1043,6 +1044,7 @@ CPU Name = Ad
D3DCompiler Version = D3DCompiler sürümü
Debug = Hata Ayıklama
Debugger Present = Hata ayıklayıcı var
Depth buffer format = Depth buffer format
Device Info = Cihaz bilgisi
Directories = Dizinler
Display Color Formats = Renk Biçimlerini Görüntüle

View File

@ -184,7 +184,6 @@ Pause = &Пауза
Pause When Not Focused = &Пауза коли вікно не в фокусі
Portrait = Портретне
Portrait reversed = Портретна (перевернуто)
Postprocessing Shader = &Подальша обробка (шейдер)
PPSSPP Forums = &Форум PPSSPP
Record = &Запис
Record Audio = Запис &аудіо
@ -314,6 +313,8 @@ Load completed = Завантаження завершене
Loading = Завантаження\nБудь ласка, зачекайте...
LoadingFailed = Не вдалося завантажити дані.
Move = Положення
Move Down = Move Down
Move Up = Move Up
Network Connection = Підключення до мережі
NEW DATA = Нове збереження
No = Ні
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Виявлено старий формат збережень
Options = Опції:
Remove = Remove
Reset = Скинути
Resize = Розмір
Retry = Повторити
@ -528,8 +530,7 @@ Overlay Information = Інформація про накладення
Partial Stretch = Часткове розтягнення
Percent of FPS = Відсоток FPS
Performance = Продуктивність
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Шейдери
Postprocessing shaders = &Подальша обробка (шейдер)
Recreate Activity = Відтворити діяльність
Render duplicate frames to 60hz = Відображення повторюваних кадрів до 60 Гц
RenderDuplicateFrames Tip = Можна зробити більш плавний кадр в іграх, які працюють у нижчих кадрах
@ -1042,6 +1043,7 @@ CPU Name = Назва
D3DCompiler Version = Версія D3DCompiler
Debug = Налагодження
Debugger Present = Присутній налагоджувач
Depth buffer format = Depth buffer format
Device Info = Інформація про пристрій
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = Tạm dừng
Pause When Not Focused = Dừng trò chơi khi "ko tập trung"
Portrait = Chiều dọc
Portrait reversed = Chiều dọc đảo ngược
Postprocessing Shader = Xử lý hậu đổ bóng
PPSSPP Forums = Diễn đàn PPSSPP
Record = Ghi lại
Record Audio = Ghi âm thanh
@ -314,6 +313,8 @@ Load completed = Đã load xong.
Loading = Đang load\nXin đợi...
LoadingFailed = Không thể load dữ liệu này.
Move = Di chuyển
Move Down = Move Down
Move Up = Move Up
Network Connection = Kết nối mạng
NEW DATA = DỮ LIỆU MỚI
No = Không
@ -321,6 +322,7 @@ ObtainingIP = Obtaining IP address.\nPlease wait...
OK = OK
Old savedata detected = Phát hiện dữ liệu cũ
Options = Tùy chọn
Remove = Remove
Reset = Mặc định
Resize = Thay đổi kích thước
Retry = Thử lại
@ -528,8 +530,7 @@ Overlay Information = Hiển thị thông tin trên màn hình
Partial Stretch = Từng phần dãn ra
Percent of FPS = Percent of FPS
Performance = Hiệu năng
Postprocessing effect = Postprocessing effects
Postprocessing Shader = Xử lý hậu đổ bóng
Postprocessing shaders = Xử lý hậu đổ bóng
Recreate Activity = Recreate activity
Render duplicate frames to 60hz = Render duplicate frames to 60 Hz
RenderDuplicateFrames Tip = Can make framerate smoother in games that run at lower framerates
@ -1042,6 +1043,7 @@ CPU Name = Tên
D3DCompiler Version = D3DCompiler version
Debug = Debug
Debugger Present = Debugger present
Depth buffer format = Depth buffer format
Device Info = Thông tin thiết bị
Directories = Directories
Display Color Formats = Display Color Formats

View File

@ -184,7 +184,6 @@ Pause = 暂停 (&P)
Pause When Not Focused = 后台运行时自动暂停 (&P)
Portrait = 纵向
Portrait reversed = 纵向反转
Postprocessing Shader = 后处理着色器 (&g)
PPSSPP Forums = PPSSPP官方论坛 (&F)
Record = 录制 (&R)
Record Audio = 录制音频 (&A)
@ -314,6 +313,8 @@ Load completed = 已载入。
Loading = 载入中\n请稍候...
LoadingFailed = 无法载入存档。
Move = 移动
Move Down = Move Down
Move Up = Move Up
Network Connection = 网络连接
NEW DATA = 新建存档
No =
@ -321,6 +322,7 @@ ObtainingIP = 获取IP地址.\n请稍候...
OK = 确定
Old savedata detected = 检测到旧版本的存档数据
Options = 选项
Remove = Remove
Reset = 重置
Resize = 调整大小
Retry = 重试
@ -528,8 +530,7 @@ Overlay Information = 叠加信息
Partial Stretch = 部分拉伸
Percent of FPS = 帧率的百分比
Performance = 性能
Postprocessing effect = 滤镜效果
Postprocessing Shader = 后处理着色器
Postprocessing shaders = 后处理着色器
Recreate Activity = 重建进程
Render duplicate frames to 60hz = 渲染重复帧至60Hz
RenderDuplicateFrames Tip = 在较低帧率的游戏中可以使帧速率更平滑
@ -1036,6 +1037,7 @@ CPU Name = CPU 名称
D3DCompiler Version = D3DCompiler版本
Debug = 调试
Debugger Present = 调试器已连接
Depth buffer format = Depth buffer format
Device Info = 设备信息
Directories = 路径
Display Color Formats = 显示颜色格式

View File

@ -184,7 +184,6 @@ Pause = 暫停 (&P)
Pause When Not Focused = 未聚焦時暫停 (&P)
Portrait = 直向
Portrait reversed = 直向反轉
Postprocessing Shader = 後處理著色器 (&G)
PPSSPP Forums = PPSSPP 論壇 (&F)
Record = 錄製 (&R)
Record Audio = 錄製音訊 (&A)
@ -314,6 +313,8 @@ Load completed = 載入完成
Loading = 正在載入\n請稍候…
LoadingFailed = 無法載入資料
Move = 移動
Move Down = Move Down
Move Up = Move Up
Network Connection = 網路連線
NEW DATA = 新存檔
No =
@ -321,6 +322,7 @@ ObtainingIP = 正在取得 IP 位址\n請稍候…
OK = 確定
Old savedata detected = 偵測到舊版存檔資料
Options = 選項
Remove = Remove
Reset = 重設
Resize = 調整大小
Retry = 重試
@ -528,8 +530,7 @@ Overlay Information = 覆疊資訊
Partial Stretch = 部分延展
Percent of FPS = FPS 百分比
Performance = 效能
Postprocessing effect = 後處理效果
Postprocessing Shader = 後處理著色器
Postprocessing shaders = 後處理著色器
Recreate Activity = 重新建立活動
Render duplicate frames to 60hz = 轉譯重複影格至 60 Hz
RenderDuplicateFrames Tip = 可以使以較低影格速率執行的遊戲更加順暢
@ -1035,6 +1036,7 @@ CPU Name = CPU 名稱
D3DCompiler Version = D3DCompiler 版本
Debug = 偵錯
Debugger Present = 偵錯工具呈現
Depth buffer format = Depth buffer format
Device Info = 裝置資訊
Directories = 目錄
Display Information = 顯示器資訊

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -2099,6 +2099,41 @@
operator="over"
result="composite2" />
</filter>
<filter
id="filter5240-0"
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
x="-0.05898663"
y="-0.058986649"
width="1.1179733"
height="1.1179733">
<feFlood
id="feFlood5242-7"
flood-opacity="0.2"
flood-color="rgb(0,0,0)"
result="flood" />
<feComposite
id="feComposite5244-6"
in2="SourceGraphic"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur5246-3"
stdDeviation="0.5"
result="blur" />
<feOffset
id="feOffset5248-1"
dx="0"
dy="0"
result="offset" />
<feComposite
id="feComposite5250-3"
in2="offset"
in="SourceGraphic"
operator="over"
result="composite2" />
</filter>
</defs>
<sodipodi:namedview
id="base"
@ -2107,17 +2142,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.678384"
inkscape:cx="169.82176"
inkscape:cy="724.41117"
inkscape:zoom="7.919596"
inkscape:cx="178.9489"
inkscape:cy="776.02928"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1869"
inkscape:window-height="1617"
inkscape:window-x="1606"
inkscape:window-y="112"
inkscape:window-maximized="0"
inkscape:window-width="3840"
inkscape:window-height="2081"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="0">
<inkscape:grid
@ -2145,8 +2180,8 @@
id="rect5044"
width="399.68362"
height="362.96939"
x="-5.226912"
y="-5.6735277" />
x="-2.726912"
y="-3.7985277" />
<g
id="g3918"
inkscape:export-xdpi="135"
@ -3109,7 +3144,8 @@
<g
id="g5067"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135">
inkscape:export-ydpi="135"
transform="translate(34.285714,-2.1428571)">
<rect
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter5132-3)"
id="rect5029"
@ -3160,5 +3196,182 @@
id="rect5059"
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter5132-3)" />
</g>
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1331"
d="m 68.903449,263.11559 -7.811944,7.81193 -7.809322,-7.80931 -2.806288,2.80628 7.809322,7.80932 -7.809321,7.80932 2.85355,2.85356 7.809321,-7.80932 7.764681,7.76467 2.806278,-2.80629 -7.764678,-7.76467 7.811941,-7.81194 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(0.62454497,0.62454497,-0.62454497,0.62454497,191.93289,62.658113)"
sodipodi:nodetypes="ccccccccccccc" />
<g
id="g5052"
transform="matrix(0.02256229,0,0,0.02256229,46.485605,288.8394)"
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:23.30286217;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5240)"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135">
<path
id="path5050"
d="m 990,500 c 0,66.4 -13,129.7 -38.9,190.1 -26,60.4 -60.8,112.5 -104.6,156.3 -43.8,43.8 -95.9,78.7 -156.3,104.6 -60.4,25.9 -123.8,38.9 -190.1,38.9 -73.2,0 -142.7,-15.4 -208.6,-46.2 -65.9,-30.8 -133.67848,-88.23883 -181.96211,-144.43883 28.95199,-29.72018 76.70591,-77.56004 112.33369,-114.36983 0,0 90.42901,85.36421 134.62842,108.50866 45.1,22.1 92.9,33.2 143.5,33.2 44.3,0 86.5,-8.6 126.6,-25.8 40.2,-17.2 74.9,-40.5 104.3,-69.8 29.3,-29.3 52.6,-64.1 69.8,-104.3 17.2,-40.2 25.8,-82.4 25.8,-126.6 0,-44.3 -8.6,-86.5 -25.8,-126.6 C 783.5,333.3 760.2,298.6 730.9,269.2 701.6,239.8 666.8,216.6 626.6,199.4 586.4,182.2 544.2,173.6 500,173.6 c -41.7,0 -81.7,7.5 -119.9,22.6 -38.3,15.1 -72.3,36.7 -102.1,64.8 52.14777,51.6247 102.3276,110.90339 102.3276,110.90339 L 52.193223,374.5862 53.58281,28.582686 c 0,0 59.99541,68.308124 108.91719,116.817314 C 208,102.5 260,69.2 318.5,45.5 377,21.9 437.5,10.1 500,10.1 c 66.4,0 129.7,13 190.1,38.9 60.4,26 112.5,60.8 156.3,104.6 43.8,43.8 78.7,95.9 104.6,156.3 25.9,60.4 38.9,123.8 38.9,190.1 z"
inkscape:connector-curvature="0"
style="vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:23.30286217;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5240)"
sodipodi:nodetypes="ccsssscccsccsscssscccccccscsscc" />
</g>
<g
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:23.30286217;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5240)"
transform="matrix(-0.02256229,0,0,0.02256229,42.725754,288.46059)"
id="g5096">
<path
sodipodi:nodetypes="ccsssscccsccsscssscccccccscsscc"
style="vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:23.30286217;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5240)"
inkscape:connector-curvature="0"
d="m 990,500 c 0,66.4 -13,129.7 -38.9,190.1 -26,60.4 -60.8,112.5 -104.6,156.3 -43.8,43.8 -95.9,78.7 -156.3,104.6 -60.4,25.9 -123.8,38.9 -190.1,38.9 -73.2,0 -142.7,-15.4 -208.6,-46.2 -65.9,-30.8 -133.67848,-88.23883 -181.96211,-144.43883 28.95199,-29.72018 76.70591,-77.56004 112.33369,-114.36983 0,0 90.42901,85.36421 134.62842,108.50866 45.1,22.1 92.9,33.2 143.5,33.2 44.3,0 86.5,-8.6 126.6,-25.8 40.2,-17.2 74.9,-40.5 104.3,-69.8 29.3,-29.3 52.6,-64.1 69.8,-104.3 17.2,-40.2 25.8,-82.4 25.8,-126.6 0,-44.3 -8.6,-86.5 -25.8,-126.6 C 783.5,333.3 760.2,298.6 730.9,269.2 701.6,239.8 666.8,216.6 626.6,199.4 586.4,182.2 544.2,173.6 500,173.6 c -41.7,0 -81.7,7.5 -119.9,22.6 -38.3,15.1 -72.3,36.7 -102.1,64.8 52.14777,51.6247 102.3276,110.90339 102.3276,110.90339 L 52.193223,374.5862 53.58281,28.582686 c 0,0 59.99541,68.308124 108.91719,116.817314 C 208,102.5 260,69.2 318.5,45.5 377,21.9 437.5,10.1 500,10.1 c 66.4,0 129.7,13 190.1,38.9 60.4,26 112.5,60.8 156.3,104.6 43.8,43.8 78.7,95.9 104.6,156.3 25.9,60.4 38.9,123.8 38.9,190.1 z"
id="path5094" />
</g>
<path
sodipodi:nodetypes="cccccccc"
transform="matrix(0.62454497,0.62454497,-0.62454497,0.62454497,173.75014,121.24696)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 51.879039,264.52173 0.02363,18.44856 7.214319,-7.09016 9.12938,9.12937 4.170978,-4.17099 -9.129378,-9.12937 7.04225,-7.16659 z"
id="path1336"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1338"
d="m 51.879039,264.52173 0.02363,18.44856 7.214319,-7.09016 9.12938,9.12937 4.170978,-4.17099 -9.129378,-9.12937 7.04225,-7.16659 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(-0.62454497,0.62454497,-0.62454497,-0.62454497,278.45511,463.25482)"
sodipodi:nodetypes="cccccccc" />
<path
sodipodi:nodetypes="cccccccc"
transform="matrix(-0.62454497,-0.62454497,0.62454497,-0.62454497,-35.6956,539.92407)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 51.879039,264.52173 0.02363,18.44856 7.214319,-7.09016 9.12938,9.12937 4.170978,-4.17099 -9.129378,-9.12937 7.04225,-7.16659 z"
id="path1340"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1342"
d="m 51.879039,264.52173 0.02363,18.44856 7.214319,-7.09016 9.12938,9.12937 4.170978,-4.17099 -9.129378,-9.12937 7.04225,-7.16659 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,-82.454143,198.18407)"
sodipodi:nodetypes="cccccccc" />
<g
id="g1362"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135">
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1344"
d="m 59.116988,275.88013 9.12938,9.12937 2.351379,-2.35139 -9.129378,-9.12937 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,-53.410454,192.32525)"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="ccccc"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,-50.277668,194.21928)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 66.496474,283.25962 2.204794,2.20478 5.434589,-5.4346 -2.204792,-2.20478 z"
id="path1346"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
sodipodi:nodetypes="ccccc"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,-37.374282,192.32525)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 59.167532,275.93067 4.833104,4.8331 2.351379,-2.35139 -4.833102,-4.8331 z"
id="path1348"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
sodipodi:nodetypes="ccccc"
transform="matrix(-0.62454497,-0.62454497,-0.62454497,0.62454497,387.16647,202.99499)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 59.116988,275.88013 9.12938,9.12937 2.351379,-2.35139 -9.129378,-9.12937 z"
id="path1350"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1352"
d="m 66.496474,283.25962 2.204794,2.20478 5.434589,-5.4346 -2.204792,-2.20478 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(-0.62454497,-0.62454497,-0.62454497,0.62454497,384.03369,204.88902)"
sodipodi:nodetypes="ccccc" />
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1354"
d="m 59.167532,275.93067 4.833104,4.8331 2.351379,-2.35139 -4.833102,-4.8331 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(-0.62454497,-0.62454497,-0.62454497,0.62454497,371.1303,202.99499)"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g1350"
transform="matrix(1.1053006,0,0,1.1053006,-36.207533,-24.111959)"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135">
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1341"
d="m 64.906918,281.67006 3.33945,3.33944 3.27747,-3.27748 -3.339448,-3.33944 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,30.402999,141.04121)"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="ccccc"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,30.402999,147.78228)"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
d="m 64.906918,281.67006 3.33945,3.33944 3.27747,-3.27748 -3.339448,-3.33944 z"
id="path1343"
inkscape:connector-curvature="0"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:export-xdpi="135"
inkscape:export-ydpi="135" />
<path
inkscape:export-ydpi="135"
inkscape:export-xdpi="135"
inkscape:export-filename="C:\dev\ppsspp\source_assets\image\cross.png"
inkscape:connector-curvature="0"
id="path1345"
d="m 64.906918,281.67006 3.33945,3.33944 3.27747,-3.27748 -3.339448,-3.33944 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5240)"
transform="matrix(0.62454497,-0.62454497,0.62454497,0.62454497,30.402999,154.47871)"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

View File

@ -61,3 +61,12 @@ image I_SQUARE_SHAPE_LINE source_assets/image/square_shape_line.png copy
image I_FOLDER_OPEN source_assets/image/folder_open_line.png copy
image I_WARNING source_assets/image/warning.png copy
image I_TRASHCAN source_assets/image/trashcan.png copy
image I_PLUS source_assets/image/plus.png copy
image I_ROTATE_LEFT source_assets/image/rotate_left.png copy
image I_ROTATE_RIGHT source_assets/image/rotate_right.png copy
image I_ARROW_LEFT source_assets/image/arrow_left.png copy
image I_ARROW_RIGHT source_assets/image/arrow_right.png copy
image I_ARROW_UP source_assets/image/arrow_up.png copy
image I_ARROW_DOWN source_assets/image/arrow_down.png copy
image I_SLIDERS source_assets/image/sliders.png copy
image I_THREE_DOTS source_assets/image/three_dots.png copy