0538dd3243
- TimelinePanel: Playblast button opens modal with output dir (native folder picker via IFileOpenDialog), custom resolution (HD/FHD/4K presets), frame range, and movie export toggle - UsdSceneRenderer: CaptureFrame() reads pixels from resolved MSAA FBO; Render() stores last dimensions for off-screen re-render at capture res - MovieEncoder: streams RGBA frames directly into MP4 using libavcodec/ libswscale (H.264, tries libx264 → nvenc → qsv → amf → openh264) - Application: CapturePlayblastFrame() re-renders at capture resolution each frame; opens/writes/closes MovieEncoder inline with the render loop - FileDialog: BrowseFolder() using Vista-style IFileOpenDialog (COM) - CMake: FindFFmpeg.cmake locates prebuilt BtbN GPL shared package in third_party/ffmpeg; links and copies DLLs for main and test targets Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
920 B
C++
36 lines
920 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <Windows.h>
|
|
|
|
namespace UsdLayerManager {
|
|
|
|
class FileDialog {
|
|
public:
|
|
// Open file dialog
|
|
static std::string OpenFile(
|
|
const char* filter = "USD Files (*.usd;*.usda;*.usdc)\0*.usd;*.usda;*.usdc\0All Files (*.*)\0*.*\0",
|
|
const char* title = "Open USD File",
|
|
HWND owner = nullptr
|
|
);
|
|
|
|
// Save file dialog
|
|
static std::string SaveFile(
|
|
const char* filter = "USD Files (*.usd;*.usda;*.usdc)\0*.usd;*.usda;*.usdc\0All Files (*.*)\0*.*\0",
|
|
const char* title = "Save USD File",
|
|
const char* defaultExt = "usd",
|
|
HWND owner = nullptr
|
|
);
|
|
|
|
// Folder picker (Vista-style IFileOpenDialog)
|
|
static std::string BrowseFolder(
|
|
const char* title = "Select Output Folder",
|
|
HWND owner = nullptr
|
|
);
|
|
|
|
private:
|
|
static const int MAX_PATH_LENGTH = 4096;
|
|
};
|
|
|
|
} // namespace UsdLayerManager
|