From d3faa58a78b47a6d4053ead9e33f10491c8b5a78 Mon Sep 17 00:00:00 2001 From: Dimitris Kapnopoulos Date: Wed, 15 Mar 2017 18:38:57 +0200 Subject: [PATCH] Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst --- qrenderdoc/Code/PersistantConfig.h | 2 +- qrenderdoc/Windows/Dialogs/TipsDialog.cpp | 322 ++++++++++++++++++++ qrenderdoc/Windows/Dialogs/TipsDialog.h | 72 +++++ qrenderdoc/Windows/Dialogs/TipsDialog.ui | 283 +++++++++++++++++ qrenderdoc/Windows/MainWindow.cpp | 7 + qrenderdoc/Windows/MainWindow.h | 1 + qrenderdoc/Windows/MainWindow.ui | 9 +- qrenderdoc/qrenderdoc.pro | 11 +- qrenderdoc/qrenderdoc_local.vcxproj | 15 + qrenderdoc/qrenderdoc_local.vcxproj.filters | 15 + 10 files changed, 730 insertions(+), 7 deletions(-) create mode 100644 qrenderdoc/Windows/Dialogs/TipsDialog.cpp create mode 100644 qrenderdoc/Windows/Dialogs/TipsDialog.h create mode 100644 qrenderdoc/Windows/Dialogs/TipsDialog.ui diff --git a/qrenderdoc/Code/PersistantConfig.h b/qrenderdoc/Code/PersistantConfig.h index a6617c9cd..112acfe12 100644 --- a/qrenderdoc/Code/PersistantConfig.h +++ b/qrenderdoc/Code/PersistantConfig.h @@ -134,7 +134,7 @@ struct SPIRVDisassembler CONFIG_SETTING_VAL(public, QDateTime, QDateTime, DegradedLog_LastUpdate, \ QDateTime(QDate(2015, 01, 01), QTime(0, 0, 0))) \ \ - CONFIG_SETTING_VAL(public, bool, bool, Tips_SeenFirst, false) \ + CONFIG_SETTING_VAL(public, bool, bool, Tips_HasSeenFirst, false) \ \ CONFIG_SETTING_VAL(public, bool, bool, AllowGlobalHook, false) \ \ diff --git a/qrenderdoc/Windows/Dialogs/TipsDialog.cpp b/qrenderdoc/Windows/Dialogs/TipsDialog.cpp new file mode 100644 index 000000000..402dbef14 --- /dev/null +++ b/qrenderdoc/Windows/Dialogs/TipsDialog.cpp @@ -0,0 +1,322 @@ +/****************************************************************************** + * The MIT License (MIT) + * + * Copyright (c) 2017 Baldur Karlsson + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + ******************************************************************************/ + +#include "TipsDialog.h" +#include "ui_TipsDialog.h" + +#include +#include + +TipsDialog::TipsDialog(CaptureContext &Ctx, QWidget *parent) + : m_Ctx(Ctx), QDialog(parent), ui(new Ui::TipsDialog), m_currentTip(0) +{ + ui->setupUi(this); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + initialize(); + + if(m_Ctx.Config.Tips_HasSeenFirst) + { + showRandomTip(); + } + else + { + showTip(m_currentTip); + } + + m_Ctx.Config.Tips_HasSeenFirst = true; +} + +TipsDialog::~TipsDialog() +{ + delete ui; +} + +void TipsDialog::initialize() +{ + // Tip 1 + m_tips.push_back(Tip("Talk to me!", + "RenderDoc is a labour of love and has been developed from scratch entirely " + "in my spare time. If you run into a bug, have a feature request or just " + "have a question, please feel free to get in touch and I'm always happy to " + "talk and help out in any way I can - baldurk@baldurk.org.")); + + // Tip 2 + m_tips.push_back(Tip("Quick channel toggling", + "Right clicking on a channel button in the texture viewer will select it " + "alone. If it is already the only channel selected, the meaning is inverted " + "and all others will be selected.\n\nThis is most useful for quickly " + "toggling between RGB and Alpha-only views.")); + + // Tip 3 + m_tips.push_back(Tip("Quick range autofitting", + "The magic wand auto-fitting button in the texture viewer automatically " + "calculates the min and max values of any visible channel in the texture, " + "and rescales the visible range to include them.\n \nIf you right click on " + "it, it will toggle on a mode to automatically rescale every time the " + "viewed texture changes.\n")); + + // Tip 4 + m_tips.push_back(Tip("Choosing mesh elements to visualise", + "In the mesh output pane, you can right click on any of the element columns " + "to select that element as either position or secondary property to render. " + "This way you can view a mesh in UV space, or visualise normals.")); + + // Tip 5 + m_tips.push_back(Tip("Visualising secondary mesh properties", + "In the mesh output pane, you can select an element as 'secondary', and in " + "the solid shading dropdown choosing secondary will display the element as " + "RGB colour on top of the mesh.")); + + // Tip 6 + m_tips.push_back(Tip("Register highlighting in the shader debugger", + "While debugging a shader, clicking on a register or constant buffer " + "variable in the disassembly will highlight all other uses of that register " + "or variable in the disassembly. It will also highlight the matching row in " + "the watch windows.")); + + // Tip 7 + m_tips.push_back(Tip("Shader register value display", + "If you want to see to see a register reinterpreted as different types, you " + "can hover over it either in the disassembly or in the watch windows. A " + "tooltip will show it interpreted as float, uint decimal, int decimal or " + "hexadecimal.")); + + // Tip 8 + m_tips.push_back(Tip("Custom shader watch expressions", + "In addition to the pre-filled watch windows while shader debugging, you " + "can also enter custom watch expressions. This takes the form of e.g. " + "r0.xyz. You can append ,x or ,b to specify the type - full list in the " + "docs.\n")); + + // Tip 9 + m_tips.push_back(Tip("Shader debugger float/int toggle", + "By default register values are shown as floats, but you can toggle this to " + "default to ints either in the shader debugger toolbar, or by right " + "clicking and toggling int/float display.\n")); + + // Tip 10 + m_tips.push_back(Tip("D3D11 shader debug information", + "You'll get the best results in RenderDoc by stripping as little as " + "possible from D3D11 shaders. Reflection data is used all over the place to " + "produce a nicer debugging experience.\n")); + + // Tip 11 + m_tips.push_back(Tip("Shader editing & Replacement", + "RenderDoc has the ability to edit and replace shaders and see the results " + "live in the replay. On the pipeline state view, click the edit icon next " + "to the shader. If source is available, it will be compiled, otherwise an " + "empty stub with resources will be generated.\n The shader will be replaced " + "everywhere it is used in the frame, the original will be restored when the " + "edit window is closed.\n")); + + // Tip 12 + m_tips.push_back(Tip("Linear/Gamma display of textures", + "RenderDoc interprets all textures in gamma space - even if the data is " + "linear such as a normal map. This is by convention, since typically " + "external image viewers will display a normal map as gamma data. This can " + "be overridden by toggling the gamma button in the texture viewer.\n")); + + // Tip 13 + m_tips.push_back(Tip("Seeing texture usage in a capture", + "RenderDoc has a list of how each texture is bound and used - whether as a " + "shader resource, an output target, or a copy source. When the texture is " + "active in the texture viewer this usage will be displayed on the timeline " + "bar at the top.\n You can also right click on the thumbnails in the " + "texture viewer to see a list of this usage, and clicking any entry will " + "jump to that event.\n")); + + // Tip 14 + m_tips.push_back(Tip("Custom buffer formatting", + "When opening a raw view of a buffer, such as a vertex buffer or compute " + "read/write buffer resource, you can apply custom formatting to it to " + "dictate the layout of the elements in typical shader syntax. \n \nThis " + "formatting is also available for constant buffers to override the layout " + "reflected from the shader.\n")); + + // Tip 15 + m_tips.push_back(Tip("Pipeline HTML export", + "The pipeline view contains an HTML export function, which dumps the raw " + "state of the entire pipeline out to a specified file. This can be useful " + "for comparison between two events, or for having all information available " + "in a unified text format.\n")); + + // Tip 16 + m_tips.push_back(Tip("Python scripting", + "RenderDoc supports some amount of Python scripting. Open up the Python " + "shell in the UI to either use it interactively or load and execute python " + "scripts. \n \nThe 'renderdoc' object is an instance of the Core class - " + "see the RenderDoc source for more information.")); + + // Tip 17 + m_tips.push_back( + Tip("Pixel history view", + "RenderDoc supports a pixel history view, showing the list of all modification events " + "that happened to a specified pixel. To launch it, simply pick the pixel you would like " + "to view the history of in the texture viewer, and click the 'history' button underneath " + "the zoomed-in pixel context. \n \nEach event will show up red or green depending on " + "whether it affected or didn't affect the pixel. By expanding the event, you can see the " + "possibly several primitives within the draw that overdrew the pixel.\n")); + + // Tip 18 + m_tips.push_back(Tip("List of active textures", + "On the texture viewer, the texture list button under the 'Actions' section " + "will open a filterable list of all texture resources. Clicking on any of " + "the entries will open a locked tab of that texture, always showing the " + "contents of the texture at the current event regardless of whether or not " + "it is bound to the pipeline.\n")); + + // Tip 19 + m_tips.push_back(Tip("Locked texture tabs", + "You can open a locked texture tab from the texture list, or by right or " + "double clicking on a texture's thumbnail.\n \nWith a locked tab of a " + "texture, that tab will always show that texture, regardless of what is " + "bound to the pipeline. This way you can track the updates of a texture " + "through binds and unbinds, e.g. ping-pong rendertarget use.\n")); + + // Tip 20 + m_tips.push_back(Tip("Gathering of per-event callstacks", + "RenderDoc is able to gather callstacks either per-drawcall or per-API " + "event. You can do this by enabling the option before launching an " + "application capture.\n \nWhen loading the log, initially the callstacks " + "will not be available until symbols are resolved. Go to tools -> resolve " + "symbols to load up the pdbs matching the modules from the application.\n")); + + // Tip 21 + m_tips.push_back(Tip("Texture debugging overlays", + "In the texture viewer, you can select from several helpful debugging " + "overlays over the current view. This can show wireframe or solid coloour " + "overlays of the current drawcall, as well as showing depth pass/fail or " + "even representing quad overdraw as a heatmap.\n")); + + // Tip 22 + m_tips.push_back(Tip("Custom texture display shaders", + "RenderDoc supports writing custom shaders to decode the viewed texture, " + "which can be useful to e.g. colourise stencil values or decode a packed " + "gbuffer texture.\n \nIn the toolbar in the texture viewer, select custom " + "instead of RGBA on the left side, and use the UI to create a new shader. " + "The docs contain full listings of available constants and resources to " + "bind.\n")); + + // Tip 23 + m_tips.push_back(Tip("Texture histogram", + "RenderDoc can display a channel histogram showing the distribution of " + "values within the visible range. Simply click the graph button on the " + "texture viewer to the right of the range control, and it will expand to " + "show the histogram.\n")); + + // Tip 24 + m_tips.push_back(Tip("Attaching to a running instance", + "If you have launched a program via RenderDoc or your program integrates " + "RenderDoc, the UI can connect to it once it is running via File -> Attach " + "to Running Instance, and everything works as if you had launched it.\n " + "\nYou can even do this across a network, by adding a remote IP or " + "hostname. You will connect over the network and can remotely trigger " + "captures - any files will be copied back across the network, to be saved " + "and replayed locally as normal.\n")); + + // Tip 25 + m_tips.push_back(Tip( + "Event browser bookmarks", + "In the event browser you can bookmark useful events by clicking the asterisk. This can let " + "you quickly jump back and forth through the log between important points.\n \nWhen you have " + "some bookmarks, shortcut buttons will appear in a small bar at the top of the browser, and " + "the shortcut keys Ctrl-1 through Ctrl-0 jump to the first 10 bookmarks - these shortcuts " + "are global regardless of which RenderDoc window is currently in focus.\n")); + + // Tip 26 + m_tips.push_back(Tip("Mousewheel for scrolling", + "Anywhere you need to use the mousewheel to scroll, it will work simply by " + "hovering over the panel and scrolling, no need to click to change focus. " + "\n")); + + // Tip 27 + m_tips.push_back(Tip("Event browser keyboard shortcuts", + "In the event browser Ctrl-F opens up the find bar, to locate an event by " + "its name. Ctrl-G opens the jump-to-event to jump to the closest drawcall " + "to a numbered event. Ctrl-B will toggle a bookmark at the current " + "event.\n")); + + // Tip 28 + m_tips.push_back(Tip("Mesh VS Output camera settings", + "The VS Output pane in the mesh output window will attempt to guess your " + "projection matrix to unproject the vertices into camera space. It assumes " + "a perspective projection and guesses the near and far planes, and matches " + "the aspect ratio to the current output target.\n \nIf these parameters are " + "incorrect - e.g. you are using an orthographic projection or the near/far " + "guesses are wrong, you can override them by opening the view settings with " + "the cog icon.\n")); + + // Tip 29 + m_tips.push_back(Tip("Global process hook", + "Sometimes a particular program is difficult to launch directly through " + "RenderDoc. In these cases, RenderDoc can install a global system hook that " + "will insert a tiny shim DLL into every newly-created process on the " + "system. This shim will identify if it is in the target application and " + "either inject RenderDoc, or unload itself.\n \nNote: Since it is a global " + "hook this is not without risks, only use if it's the only alternative, and " + "read the documentation carefully.\n")); +} + +void TipsDialog::showTip(int i) +{ + if(i >= m_tips.size() || i < 0) + return; + + Tip &tip = m_tips[i]; + ++i; + ui->tipTextLabel->setText(tip.tip); + QString url("https://renderdoc.org/tips/" + QString::number(i)); + ui->tipUrlLabel->setText("" + url + ""); + ui->tipsGroupBox->setTitle("Tip #" + QString::number(i)); + ui->titleLabel->setText("Tip #" + QString::number(i) + ": " + tip.title); +} + +void TipsDialog::showRandomTip() +{ + int i = m_currentTip; + srand(time(NULL)); + while(i == m_currentTip) + { + i = rand() % m_tips.size(); + } + m_currentTip = i; + showTip(m_currentTip); +} + +void TipsDialog::on_nextButton_clicked() +{ + m_currentTip++; + m_currentTip %= m_tips.size(); + showTip(m_currentTip); +} + +void TipsDialog::on_closeButton_clicked() +{ + close(); +} + +void TipsDialog::on_randomButton_clicked() +{ + showRandomTip(); +} diff --git a/qrenderdoc/Windows/Dialogs/TipsDialog.h b/qrenderdoc/Windows/Dialogs/TipsDialog.h new file mode 100644 index 000000000..1f8cf1fd5 --- /dev/null +++ b/qrenderdoc/Windows/Dialogs/TipsDialog.h @@ -0,0 +1,72 @@ +/****************************************************************************** + * The MIT License (MIT) + * + * Copyright (c) 2017 Baldur Karlsson + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + ******************************************************************************/ + +#pragma once + +#include +#include +#include + +#include "Code/CaptureContext.h" + +namespace Ui +{ +class TipsDialog; +} + +class TipsDialog : public QDialog +{ + Q_OBJECT + +public: + explicit TipsDialog(CaptureContext &Ctx, QWidget *parent = 0); + ~TipsDialog(); + +protected: + struct Tip + { + Tip() {} + Tip(const QString &tt, const QString &tx) : title(tt), tip(tx) {} + QString title; + QString tip; + }; + + void initialize(); + void showTip(int i); + void showRandomTip(); + + QVector m_tips; + int m_currentTip; + CaptureContext &m_Ctx; + +private slots: + void on_nextButton_clicked(); + + void on_closeButton_clicked(); + + void on_randomButton_clicked(); + +private: + Ui::TipsDialog *ui; +}; diff --git a/qrenderdoc/Windows/Dialogs/TipsDialog.ui b/qrenderdoc/Windows/Dialogs/TipsDialog.ui new file mode 100644 index 000000000..3376c111f --- /dev/null +++ b/qrenderdoc/Windows/Dialogs/TipsDialog.ui @@ -0,0 +1,283 @@ + + + TipsDialog + + + Qt::NonModal + + + + 0 + 0 + 751 + 442 + + + + + 0 + 0 + + + + Qt::DefaultContextMenu + + + RenderDoc Tips + + + + 8 + + + QLayout::SetFixedSize + + + 4 + + + 4 + + + 4 + + + 4 + + + + + + 0 + 0 + + + + + 725 + 351 + + + + + 9 + + + + + + + Tip #X + + + + QLayout::SetFixedSize + + + + + QLayout::SetFixedSize + + + + + + 0 + 0 + + + + + 16 + + + + + + + Tip #X: Tip Title + + + Qt::AlignCenter + + + + + + + + + + 0 + 0 + + + + + 709 + 283 + + + + + 12 + + + + + + + TextLabel + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + + + + + 7 + + + QLayout::SetMaximumSize + + + + + + 0 + 0 + + + + + 10 + + + + + + + https://renderdoc.org/tips/1 + + + Qt::RichText + + + true + + + Qt::TextBrowserInteraction + + + + + + + Qt::Horizontal + + + + 338 + 20 + + + + + + + + + + + + + QLayout::SetFixedSize + + + + + Qt::Horizontal + + + + 308 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 28 + + + + + 16777215 + 28 + + + + Random Tip + + + + + + + + 0 + 28 + + + + + 16777215 + 28 + + + + Next Tip + + + + + + + + 0 + 28 + + + + + 16777215 + 28 + + + + Close + + + + + + + + + + diff --git a/qrenderdoc/Windows/MainWindow.cpp b/qrenderdoc/Windows/MainWindow.cpp index cdaf05641..dc72548f5 100644 --- a/qrenderdoc/Windows/MainWindow.cpp +++ b/qrenderdoc/Windows/MainWindow.cpp @@ -42,6 +42,7 @@ #include "Windows/Dialogs/RemoteManager.h" #include "Windows/Dialogs/SettingsDialog.h" #include "Windows/Dialogs/SuggestRemoteDialog.h" +#include "Windows/Dialogs/TipsDialog.h" #include "APIInspector.h" #include "BufferViewer.h" #include "ConstantBufferPreviewer.h" @@ -1451,6 +1452,12 @@ void MainWindow::on_action_Build_Release_downloads_triggered() QDesktopServices::openUrl(QUrl::fromUserInput("https://renderdoc.org/builds")); } +void MainWindow::on_actionShow_Tips_triggered() +{ + TipsDialog tipsDialog(m_Ctx, this); + RDDialog::show(&tipsDialog); +} + void MainWindow::saveLayout_triggered() { LoadSaveLayout(qobject_cast(QObject::sender()), true); diff --git a/qrenderdoc/Windows/MainWindow.h b/qrenderdoc/Windows/MainWindow.h index 0c3ceed69..d928d55c1 100644 --- a/qrenderdoc/Windows/MainWindow.h +++ b/qrenderdoc/Windows/MainWindow.h @@ -107,6 +107,7 @@ private slots: void on_action_View_Diagnostic_Log_File_triggered(); void on_action_Source_on_github_triggered(); void on_action_Build_Release_downloads_triggered(); + void on_actionShow_Tips_triggered(); // manual slots void saveLayout_triggered(); diff --git a/qrenderdoc/Windows/MainWindow.ui b/qrenderdoc/Windows/MainWindow.ui index d83e01953..48e8046eb 100644 --- a/qrenderdoc/Windows/MainWindow.ui +++ b/qrenderdoc/Windows/MainWindow.ui @@ -42,7 +42,7 @@ 0 0 1200 - 18 + 26 @@ -136,6 +136,8 @@ + + @@ -395,6 +397,11 @@ Start &Android Remote Server + + + Show Tips + + diff --git a/qrenderdoc/qrenderdoc.pro b/qrenderdoc/qrenderdoc.pro index f3cac95f1..ffed89f31 100644 --- a/qrenderdoc/qrenderdoc.pro +++ b/qrenderdoc/qrenderdoc.pro @@ -163,8 +163,8 @@ SOURCES += Code/qrenderdoc.cpp \ Widgets/PipelineFlowChart.cpp \ Windows/Dialogs/EnvironmentEditor.cpp \ Widgets/FindReplace.cpp \ - Widgets/Extended/RDSplitter.cpp - + Widgets/Extended/RDSplitter.cpp \ + Windows/Dialogs/TipsDialog.cpp HEADERS += Code/CaptureContext.h \ Code/qprocessinfo.h \ Code/RenderManager.h \ @@ -215,8 +215,8 @@ HEADERS += Code/CaptureContext.h \ Widgets/PipelineFlowChart.h \ Windows/Dialogs/EnvironmentEditor.h \ Widgets/FindReplace.h \ - Widgets/Extended/RDSplitter.h - + Widgets/Extended/RDSplitter.h \ + Windows/Dialogs/TipsDialog.h FORMS += Windows/Dialogs/AboutDialog.ui \ Windows/MainWindow.ui \ Windows/EventBrowser.ui \ @@ -245,7 +245,8 @@ FORMS += Windows/Dialogs/AboutDialog.ui \ Windows/Dialogs/RemoteManager.ui \ Windows/PixelHistoryView.ui \ Windows/Dialogs/EnvironmentEditor.ui \ - Widgets/FindReplace.ui + Widgets/FindReplace.ui \ + Windows/Dialogs/TipsDialog.ui RESOURCES += Resources/resources.qrc diff --git a/qrenderdoc/qrenderdoc_local.vcxproj b/qrenderdoc/qrenderdoc_local.vcxproj index 1d4195ba4..e5c59fa08 100644 --- a/qrenderdoc/qrenderdoc_local.vcxproj +++ b/qrenderdoc/qrenderdoc_local.vcxproj @@ -681,6 +681,7 @@ + @@ -719,6 +720,7 @@ + @@ -876,6 +878,7 @@ + @@ -1080,6 +1083,12 @@ MOC %(Filename).h $(IntDir)generated\moc_%(Filename).cpp + + %(Fullpath);$(ProjectDir)3rdparty\qt\$(Platform)\bin\moc.exe;%(AdditionalInputs) + $(ProjectDir)3rdparty\qt\$(Platform)\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -D_WIN32 -D_WIN64 -DRENDERDOC_PLATFORM_WIN32 -DSCINTILLA_QT=1 -DSCI_LEXER=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -I$(ProjectDir) -I$(SolutionDir)\renderdoc\api\replay -I$(ProjectDir)3rdparty\qt\$(Platform)\mkspecs/win32-msvc2015 -I$(ProjectDir)3rdparty\qt\$(Platform)\include -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtWidgets -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtGui -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtCore %(Fullpath) -o $(IntDir)generated\moc_%(Filename).cpp + MOC %(Filename).h + $(IntDir)generated\moc_%(Filename).cpp + %(Fullpath);$(ProjectDir)3rdparty\qt\$(Platform)\bin\moc.exe;%(AdditionalInputs) $(ProjectDir)3rdparty\qt\$(Platform)\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -D_WIN32 -D_WIN64 -DRENDERDOC_PLATFORM_WIN32 -DSCINTILLA_QT=1 -DSCI_LEXER=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -I$(ProjectDir) -I$(SolutionDir)\renderdoc\api\replay -I$(ProjectDir)3rdparty\qt\$(Platform)\mkspecs/win32-msvc2015 -I$(ProjectDir)3rdparty\qt\$(Platform)\include -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtWidgets -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtGui -I$(ProjectDir)3rdparty\qt\$(Platform)\include\QtCore %(Fullpath) -o $(IntDir)generated\moc_%(Filename).cpp @@ -1257,6 +1266,12 @@ UIC %(Filename).ui $(IntDir)generated\ui_%(Filename).h + + %(Fullpath);$(ProjectDir)3rdparty\qt\$(Platform)\bin\uic.exe;%(AdditionalInputs) + $(ProjectDir)3rdparty\qt\$(Platform)\bin\uic.exe %(Fullpath) -o $(IntDir)generated\ui_%(Filename).h + UIC %(Filename).ui + $(IntDir)generated\ui_%(Filename).h + %(Fullpath);$(ProjectDir)3rdparty\qt\$(Platform)\bin\uic.exe;%(AdditionalInputs) $(ProjectDir)3rdparty\qt\$(Platform)\bin\uic.exe %(Fullpath) -o $(IntDir)generated\ui_%(Filename).h diff --git a/qrenderdoc/qrenderdoc_local.vcxproj.filters b/qrenderdoc/qrenderdoc_local.vcxproj.filters index fd87a36c1..75c51edfd 100644 --- a/qrenderdoc/qrenderdoc_local.vcxproj.filters +++ b/qrenderdoc/qrenderdoc_local.vcxproj.filters @@ -129,6 +129,9 @@ Windows\Dialogs + + Windows\Dialogs + Windows\Dialogs @@ -507,6 +510,9 @@ Generated Files + + Generated Files + Generated Files @@ -830,6 +836,9 @@ Generated Files + + Generated Files + Generated Files @@ -1103,6 +1112,9 @@ Windows\Dialogs + + Windows\Dialogs + Resources @@ -1193,6 +1205,9 @@ Windows\Dialogs + + Windows\Dialogs + Windows\Dialogs