Skip to content

Commit

Permalink
#5567: Start working on a basic GUI. Add VfsImageArtProvider to be ab…
Browse files Browse the repository at this point in the history
…le to load the raw texture images into wxBitmaps.
  • Loading branch information
codereader committed Mar 30, 2021
1 parent 1db10d3 commit b92e5a9
Show file tree
Hide file tree
Showing 8 changed files with 1,785 additions and 9 deletions.
1,411 changes: 1,404 additions & 7 deletions install/ui/materialeditor.fbp

Large diffs are not rendered by default.

284 changes: 282 additions & 2 deletions install/ui/materialeditor.xrc
Expand Up @@ -139,14 +139,294 @@
<object class="wxNotebook" name="MaterialEditorBasicAdvancedNotebook">
<object class="notebookpage">
<label>Basic</label>
<selected>0</selected>
<selected>1</selected>
<object class="wxPanel" name="m_panel40">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND | wxALL</flag>
<border>12</border>
<object class="wxPanel" name="BasicNameAndDescription">
<style>wxTAB_TRAVERSAL</style>
<object class="wxFlexGridSizer">
<rows>0</rows>
<cols>2</cols>
<vgap>12</vgap>
<hgap>6</hgap>
<growablecols>1</growablecols>
<growablerows></growablerows>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText611">
<label>Name:</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND</flag>
<border>0</border>
<object class="wxTextCtrl" name="BasicName">
<style>wxTE_PROCESS_ENTER</style>
<value></value>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText5711">
<label>Material:</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND</flag>
<border>0</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxRIGHT</flag>
<border>12</border>
<object class="wxChoice" name="BasicMaterialType">
<selection>0</selection>
<content />
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText572">
<label>Description:</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND|wxLEFT</flag>
<border>6</border>
<object class="wxTextCtrl" name="BasicDescription">
<style>wxTE_PROCESS_ENTER</style>
<value></value>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxEXPAND|wxTOP</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALIGN_CENTER</flag>
<border>0</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALL</flag>
<border>0</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>1</option>
<flag>wxALL|wxEXPAND</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText6811">
<label>Editor Image</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxTOP</flag>
<border>6</border>
<object class="wxStaticBitmap" name="BasicEditorImageTabImage">
<size>100,100</size>
<bitmap />
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND | wxALL</flag>
<border>0</border>
<object class="wxPanel" name="m_panel42">
<style>wxTAB_TRAVERSAL</style>
<bg>#e3e3e3</bg>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxTOP</flag>
<border>12</border>
<object class="wxStaticText" name="m_staticText681">
<label>Diffuse</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxTOP</flag>
<border>6</border>
<object class="wxStaticBitmap" name="m_bitmap1">
<size>100,100</size>
<bitmap />
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxEXPAND</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText6812">
<label>Bump</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxTOP</flag>
<border>6</border>
<object class="wxStaticBitmap" name="m_bitmap12">
<size>100,100</size>
<bitmap />
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxEXPAND</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText6813">
<label>Specular</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxTOP</flag>
<border>6</border>
<object class="wxStaticBitmap" name="m_bitmap13">
<size>100,100</size>
<bitmap />
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxBOTTOM|wxEXPAND|wxRIGHT</flag>
<border>1</border>
<object class="wxPanel" name="m_panel41">
<style>wxTAB_TRAVERSAL</style>
<bg>#e3e3e3</bg>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALL|wxEXPAND</flag>
<border>12</border>
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText78">
<label>Image File:</label>
<wrap>-1</wrap>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxALIGN_CENTER_VERTICAL|wxLEFT</flag>
<border>6</border>
<object class="wxTextCtrl" name="m_textCtrl41">
<value></value>
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<flag>wxEXPAND | wxALL</flag>
<border>12</border>
<object class="wxPanel" name="m_panel43">
<style>wxTAB_TRAVERSAL</style>
<object class="wxFlexGridSizer">
<rows>1</rows>
<cols>1</cols>
<vgap>0</vgap>
<hgap>0</hgap>
<growablecols>0</growablecols>
<growablerows>0</growablerows>
<object class="sizeritem">
<option>0</option>
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>0</border>
<object class="wxStaticText" name="m_staticText79">
<font>
<style>italic</style>
<weight>normal</weight>
<underlined>0</underlined>
</font>
<label>Drag and drop an Image File here to create a new Texture Map</label>
<wrap>-1</wrap>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="notebookpage">
<label>Advanced</label>
<selected>1</selected>
<selected>0</selected>
<object class="wxPanel" name="m_panel38">
<style>wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
Expand Down
8 changes: 8 additions & 0 deletions radiant/ui/materials/editor/MaterialEditor.cpp
Expand Up @@ -2,6 +2,7 @@

#include "i18n.h"
#include "ishaderexpression.h"
#include "VfsImageArtProvider.h"

#include <wx/panel.h>
#include <wx/splitter.h>
Expand All @@ -16,6 +17,7 @@
#include <wx/notebook.h>
#include <wx/radiobut.h>
#include <wx/collpane.h>
#include <wx/statbmp.h>

#include "wxutil/SourceView.h"
#include "wxutil/FileChooser.h"
Expand Down Expand Up @@ -157,6 +159,7 @@ MaterialEditor::MaterialEditor() :
previewPanel->GetSizer()->Add(_preview->getWidget(), 1, wxEXPAND);
previewPanel->GetSizer()->Add(sourceTextPanel, 0, wxEXPAND);

setupBasicMaterialPage();
setupMaterialProperties();
setupMaterialStageView();
setupMaterialStageProperties();
Expand Down Expand Up @@ -290,6 +293,11 @@ void MaterialEditor::setupMaterialTreeView()
unlockButton->Bind(wxEVT_BUTTON, &MaterialEditor::_onUnlockMaterial, this);
}

void MaterialEditor::setupBasicMaterialPage()
{
getControl<wxStaticBitmap>("BasicEditorImageTabImage")->SetBitmap(VfsImageArtProvider::CreateBitmapFromVfsPath("textures/common/caulk.tga"));
}

void MaterialEditor::setupMaterialProperties()
{
// Convert int-valued spinctrls to double-valued ones
Expand Down
1 change: 1 addition & 0 deletions radiant/ui/materials/editor/MaterialEditor.h
Expand Up @@ -97,6 +97,7 @@ class MaterialEditor :
void _onClose(wxCommandEvent& ev);

private:
void setupBasicMaterialPage();
void setupMaterialTreeView();
void setupMaterialStageView();
void setupMaterialStageProperties();
Expand Down
6 changes: 6 additions & 0 deletions radiant/ui/materials/editor/MaterialEditorModule.cpp
Expand Up @@ -6,13 +6,17 @@
#include "itextstream.h"
#include "imenumanager.h"
#include "module/StaticModule.h"
#include "VfsImageArtProvider.h"

namespace ui
{

class MaterialEditorModule :
public RegisterableModule
{
private:
std::unique_ptr<VfsImageArtProvider> _vfsArtProvider;

public:
// RegisterableModule
const std::string& getName() const override
Expand Down Expand Up @@ -45,6 +49,8 @@ class MaterialEditorModule :
_("Material Editor (experimental)..."), // caption
"icon_texture.png", // icon
"MaterialEditor"); // event name

_vfsArtProvider = std::make_unique<VfsImageArtProvider>();
}
};

Expand Down

0 comments on commit b92e5a9

Please sign in to comment.