Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define STATS_FRAME 0
- #define STATS_DEVICE 1
- #include <vector>
- namespace {
- void WideToMultiByte(LPCWSTR string, std::vector<char> *output) {
- const std::ctype<wchar_t> &CType = std::use_facet<std::ctype<wchar_t> >(std::locale());
- std::wstring wstr(string);
- output->clear();
- output->resize(wstr.length() + 1);
- CType._Narrow_s(wstr.data(), wstr.data() + wstr.length(), ' ', &(*output)[0], output->size());
- }
- void TW_CALL GetStatsCallback(void *value, void *clientData) {
- LPCWSTR wstr = L"";
- switch ((int)clientData) {
- case STATS_FRAME:
- wstr = DXUTGetFrameStats(DXUTIsVsyncEnabled());
- break;
- case STATS_DEVICE:
- wstr = DXUTGetDeviceStats();
- break;
- }
- std::vector<char> str;
- WideToMultiByte(wstr, &str);
- char **destPtr = (char **)value;
- TwCopyCDStringToLibrary(destPtr, &str[0]);
- }
- }
- …
- TwAddVarCB(bar, "Frame", TW_TYPE_CDSTRING, NULL, GetStatsCallback, (void *)STATS_FRAME, "Help='DX10 frame stats.'");
- TwAddVarCB(bar, "Device", TW_TYPE_CDSTRING, NULL, GetStatsCallback, (void *)STATS_DEVICE, "Help='DX10 device stats.'");
Add Comment
Please, Sign In to add comment