void CPortraitsDlg::FillLists()
{
	m_lbLarge.ResetContent();
	m_bwLarge.SetBitmap(NULL);
	GetResourceList(m_lbLarge,'M',110,170);
	GetPortraitList(m_lbLarge,'L',110,170);

	m_lbSmall.ResetContent();
	m_bwSmall.SetBitmap(NULL);
	GetResourceList(m_lbSmall,'S',38,60);
	GetPortraitList(m_lbSmall,'S',38,60);
}
void CEditAnimationDialog::OnSelectFile(wxCommandEvent& event)
{
    if (event.GetId() == ID_BUTTON_SELECTANIDIR)
    {
        m_pAnimitionListBox->Clear();
        GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Animation));
    }
    else if (event.GetId() == ID_BUTTON_SELECTSKEDIR)
    {
        m_pSkeSelectButton->SetLabel(CLanguageManager::GetInstance()->GetText(eL_SelectAll));
        SetAllSkeletonAndBoneVisible();
        m_pSkeletonListBox->Clear();
        m_pSkeletonChoice->Clear();
        GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Skeleton));
    }
    else if (event.GetId() == ID_BUTTON_SELECTSKIDIR)
    {
        m_pSkinListBox->Clear();
        GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Skin));
    }
}
void FRenderResource::InitResource()
{
	check(IsInRenderingThread());
	if(!bInitialized)
	{
		ResourceLink = TLinkedList<FRenderResource*>(this);
		ResourceLink.Link(GetResourceList());
		if(GIsRHIInitialized)
		{
			InitDynamicRHI();
			InitRHI();
		}
		FPlatformMisc::MemoryBarrier(); // there are some multithreaded reads of bInitialized
		bInitialized = true;
	}
}
Beispiel #4
0
/******************** HasResourceAvailable *************************/
bool UStorageMap::HasResourceAvailable(TArray<FString> ResourceIds)
{
	TArray<UResource*> ResourceList = GetResourceList();
	for (auto& Resource : ResourceList)
	{
		if (Resource)
		{
			if (ResourceIds.Contains(Resource->ResourceId))
			{
				ResourceIds.RemoveSingle(Resource->ResourceId);
				if (ResourceIds.Num() == 0)
				{
					return true;
				}
			}
		}
	}
	return (ResourceIds.Num() <= 0);
}
    CEditAnimationDialog::CEditAnimationDialog(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
    : CEditDialogBase(parent, id, title, pos, size, style, name)
    , m_bAnimation(false)
    , m_bSkeleton(false)
    , m_bSkin(false)
    , m_bIsLoop(false)
    , m_bIsVisibleBone(false)
    , m_bIsVisibleCoordinate(false)
    , m_bIsSelectAll(false)
    , m_bISLanguageSwitch(false)
{
    m_Manager.SetManagedWindow(this);
    wxToolTip::Enable(true);
    wxSize ButtonSize(60,0);
    wxSize DefaultButtonSize(DEFAULT_PGBUTTONWIDTH, DEFAULT_PGBUTTONWIDTH);
    wxSize client_size = GetClientSize();
    

    wxBoxSizer* pModelTreeSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTopRightSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTopRightTopSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTopRightCenterSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTopRightBottomSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pLogPanelSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTimeBarPanelSizer = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer* pTimeBarPanelTopSizer = new wxBoxSizer(wxHORIZONTAL);
    wxBoxSizer* pTopRightTopBottomSizer = new wxBoxSizer(wxHORIZONTAL);
    wxBoxSizer* pTopRightCenterBottomSizer = new wxBoxSizer(wxHORIZONTAL);
    wxBoxSizer* pTopRightBottomBottomSizer = new wxBoxSizer(wxHORIZONTAL);

    wxPanel* pLogPanel      = new wxPanel(this);
    wxPanel* pTimeBarPanel  = new wxPanel(this);
    wxPanel* pTopRightPanel = new wxPanel(this);
    wxPanel* pModelTreePanel  = new wxPanel(this);
    wxTextCtrl* pTextCtrl   = new wxTextCtrl(pLogPanel, wxID_ANY, _T(""), wxPoint(0,0), client_size, wxNO_BORDER | wxTE_MULTILINE);
    wxButton* pButton       = new wxButton(pLogPanel, ID_BUTTON_CLEANLOG, _T("X"), wxDefaultPosition, DefaultButtonSize);
    wxImageList *pFileIconImages = new wxImageList(15, 15, true);
    wxIcon fileIcons[eTCIT_Count];
    wxSize iconSize(15, 15);
    fileIcons[eTCIT_File] = wxArtProvider::GetIcon(wxART_NORMAL_FILE, wxART_LIST, iconSize);
    fileIcons[eTCIT_FileSelected] = wxArtProvider::GetIcon(wxART_FILE_OPEN, wxART_LIST, iconSize);
    fileIcons[eTCIT_Folder] = wxArtProvider::GetIcon(wxART_FOLDER, wxART_LIST, iconSize);
    fileIcons[eTCIT_FolderSelected] = wxArtProvider::GetIcon(wxART_FOLDER, wxART_LIST, iconSize);
    fileIcons[eTCIT_FolderOpened] = wxArtProvider::GetIcon(wxART_FOLDER_OPEN, wxART_LIST, iconSize);
    for (size_t i = 0; i < eTCIT_Count; ++i)
    {
        pFileIconImages->Add(fileIcons[i]);
    }

    m_pModelTreeMenu    = new wxMenu;
    m_pModelTree        = new wxTreeCtrl(pModelTreePanel, ID_TREECTRL_MODELS, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE | wxTR_NO_LINES | wxTR_EDIT_LABELS | wxSUNKEN_BORDER);
    m_pTimeBar          = new CTimeBarFrame(pTimeBarPanel);
    m_pAnimitionListBox = new wxListBox(pTopRightPanel, ID_LISTBOX_ANIMATION);
    m_pSkeletonListBox  = new wxListBox(pTopRightPanel, ID_LISTBOX_SKELETON, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_MULTIPLE);
    m_pSkinListBox      = new wxListBox(pTopRightPanel, ID_LISTBOX_SKIN);
    m_pSkeletonChoice   = new wxChoice(pTopRightPanel, ID_CHOICE_SKELETON);
    m_pButtonPlay       = new wxButton(pTimeBarPanel, ID_BUTTON_PLAY, _T("|>"), wxDefaultPosition, DefaultButtonSize);
    m_pButtonPause      = new wxButton(pTimeBarPanel, ID_BUTTON_PAUSE, _T("||"), wxDefaultPosition, DefaultButtonSize);
    m_pButtonStop       = new wxButton(pTimeBarPanel, ID_BUTTON_STOP, _T("[]"), wxDefaultPosition, DefaultButtonSize);
    m_pLoopCheckBox     = new wxCheckBox(pTimeBarPanel, ID_CHECKBOX_LOOP, _("Loop"));
    m_pButtonSkin       = new wxButton(pTopRightPanel, ID_BUTTON_SELECTSKIDIR, _T("Skin"));
    m_pButtonAnimaton   = new wxButton(pTopRightPanel, ID_BUTTON_SELECTANIDIR, _T("Animation"));
    m_pSKECheckBox      = new wxCheckBox(pTopRightPanel, ID_CHECKBOX_SKELETONVISIBLE, _T("SKE"));
    m_pSKEBCheckBox     = new wxCheckBox(pTopRightPanel, ID_CHECKBOX_SKELETONBONEVISIBLE, _T("SKEB"));
    m_pSkeSelectButton  = new wxButton(pTopRightPanel, ID_BUTTON_SELECT, _T("SelectAll"), wxDefaultPosition, ButtonSize);
    m_pButtonSkeleton   = new wxButton(pTopRightPanel, ID_BUTTON_SELECTSKEDIR, _T("Skeleton"), wxDefaultPosition, ButtonSize);
    m_pSkeletonCheckBox = new wxCheckBox(pTopRightPanel, wxID_ANY, _T(""));
    m_pSkinCheckBox     = new wxCheckBox(pTopRightPanel, wxID_ANY, _T(""));
    m_pAnimationCheckBox = new wxCheckBox(pTopRightPanel, wxID_ANY, _T(""));
    m_pAnimationGLWindow = new CAnimationGLWindow(this, static_cast<CEngineEditor*>(wxApp::GetInstance())->GetGLContext());
    static_cast<CEngineEditor*>(wxApp::GetInstance())->GetMainFrame()->RegisterUpdateWindow(m_pAnimationGLWindow);
    m_pAnimationCheckBox->Disable();
    m_pSkeletonCheckBox->Disable();
    m_pSkinCheckBox->Disable();    

    pLogPanel->SetSizer(pLogPanelSizer);
    pTimeBarPanel->SetSizer(pTimeBarPanelSizer);
    pTopRightPanel->SetSizer(pTopRightSizer);
    pModelTreePanel->SetSizer(pModelTreeSizer);

    m_pButtonPlay->SetToolTip(_T("Play"));
    m_pButtonPause->SetToolTip(_T("Pause"));
    m_pButtonStop->SetToolTip(_T("Stop"));
    pButton->SetToolTip(_T("clean log"));

    m_pModelTree->AssignImageList(pFileIconImages);
    m_pModelTree->AddRoot(_T("Models"), eTCIT_Folder);

    m_pModelTreeMenu->Append(ID_MENU_CREATE, _T("Create"));
    m_pModelTreeMenu->Append(ID_MENU_COPY, _T("Copy"));
    m_pModelTreeMenu->Append(ID_MENU_PAST, _T("Paste"));
    m_pModelTreeMenu->Append(ID_MENU_DELETE, _T("Delete"));

    m_pTimeBar->SetFrameWindow(this);
    pTextCtrl->SetEditable(false);
    wxLog::DisableTimestamp();
    m_pLogOld = wxLog::SetActiveTarget(new wxLogTextCtrl(pTextCtrl));
    m_pLog = pTextCtrl;
    
    pModelTreeSizer->Add(m_pModelTree, 1, wxGROW|wxALL, 0);

    pLogPanelSizer->Add(pButton, 0, wxALIGN_RIGHT|wxALL, 0);
    pLogPanelSizer->Add(new wxStaticLine(pLogPanel, wxLI_HORIZONTAL), 0, wxGROW|wxALL, 0);
    pLogPanelSizer->Add(m_pLog, 1, wxGROW|wxALL, 0);
    
    pTimeBarPanelSizer->Add(pTimeBarPanelTopSizer, 0, wxGROW|wxALL, 0);
    pTimeBarPanelSizer->Add(m_pTimeBar, 1, wxGROW|wxALL, 0);
    
    pTimeBarPanelTopSizer->Add(m_pButtonPlay, 0, wxALIGN_RIGHT|wxALL, 0);
    pTimeBarPanelTopSizer->Add(m_pButtonPause, 0, wxALIGN_RIGHT|wxALL, 0);
    pTimeBarPanelTopSizer->Add(m_pButtonStop, 0, wxALIGN_RIGHT|wxALL, 0);
    pTimeBarPanelTopSizer->Add(m_pLoopCheckBox, 0, wxALIGN_RIGHT|wxALL, 0);

    pTopRightSizer->Add(pTopRightTopSizer, 1, wxGROW|wxALL, 5);
    pTopRightSizer->Add(new wxStaticLine(pTopRightPanel, wxLI_HORIZONTAL), 0, wxGROW|wxALL, 5);
    pTopRightSizer->Add(pTopRightCenterSizer, 1, wxGROW|wxALL, 5);
    pTopRightSizer->Add(new wxStaticLine(pTopRightPanel, wxLI_HORIZONTAL), 0, wxGROW|wxALL, 5);
    pTopRightSizer->Add(pTopRightBottomSizer, 1, wxGROW|wxALL, 5);

    pTopRightTopSizer->Add(m_pAnimitionListBox, 1, wxGROW|wxALL, 0);
    pTopRightTopSizer->Add(pTopRightTopBottomSizer, 0, wxGROW|wxALL, 0);

    pTopRightCenterSizer->Add(m_pSkeletonChoice, 0, wxGROW|wxALL, 0);
    pTopRightCenterSizer->Add(m_pSkeletonListBox, 1, wxGROW|wxALL, 1);
    pTopRightCenterSizer->Add(pTopRightCenterBottomSizer, 0, wxGROW|wxALL, 0);

    pTopRightBottomSizer->Add(m_pSkinListBox, 1, wxGROW|wxALL, 0);
    pTopRightBottomSizer->Add(pTopRightBottomBottomSizer, 0, wxGROW|wxALL, 0);

    pTopRightTopBottomSizer->AddStretchSpacer();
    pTopRightTopBottomSizer->Add(m_pAnimationCheckBox, 0, wxGROW|wxALL, 5);
    pTopRightTopBottomSizer->Add(m_pButtonAnimaton, 0, wxGROW|wxALL, 0);
    pTopRightTopBottomSizer->AddStretchSpacer();

    pTopRightCenterBottomSizer->Add(m_pSKECheckBox, 0, wxGROW|wxALL, 0);
    pTopRightCenterBottomSizer->Add(m_pSKEBCheckBox, 0, wxGROW|wxALL, 0);
    pTopRightCenterBottomSizer->AddStretchSpacer();
    pTopRightCenterBottomSizer->Add(m_pSkeletonCheckBox, 0, wxGROW|wxALL, 5);
    pTopRightCenterBottomSizer->Add(m_pButtonSkeleton, 0, wxGROW|wxALL, 0);
    pTopRightCenterBottomSizer->Add(m_pSkeSelectButton, 0, wxGROW|wxALL, 0);
    pTopRightCenterBottomSizer->AddStretchSpacer();

    pTopRightBottomBottomSizer->AddStretchSpacer();
    pTopRightBottomBottomSizer->Add(m_pSkinCheckBox, 0, wxGROW|wxALL, 5);
    pTopRightBottomBottomSizer->Add(m_pButtonSkin, 0, wxGROW|wxALL, 0);
    pTopRightBottomBottomSizer->AddStretchSpacer();

    m_Manager.AddPane(pModelTreePanel, wxAuiPaneInfo().MinSize(260,100).CenterPane().
        Name(wxT("Model")).
        Left());
    m_Manager.AddPane(m_pAnimationGLWindow, wxAuiPaneInfo().CenterPane().
        Name(wxT("GLWindow")).
        Center());
    m_Manager.AddPane(pTopRightPanel, wxAuiPaneInfo().MinSize(260,0).CenterPane().
        Name(wxT("Right")).
        Right());
    m_Manager.AddPane(pTimeBarPanel, wxAuiPaneInfo().MinSize(100,200).CenterPane().
        Name(wxT("Timebar")).
        Bottom());
    m_Manager.AddPane(pLogPanel, wxAuiPaneInfo().CenterPane().
        Name(wxT("Log")).
        Bottom());

    GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Animation));
    GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Skeleton));
    GetResourceList(CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_Skin));
    wxLogMessage(wxT("This is edit log."));
    m_Manager.Update();
}